js でパズルゲームを実装する

js でパズルゲームを実装する

この記事では、パズルゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。

1. jsパズルとは何ですか?

js で作られた小さなゲーム

2. 使用手順

1. まずdivボックスを作成する

 <スタイル>
    div,本文{
      マージン: 0;
      高さ: 0;
    }
    #箱{
      幅: 800ピクセル;
      高さ: 800ピクセル;
      背景色: バーリーウッド;
      位置: 相対的;
    }
    #ボックスdiv{
      幅: 200ピクセル;
      高さ: 200px;
      背景: url(./imgs/bg.jpg) 繰り返しなし;
      位置: 絶対;

    }

  </スタイル>
</head>
<本文>
  <div id="box"></div>
</本文>

2. jsを書く

<スクリプト>
  // タグを取得します var box = document.getElementById("box");
  var arrs = [];
  // ループして 16 個のオブジェクトを作成し、配列に追加します for(var i = 0; i < 4; i++){
    (var j = 0; j < 4; j++){
      var divNode = document.createElement("div")
      divNode.style.top = 200 * i + "px"
      divNode.style.left = 200 * j + "px"

      // オブジェクトを作成する var pox = {
        左: 200* i、
        トップ:200*j,
      }
      // 作成したオブジェクトを配列に追加します if( i !== 3 || j !== 3 ){
        arrs.push(pox)
      }それ以外{
        divNode.style.background = "なし";
        divNode.className = "スペース"
      }
      ボックスの子要素を追加します。
    }
  }
  コンソールにログ出力します。

  // オブジェクトをランダムに抽出する for(var i = 0; i < 15; i++){
    var ranNum = parseInt(Math.random() * (15 - i))
    var x = arrs[ranNum].left;
    var y = arrs[ranNum].top;

    box.children[i].style.backgroundPosition = - x + "px " + - y + "px";
    arrs.splice(ranNum,1);
  }

  //キーボードイベント document.onkeyup = function(event) {
    // 押されたキーを取得します var key = event.keyCode
    // (キー == 38) の場合 {

      var x = box.querySelector(".space").style.left
     var y = box.querySelector(".space").style.top
    (var i = 0; i < 16; i++) の場合 {
      parseInt(box.children[i].style.top) == parseInt(y) - 200 && parseInt(box.children[i].style.left) == parseInt(x) の場合
        ボックス.children[i].style.top = y
        box.querySelector(".space").style.top = parseInt(y) - 200 + "px"
      }
    }
     
    // 次へ}else if (key == 40) {
      
      var x = box.querySelector(".space").style.left
      var y = box.querySelector(".space").style.top
      
      // すべての小さなdivを走査し、空白の上にあるものを見つけてyに代入します
      (var i = 0; i < 16; i++){
        parseInt(box.children[i].style.top) == parseInt(y) + 200 && parseInt(box.children[i].style.left) == parseInt(x) の場合 {
          ボックス.children[i].style.top = y
        box.querySelector(".space").style.top = parseInt(y) + 200 + "px"
        }
      }

    // 左 }else if (key = 38) {
      var x = box.querySelector(".space").style.left
     var y = box.querySelector(".space").style.top
    (var i = 0; i < 16; i++) の場合 {
      parseInt(box.children[i].style.left) == parseInt(x) - 200 && parseInt(box.children[i].style.top) == parseInt(y)) {
        box.children[i].style.left = x
        box.querySelector(".space").style.left = parseInt(x) - 200 + "px"
      }
    }
     

    // 正しい }else if (key = 39) {
      var x = box.querySelector(".space").style.left
     var y = box.querySelector(".space").style.top
    (var i = 0; i < 16; i++) の場合 {
      parseInt(box.children[i].style.left) == parseInt(x) + 200 && parseInt(box.children[i].style.top) == parseInt(y) の場合
        box.children[i].style.left = x
        box.querySelector(".space").style.left = parseInt(x) + 200 + "px"
      }
    }
    }

  }

</スクリプト>

レンダリング

レンダリング完了

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • クリックナンバーゲームを実装するネイティブJS
  • コメント付きのスネークゲームを実装する js
  • 2048 ゲームを実装するためのネイティブ js
  • JavaScript タイピングゲーム
  • JavaScript ジグソーパズルゲーム
  • ネイティブ js でカスタム難易度のマインスイーパ ゲームを実装する
  • Gobangゲームを実現するためのjsキャンバス
  • JavaScript を使って格闘ゲームを書く方法
  • JavaScript ベースのシンプルなマインスイーパ ゲームの実装
  • ライフゲームの JavaScript 実装

<<:  nginx ssl を設定して https アクセスを実装する手順 (初心者向け)

>>:  Mysql のいくつかの複雑な SQL ステートメント (重複行のクエリと削除)

推薦する

...

Chromeの最小フォントサイズ制限12pxに対する最終的な解決策

ウェブサイトを作成するユーザーの多くが、このような問題に遭遇すると思います。Chrome のデフォル...

Trash-Cli: Linux のコマンドラインごみ箱ツール

ゴミ箱は Linux ユーザー、Windows ユーザー、Mac ユーザーにとって非常に一般的なので...

IE6 で PNG-24 形式の画像を正常に表示させる 2 つの方法

方法1: </html>の後に次のコードを追加してください。コードをコピーコードは次のと...

InnoDB がシリアル化分離レベルを実装する方法

シリアル化の実装InnoDB は 2 つの方法でシリアル化を実装します。まず、SELECT 文が明示...

jQuery を使用して、iframe 下の無効なページ アンカー ポイントの問題を修正する

適用シナリオ: iframe ページにスクロール バーがなく、親ウィンドウにスクロール バーが表示さ...

VMware 仮想マシンのインストール win7 オペレーティング システム チュートリアル ダイアグラム

VMwareaのインストールプロセスは説明しませんが、主にwin7イメージをロードする方法を説明しま...

Docker stopはすべてのコンテナを停止/削除します

この記事では主に、すべてのコンテナを削除する Docker stop/remove を紹介し、皆さん...

アリババの中秋節ロゴとウェブサイトのデザインプロセス

<br />まずアイデアを考え、次にスケッチを描き、次にマウスでスケッチし、最後にフラッ...

LinuxでIPアドレスを手動で設定するための詳細な手順

目次1.まずネットワークカードの設定ディレクトリに入る2. ifcfg-ens33ネットワークカード...

Vue のディスパッチとブロードキャストの自己実装の詳細説明 (ディスパッチとブロードキャスト)

解決すべき問題主にコンポーネント間のクロスレベル通信用なぜディスパッチとブロードキャストを自分で実装...

Django2.* + Mysql5.7 開発環境統合チュートリアル図

環境: 10.12 の新機能Python 3.6 MySQL 5.7.25 の場合ジャンゴ 2.2....

MYSQLテーブルの包括的な概要

目次1. テーブルを作成する1.1. テーブルを作成するための基本構文1.1.1. シンプルなテーブ...

上下に空白行があるフォームを挿入する解決策

ウェブページを作成するときに、フォームを挿入した後、フォームの上下に空白行が表示されることがよくあり...

MySQLの連結関数CONCATの使い方の詳しい説明

前回の記事では、MySQL の置換関数 (Replace) とセグメンテーション関数 (SubStr...