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

推薦する

Vueログイン機能の実装

目次前面に書かれたログインの概要ログインビジネスプロセスログインサービスの関連技術ポイントログイント...

Tomcat でよく使われるフィルターの詳細な説明

目次1. クロスドメインフィルタ CorsFilter 1.1 設定例1.2 パラメータの説明2. ...

MySQL ビューの原則と使用例の概要

この記事では、MySQL ビューの原理と使用法についてまとめます。ご参考までに、詳細は以下の通りです...

MySQL でのインデックスの追加と削除に関連する操作

目次1. インデックスの役割2. インデックスの作成と削除(1)ALTER TABLE文を使用して、...

Linux 3.X/4.x/5.x でパゴダ パネルのパスワードを忘れた場合の解決方法

ssh に入り、次のコマンドを入力してパスワードをリセットします (コマンドの末尾の「testpas...

SQL IDENTITY_INSERT ケーススタディ

一般的に、データ テーブル内の列を ID 列として設定すると、ID 列の表示値を手動で ID 列に挿...

Nginxポーリングアルゴリズムの基本的な実装方法の詳細な説明

ポーリングアルゴリズムの紹介多くの人が職場で nginx を使用しており、その設定に精通しています。...

MySQLカスタム関数の原理と使用法の分析

この記事では、例を使用して MySQL カスタム関数の原理と使用方法を説明します。ご参考までに、詳細...

MySQL全文インデックスを使用して検索エンジンのサンプルコードの簡易版を実現する

序文全文インデックスを使用できるのは Innodb と MyISAM ストレージ エンジンのみです ...

AIX マウント NFS の書き込み効率が低い場合の解決策

NFSが提供するサービスマウント: サーバー上で /usr/sbin/rpc.mountd サーボ ...

MySQL 8.0ドライバとAlibaba Druidバージョン間の互換性の問題を解決

この記事では主に、MySQL 8.0 ドライバーと Alibaba Druid バージョン間の互換性...

Vue の要素カレンダー コンポーネントを使用したサンプル コード

まず効果図を見てみましょう: 完全なコードは添付されています <テンプレート> <...

MySQL 8.0.12 の詳細なインストールおよびアンインストール チュートリアル

1. MySQL 8.0.12 バージョンのインストール手順。 1. ダウンロードhttps://d...

ウェブページでmp3またはフラッシュプレーヤーコードを再生する

コードをコピーコードは次のとおりです。 <オブジェクト id="player1&qu...

MySQLでクエリキャッシュを実行する方法と失敗を解決する方法

関数を使用する前にパラメータのプロパティを理解して、関数の使い方をより深く理解する必要があることは誰...