WeChatアプレットで数字当てゲームを実装する実際のプロセス

WeChatアプレットで数字当てゲームを実装する実際のプロセス

機能紹介

ユーザーは 1 ~ 100 の数字を入力し、その結果に基づいてサイズを推測するよう求められます。ユーザーが正しく推測した場合は、最初からやり直すことができます (推測回数も設定できます)

レンダリング

クリックしてゲームインターフェースを開始

ゲームルールインターフェース

その他のインターフェースについて

私のホームページ(エフェクト画像)はindex03を使用し、ゲームの開始はindex01を使用し、ゲームルールはindex02を使用し、その他はすべてindex02を使用します。

(app.json にファイルを作成します。これは私の app.json によって作成されたファイルです)

(ホームページのレンダリングではindex03を使用しているため、前面に配置する必要があります)

1. ホームページレンダリング用のコード(index03)

WXML コード

<!--pages/index03/index03.wxml-->
<ビュークラス="box2">
//url はジャンプ先のページです <navigator url="../index/index">
        <button type="primary">ゲームを開始</button>
    </ナビゲーター>
</ビュー>
<ビュークラス="box2">
    <ナビゲーター url="../index01/index01">
        <button type="warn">ゲームルール</button>
    </ナビゲーター>
</ビュー>
<ビュークラス="box3">
    <ナビゲーター url="../index02/index02">
        <button type="default">その他について</button>
    </ナビゲーター>
</ビュー>

WXSS コード

/* ページ/index03/index03.wxss */
.box2{
  上マージン: 200rpx;
  幅: 100%;
  高さ: 100rpx;
}
.box3{
  上マージン: 240rpx;
  幅: 100%;
  高さ: 100rpx;
}

2. ゲーム開始ページ(インデックス)コード

WXML コード

<!-- index.wxml -->
<view class="demo-box">
    <フォーム>
        <block wx:if="{{isGameStart}}">
            <input type="number" placeholder="1~100 の数字を入力してください" bindinput="getNumber"></input>
            <button type='primary' form-type="reset" bindtap='guess' class="btn">送信</button>
        </ブロック>
        <ブロック wx:else>
            <button type="primary" bindtap='restartGame'>再起動</button>
        </ブロック>
    </フォーム>
    <text id="tip">{{tip}}</text>
</ビュー>

WXSS コード

/**index.wxss**/
入力{
  境界線: 2rpx 緑;
  マージン: 30rpx 0;
  高さ: 90rpx;
  /* 丸い境界線 */
  境界線の半径: 20rpx; 
}
#ヒント{
  /* 高さを固定 */
  高さ: 800rpx;
}
.デモボックス{
  高さ: 400rpx;
}
ナビゲーター{
  テキスト配置: 中央;
}

index.js コード

// インデックス.js
 
ページ({
  データ: {
  
  },
  初期:関数(){
    this.setData({
      // Math.round to integer //Math.random() は 0 から 1 の間の小数点以下の乱数を受け取ります。ここでは 100 を掛けて 0 から 100 の間の乱数を取得します。答え:Math.round(Math.random()*100)、
      // ラウンド数: 0,
      // ヒントステートメント tip:''、
      // ユーザーが推測した数値 x: -1,
      // ゲームが開始されました isGameStart:true
    });
    //コンソールはシステムの乱数の答えを出力します console.log("答えは "+this.data.answer);
  },
  // ユーザーが入力した番号を取得する getNumber:function(e){
    this.setData({
      x : e.詳細値
    });
  },
  // このラウンドで数字を推測し始めます guess:function(){
    // このラウンドでユーザーが入力した数字を取得します。let x = this.data.x;
    // x を新しい数値を取得しない状態にリセットします。this.setData({x:-1});
    x<0の場合{
      // プロンプト wx.showToast({
        タイトル: '0 未満にすることはできません'、
      });
    }そうでない場合(x>100){
      wx.showToast({
        タイトル:'100 を超えることはできません'、
      });
    }それ以外{
      // ラウンド数が増加します let count = this.data.count + 1;
      // 現在のヒント情報を取得します。let tip = this.data.tip;
      // 正しい答えを取得します。let answer = this.data.answer;
 
      if(x == 答え){
        tip += '\n' + count + 'round:' + x + '、正解です!';
        // ゲーム終了 this.setData({isGameStart:false});
      }そうでなければ(x > 答え){
        tip += '\n' + count + 'round:' + x + ', big!';
      }それ以外{
        tip += '\n' + count + 'round:' + x + '、小さすぎます!';
      }
        //ラウンド数をカウントします。ここでは、ユーザーが5回だけ推測するように設定しています。if (count == 5) {
        tip += '\nゲームオーバー';
        this.setData({isGameStart:false});
      }
      // プロンプト文と丸め数を更新します this.setData({
        ヒント:ヒント、
        カウント:カウント
      });
    }
  },
  // ゲームを再開する restartGame:function(){
    これを初期値として設定します。
  },
  //オプション(オブジェクト)
  onLoad: 関数(オプション) {
    これを初期値として設定します。
  }

3. ゲームルールページ(index01)コード

WXML コード

<!--pages/index01/index01.wxml-->
<view class="demo-box">
<テキスト>
 1. システムは 1 ~ 100 の数字をランダムに生成し、プレイヤーはそれを推測します 2. プレイヤーには 5 回のチャンスがあります 3. プレイヤーは 5 回以内に推測に成功します 4. [ゲームの開始] をクリックしてインターフェイスに入ります 5. 推測が正しかったかどうかにかかわらず、プレイヤーは最初からやり直すことができます</text>
</ビュー>

WXSS コード

/* ページ/index01/index01.wxss */
.デモボックス{
  ディスプレイ: フレックス;
   //垂直レイアウト flex-direction: column;
  アイテムの位置を中央揃えにします。
  コンテンツの両端揃え: スペースを空ける;
  /* 幅: 400rpx; */
  高さ:100vh;
}
文章{
  マージン: 0 50rpx;
   //行の高さ line-height: 100rpx;
}

4. その他のページ(index02)コードについて

WXML コード

<!--pages/index02/index02.wxml-->
<view class="demo-box">
<テキスト>
 1. このゲームは娯楽目的のみです。 2. このゲームには多くの欠点があります。 3. プレイヤーは貴重な提案を提供することができます。 4. プレイヤーはヒントに従って推測することができ、非常に役立ちます。
</ビュー>

WXSS コード

/* ページ/index02/index02.wxss */
.デモボックス{
  ディスプレイ: フレックス;
  flex-direction: 列;
  アイテムの位置を中央揃えにします。
  コンテンツの両端揃え: スペースを空ける;
  /* 幅: 400rpx; */
  高さ:100vh;
}
文章{
  マージン: 0 50rpx;
  行の高さ: 100rpx;
}

(ゲームのルールは他の 2 ページのコードと同じです。これは参考用です。まだ多くの欠点があります。)

要約する

WeChatミニプログラムで数字当てゲームを実装する方法についての記事はこれで終わりです。WeChatミニプログラムで数字当てゲームに関する関連コンテンツについては、123WORDPRESS.COMで以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も123WORDPRESS.COMを応援してください。

以下もご興味があるかもしれません:
  • フリップカードゲームのWeChatミニプログラムバージョン
  • WeChatアプレットがパズルゲームを実装

<<:  div ボックス モデルの使用経験の概要

>>:  アニメーションとトランジションの違い

推薦する

Vue3はJingdong製品詳細ページの虫眼鏡効果コンポーネントをカプセル化します

この記事では、Jingdong製品詳細ページの虫眼鏡効果コンポーネントに似たvue3カプセル化の具体...

Centos7 での nginx のインストールと設定に関する詳細なチュートリアル

注: ソフトウェアのインストールの基本ディレクトリ パスは /usr/local です。ソフトウェア...

MySQL 永続統計の詳細な説明

1. 永続的な統計情報の重要性:統計は、MySQL が実行プランを生成するためのガイドとして使用され...

クロスブラウザの問題に対する 5 つの解決策 (要約)

簡単なレビュー: ブラウザの互換性の問題は、しばしば頭痛の種となります。ここでは、これらの問題を回避...

HTML thead タグの定義と使用法の詳細な紹介

コードをコピーコードは次のとおりです。 <thead> <!– 最初の 2 行をヘ...

Vueはカスタムツリーコンポーネントを再帰的に実装します

この記事では、カスタムツリーコンポーネントを再帰的に実装するVueの具体的なコードを参考までに共有し...

MySQL 8.0.19 では、間違ったパスワードを 3 回入力するとアカウントがロックされるようになりました (例)

MySQL 8.0.19 では、間違ったパスワードを 3 回入力するとアカウントがロックされるよう...

JavaScript インスタンス オブジェクトでプロトタイプ メソッドをオーバーライドする方法の詳細

目次JavaScriptでは、通常、次のコードのようにクラスを簡単に定義できます。 var サンプル...

MySQL 8.0 オンライン DDL クイック列追加の概要

目次問題の説明MySQLオンラインDDLで列を追加する従来の方法01 コピー方法02 インプレースメ...

MySQL における「:=」と「=」の違いの簡単な分析

=設定および更新の場合にのみ、:= と同じ効果、つまり代入効果があり、それ以外の場合は等号の効果があ...

MySQL テーブルにおける非主キー列オーバーフロー監視の詳細な説明

今日もまた罠に落ちてしまいました。 私は以前MySQLの主キーオーバーフローに遭遇したことがあり、そ...

Ubuntu システムにおけるネットワーク構成ファイルの分析と説明

今日は奇妙なネットワーク問題に遭遇しました。調査プロセスといくつかの構成状況を記録し、Linux で...

vite2.x は ant-design-vue@next コンポーネントのオンデマンド読み込みを実装します。

1. 使用バージョンバイト:2.0 ant-design-vue: 2.0.0-rc.8ヴュー:3...

Iframe の使用を減らすべきいくつかの理由の分析

次のグラフは、100 個の異なる要素で iframe を作成するのにどれくらいの時間がかかるかを示し...

MySQLとRedisでセカンダリキャッシュを実装する方法の詳細な説明

Redis の紹介Redis は完全にオープンソースで無料であり、BSD プロトコルに準拠しており、...