ホームページ WeChat アプレット ミニプログラム開発 WeChat ミニプログラム バージョン 2048 ミニゲーム

WeChat ミニプログラム バージョン 2048 ミニゲーム

Jan 25, 2018 pm 01:34 PM
ゲーム アプレット

WeChat の「ジャンプ」ゲームが最近人気になっています。このサイトでも共有する記事があります: PHP で WeChat の「ジャンプ」ゲームを実装する この記事では主に 2048 を実装するためのアルゴリズムと注意点を共有します。一緒に! (ソースコードのアドレスについては、記事の最後を参照してください)。

アルゴリズム

4*4 のチェッカーボード ビューを生成します

2 つのセルを埋めるために 2 または 4 をランダムに生成します

ユーザーがタッチしたときの開始位置と終了位置を記録し、スライド方向を決定します

スライド方向に従ってセルを移動しますを選択し、同じ値を結合します

ユーザーが 1 回のスワイプを完了したら、手順 2 を繰り返します

ゲームが終了したかどうかを判断し、ゲーム結果に基づいて異なるプロンプトを生成します


難易度

スライド方向を決定します

ユーザーがスワイプすると同じグリッドが結合され、スライド方向の側に移動します
実装

ビューの実装

1. wxml+wxssを使用してチェッカーボードビューを生成します

WeChat ミニプログラム バージョン 2048 ミニゲーム

2。データを各セルにレンダリングします

ロジック実装

1. ページがロードされたら、2 つのセルにランダムに 2 または 4 の数字を入力します

2。ユーザーのスライド方向を決定します

touchStart イベント関数を使用して開始位置 touchStartX を取得します, touchStartY

touchMoveイベント関数を使って終了位置touchEndX,touchEndY

var disX = this.touchStartX - this.touchEndX;
    var absdisX = Math.abs(disX);
    var disY = this.touchStartY - this.touchEndY;
    var absdisY = Math.abs(disY);  
    // 确定移动方向 // 0:上, 1:右, 2:下, 3:左 var direction = absdisX > absdisY ? (disX < 0 ? 1 : 3) : (disY < 0 ? 2 : 0);
ログイン後にコピー

3.スライド方向に合わせてテーブルを移動し(右にスライドすると仮定して)、同じアイテムをマージします

4*4の2つを生成します2048チェス盤の次元配列リスト、空きスペースは0で表す

// 比如棋盘数据如下 var grid = [
    [2, 2, 0, 0],
    [0, 0, 0, 0],
    [0, 8, 4, 0],
    [0, 0, 0, 0]
];
ログイン後にコピー

スライド方向に応じて4を生成 *4 2次元配列

var list = [
    [0, 0, 2, 2],  // 注意是0022不是2200,因为像右滑动所以从右边push入数组
    [0, 0, 0, 0],
    [0, 4, 8, 0],
    [0, 0, 0, 0]
];
ログイン後にコピー

対応コード(コード中のthis.board.gridは初期グリッド)上記):

formList(dir) {  // 根据传入的滑动方向生成list的四个数组 var list = [[], [], [], []];
    for(var i = 0; i < this.size; i++)
      for(var j = 0; j < this.size; j++) {
        switch(dir) {
          case 0:
            list[i].push(this.board.grid[j][i]);
            break;
          case 1:
            list[i].push(this.board.grid[i][this.size-1-j]);
            break;
          case 2:
            list[i].push(this.board.grid[this.size-1-j][i]);
            break;
          case 3:
            list[i].push(this.board.grid[i][j]);
            break;
        }
      }
    return list;
  }
ログイン後にコピー

リストの各小さな配列の数値を先頭に置き、最後に0を置きます

list2 = [
    [2, 2, 0, 0], 
    [0, 0, 0, 0],
    [4, 8, 0, 0],
    [0, 0, 0, 0]
];
ログイン後にコピー

それに対応するコード:

changeItem(item) {  // 将 [0, 2, 0, 2] 改为 [2, 2, 0, 0] var cnt = 0;
    for(var i = 0; i < item.length; i++)
      if(item[i] != 0)
        item[cnt++] = item[i];
    for(var j = cnt; j < item.length; j++) 
      item[j] = 0;
    return item;
  }
ログイン後にコピー

同じ値のセルを追加し、次のセルの値を次のセルに変更します0

list2 = [
    [4, 0, 0, 0], 
    [0, 0, 0, 0],
    [4, 8, 0, 0],
    [0, 0, 0, 0]
];
ログイン後にコピー

対応するコード:

combine(list) { // 滑动时相同的合并 for(var i = 0; i < list.length; i++)  // 数字靠边
      list[i] = this.changeItem(list[i]);
    for(var i = 0; i < this.size; i++) { 
      for(var j = 1; j < this.size; j++) {
        if(list[i][j-1] == list[i][j] && list[i][j]!=0) {
          list[i][j-1] += list[i][j];
          list[i][j] = 0; 
        }
      }
    }
    for (var i = 0; i < list.length; i++)  // 再次数字靠边,避免0220变成0400的情况发生
      list[i] = this.changeItem(list[i]);
    return list;
  }
ログイン後にコピー

list2 を list に返し、データをチェッカーボード ビューにレンダリングします

list = [
[0, 0, 0, 4],
[0, 0, 0, 0],
[0, 0, 8, 4],
[0, 0, 0, 0]
];

対応するコード:

move(dir) {
    // 0:上, 1:右, 2:下, 3:左 var curList = this.formList(dir);
    var list = this.combine(curList); 
    var result = [[],[],[],[]];
    for(var i = 0; i < this.size; i++)
      for(var j = 0; j < this.size; j++) {
        switch (dir) {
          case 0:
            result[i][j] = list[j][i];
            break;
          case 1:
            result[i][j] = list[i][this.size-1-j];
            break;
          case 2:
            result[i][j] = list[j][this.size-1-i];
            break;
          case 3:
            result[i][j] = list[i][j];
            break;
        }
      } 
    this.board.grid = result;
    this.setDataRandom();  // 移动一次之后随机用2或4填充两个单元格 return result;
  }
ログイン後にコピー

4. 手順 1 を繰り返します

5. ゲームオーバーかどうかを判断します。基準: 4*4 のセルが埋められており、どのセルの上下左右にも同じ値を持つセルがない

isOver() {  // 游戏是否结束,结束条件:可用格子为空且所有格子上下左右值不等 for (var i = 0; i < this.size; i++) // 左右不等 for (var j = 1; j < this.size; j++) {
      if (this.board.grid[i][j] == this.board.grid[i][j - 1])
        return false;
    }
  for (var j = 0; j < this.size; j++)  // 上下不等 for (var i = 1; i < this.size; i++) {
      if (this.board.grid[i][j] == this.board.grid[i - 1][j])
        return false;
    }
  return true;
}
ログイン後にコピー

6 によると、ゲームの結果は対応するプロンプトを表示します

WeChat ミニプログラム バージョン 2048 ミニゲームpo。コードアドレス:windlany/wechat-weapp-2048 興味があれば試してみてください。皆さんのお役に立てれば幸いです。

関連する推奨事項:

WeChatジャンプPython補助スクリプトサンプル共有

phpはWeChatジャンプゲームを実装します

インスタンス共有jQueryはパズルゲームを実装します

以上がWeChat ミニプログラム バージョン 2048 ミニゲームの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python を使用して WeChat アプレットを開発する Python を使用して WeChat アプレットを開発する Jun 17, 2023 pm 06:34 PM

モバイル インターネット技術とスマートフォンの普及により、WeChat は人々の生活に欠かせないアプリケーションになりました。 WeChat ミニ プログラムを使用すると、アプリケーションをダウンロードしてインストールすることなく、ミニ プログラムを直接使用して、いくつかの簡単なニーズを解決できます。この記事では、Python を使用して WeChat アプレットを開発する方法を紹介します。 1. 準備 Python を使用して WeChat アプレットを開発する前に、関連する Python ライブラリをインストールする必要があります。ここでは、wxpy と itchat の 2 つのライブラリを使用することをお勧めします。 wxpy は WeChat マシンです

詳細説明: Windows 10 にはマインスイーパー ミニ ゲームが組み込まれていますか? 詳細説明: Windows 10 にはマインスイーパー ミニ ゲームが組み込まれていますか? Dec 23, 2023 pm 02:07 PM

win10 オペレーティング システムを使用している場合、古いバージョンの組み込みゲーム マインスイーパーが win10 アップデート後も保存されているかどうかを知りたいのですが、編集者が知っている限り、ストアでダウンロードしてインストールできます。ストアにあるとおり、「microsoftminesweeter」を検索するだけです。エディターで具体的な手順を見てみましょう~ Windows 10 用のマインスイーパー ゲームはありますか? 1. まず、Win10 の [スタート] メニューを開き、 をクリックします。次に、検索して「検索」をクリックします。 2. 最初のものをクリックします。 3. 次に、Microsoft アカウント、つまり Microsoft アカウントを入力する必要がある場合があります。 Microsoft アカウントをお持ちでない場合は、インストールすると、登録を求めるメッセージが表示されます。アカウントのパスワードを入力し、「次へ」をクリックします。 4.ダウンロードを開始します

小さなプログラムでも反応できますか? 小さなプログラムでも反応できますか? Dec 29, 2022 am 11:06 AM

ミニプログラムはreactを利用することができます 使い方: 1. 「react-reconciler」に基づいてレンダラーを実装し、DSLを生成します; 2. DSLを解析してレンダリングするためのミニプログラムコンポーネントを作成します; 3. npmをインストールし、開発者ビルドを実行しますツール内の npm; 4. パッケージを独自のページに導入し、API を使用して開発を完了します。

WeChat ミニ プログラムにカードめくり効果を実装する WeChat ミニ プログラムにカードめくり効果を実装する Nov 21, 2023 am 10:55 AM

WeChat ミニ プログラムでのカードめくり効果の実装 WeChat ミニ プログラムでは、カードめくり効果の実装は、ユーザー エクスペリエンスとインターフェイス インタラクションの魅力を向上させることができる一般的なアニメーション効果です。以下では、WeChat アプレットでカードめくりの特殊効果を実装する方法と、関連するコード例を詳しく紹介します。まず、ミニ プログラムのページ レイアウト ファイルに 2 つのカード要素を定義する必要があります。1 つは前面のコンテンツを表示するため、もう 1 つは背面のコンテンツを表示するためです。具体的なサンプル コードは次のとおりです: &lt;!--index.wxml- ->&l

win10システムのミニゲーム「マインスイーパー」はどこにありますか? win10システムのミニゲーム「マインスイーパー」はどこにありますか? Jul 02, 2023 pm 03:37 PM

win10 システムのミニゲーム マインスイーパーはどこにありますか? Win7 システムを使用しているときに多くのユーザーが最も好んでプレイするのは Win7 に付属のマインスイーパであり、マインスイーパの速度を競うために常にプレイしている友人もいます。しかし、多くのユーザーは、Windows 10 システムをアップグレードした後、コンピューターのマインスイーパーが見つからないことに気付きました。多くの友人は、詳細な操作方法を知りませんでした。編集者は、Win10 マインスイーパー ゲームの場所を以下にまとめました。興味がある場合は、フォローしてください。編集者. 以下をチェックしてください! Win10 マインスイーパ ゲームの位置情報共有 1. まず、Win10 のスタートメニューを開き、[App Store] をクリックします。次に、[Microsoft Mineweaker] を検索し、[検索] をクリックします。 2. 行をクリックします

Google Chromeでミニゲームをプレイする方法 Google Chromeでミニゲームをプレイする方法 Jan 30, 2024 pm 12:39 PM

Google Chromeでミニゲームをプレイするにはどうすればよいですか? Google Chrome には人間性を考慮して設計された機能がたくさんあり、さまざまな楽しみが得られます。 Google Chrome には、非常に興味深いイースター エッグ ゲーム、つまり Little Dinosaur Game があります。多くの友人がこのゲームをとても気に入っていますが、プレイするためのトリガー方法がわかりません。エディターが以下で紹介します。Dinosaurチュートリアルに入るミニゲーム。 Google Chrome でミニゲームをプレイする方法 方法 1: [コンピューターがネットワークから切断されました] コンピューターが有線ネットワークを使用している場合は、ネットワーク ケーブルを取り外してください。コンピューターがワイヤレス ネットワークを使用している場合は、ワイヤレス ネットワーク接続をクリックして切断してください。コンピューターの右下隅にあります。 ② パソコンがインターネットに接続されていない状態で、Google Chrome を開くと Google Browse が表示されます。

アリペイ、希少文字ライブラリを収集・補完する「漢字拾い-希少文字」ミニプログラムを開始 アリペイ、希少文字ライブラリを収集・補完する「漢字拾い-希少文字」ミニプログラムを開始 Oct 31, 2023 pm 09:25 PM

10月31日の当サイトのニュースによると、今年5月27日、アント・グループは「漢字拾いプロジェクト」の立ち上げを発表し、最近新たな進展を迎えた:アリペイが「漢字拾い-珍しい文字」ミニプログラムを開始協会からコレクションを収集する レア文字は、レア文字ライブラリを補完し、アリペイでのレア文字入力方法の改善に役立つように、レア文字に異なる入力エクスペリエンスを提供します。現在、ユーザーは「漢字ピックアップ」「珍文字」などのキーワードで検索することで「珍文字」アプレットに入ることができる。ミニプログラムでは、ユーザーがシステムで認識・入力されなかった珍しい文字の画像を送信し、確認後、Alipay のエンジニアがフォントライブラリに追加エントリを作成します。当サイトでは、発音が不明瞭な珍しい単語を対象とした最新の単語分割入力方法をミニプログラムで体験できることに注目しました。ユーザー解体

uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法 uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法 Oct 20, 2023 pm 02:12 PM

uniapp がミニ プログラムと H5 の間で迅速な変換を実現するには、具体的なコード例が必要ですが、近年、モバイル インターネットの発展とスマートフォンの普及に伴い、ミニ プログラムと H5 は不可欠なアプリケーション形式となっています。クロスプラットフォーム開発フレームワークとして、uniapp は一連のコードに基づいて小規模プログラムと H5 間の変換を迅速に実現し、開発効率を大幅に向上させます。この記事では、uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法と、具体的なコード例を紹介します。 1. uniapp uniaの紹介

See all articles