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 ステートメント (重複行のクエリと削除)

推薦する

トップに戻るボタンを実装するJavaScript

この記事では、トップに戻るボタンを実装するためのJavaScriptの具体的なコードを参考までに紹介...

MySQLカバーインデックスの詳しい説明

コンセプトインデックスにクエリ要件を満たすすべてのデータが含まれている場合、それはカバーリング イン...

Vue Nativeを使用したモバイルアプリケーションの構築プロセスの完全な記録

目次序文Vue Nativeの機能宣言的レンダリング双方向バインディングVue.js エコシステムの...

よく忘れられがちな CSS のヒント 26 選

これは、よく使われるけれども忘れられがちな CSS 実装方法のコレクションです。抜けや追加があれば、...

Navicat を仮想マシン MySQL に接続する際によくあるエラーと解決策

質問1 解決するサービスを開始します: service mysqld start; /sbin/ip...

カラフルな時計効果を実現する JavaScript キャンバス

キャンバスを使ってカラフルな時計を書いてみよう! 1. タイトル(1)時計のケースが与えられ、ページ...

Linuxの同時実行は簡単です。このようにするだけです

並行処理関数 i の `grep server /etc/hosts | awk '{pri...

Linuxシステムのログの詳細な紹介

目次1. ログ関連サービス2. システム内の共通ログファイル1. ログ関連サービスCentOS 6....

MySQL で binlog を使用する際のフォーマットの選択方法

目次1. binlogの3つのモード1.ステートメントレベルモード2. 行レベルモード3. 混合モー...

LinuxベースのLVMシームレスディスク水平拡張の詳細な説明

環境名前財産CPU 5650 円メモリ4Gディスク20G+4TB この時点で、サーバーにはすでに次の...

MySql マスタースレーブレプリケーションの実装原理と構成

データベースの読み取りと書き込みの分離は、トラフィック量の多い大規模システムやインターネット アプリ...

SpringBoot プロジェクトの Docker 環境を実行するときに発生する無限再起動問題の詳細な説明

もしかしたら私の考え方が間違っていたのかもしれないし、問題の説明が少し乱雑だったのかもしれないが、こ...

Linuxにgitをインストールする方法

1. はじめにGit は、規模の大小を問わずあらゆるプロジェクトを俊敏かつ効率的に処理するために使用...

URLパラメータに基づくNginx転送

使用シナリオ:ジャンプ パスは、傍受された URL に応じて動的に構成する必要があります。これは、イ...

Nginxはhttpとhttpsの両方のアクセスをサポートするために同じドメイン名を設定します

Nginx は同じドメイン名で構成されており、http と https の両方でアクセスできます。証...