マインスイーパゲームを実装するための jQuery プラグイン (1)

マインスイーパゲームを実装するための jQuery プラグイン (1)

この記事では、jQueryプラグインを使用したマインスイーパゲームの最初の記事の具体的なコードを参考までに共有します。具体的な内容は次のとおりです。

マインスイーパを作る

パート1描画とクリックのアクションを完了する

効果は以下のとおりです

コードセクション

* {
 マージン: 0px;
 パディング: 0px;
 フォントサイズ: 12px;
}

#div {
 位置: 固定;
 上: 10px;
 下: 10px;
 左: 10px;
 右: 10px;
 境界線: 1px 実線のライトグレー;
 境界線の半径: 5px;
 ディスプレイ: フレックス;
 コンテンツの中央揃え: 中央;
 アイテムの位置を中央揃えにします。
 オーバーフロー: 非表示;
}

#箱 {
 境界線: 1px 実線のライトグレー;
 境界線の半径: 5px;
}

。行 {
 空白: ラップなし;
 高さ: 30px;
}

。アイテム {
 ディスプレイ: インラインフレックス;
 コンテンツの中央揃え: 中央;
 アイテムの位置を中央揃えにします。
 高さ: 30px;
 幅: 30ピクセル;
 右境界線: 1px 実線ライトグレー;
 border-bottom: 1px 実線ライトグレー;
 カーソル: ポインタ;
 位置: 相対的;
}
.item::before{
 位置: 絶対;
 コンテンツ: '';
 上: 0.5px;
 左:0.5px;
 下: 0.5px;
 右: 0.5px;
 背景色: グレー;
}
.item.click::before{
 内容: なし;
}
.item:ホバー{
 アウトライン: 1px 実線 #2c3e50;
}

#メニュー{
 border-bottom: 1px 実線ライトグレー;
 位置: 絶対;
 上: 0;
 左: 0;
 右: 0;
 高さ: 30px;
 ディスプレイ: フレックス;
 背景色: 白;
}
.mitem{
 フレックス: 1;
 ディスプレイ: フレックス;
 コンテンツの中央揃え: 中央;
 アイテムの位置を中央揃えにします。
}
.sl{
 境界線: なし;
 border-bottom: 1px 実線ライトグレー;
 アウトライン: なし;
 幅: 60%;
 高さ: 80%;
}
.btn{
 境界線: なし;
 境界線: 1px 実線のライトグレー;
 アウトライン: なし;
 幅: 60%;
 高さ: 80%;
 背景色: 透明;
 カーソル: ポインタ;
}
.mitem *:hover{
 背景色: ライトグレー;
}
<!DOCTYPE html>
<html>
 <ヘッド>
  <メタ文字セット="utf-8">
  <title>マインスイーパを作る</title>
  <script src="js/jquery-3.4.1.min.js"></script>
  <script src="js/yqlsl.js"></script>
  <link href="css/yqlsl.css" rel="外部nofollow" rel="スタイルシート" type="text/css" />
 </head>
 <本文>
  <div id="div">
   <div id="ボックス">
    
   </div>
   <div id="メニュー">
    <div class="mitem">
     <クラスを選択="sl" id="x">
      <オプション値="10">10</オプション>
      <オプション値="11">11</オプション>
      <オプション値="12">12</オプション>
      <オプション値="13">13</オプション>
      <オプション値="14">14</オプション>
      <オプション値="15">15</オプション>
      <オプション値="16">16</オプション>
      <option value="17">17</option>
      <option value="18">18</option>
      <option value="19">19</option>
      <オプション値="20">20</オプション>
     </選択>
    </div>
    <div class="mitem">
     <クラスを選択="sl" id="y">
      <オプション値="10">10</オプション>
      <オプション値="11">11</オプション>
      <オプション値="12">12</オプション>
      <オプション値="13">13</オプション>
      <オプション値="14">14</オプション>
      <オプション値="15">15</オプション>
      <オプション値="16">16</オプション>
      <option value="17">17</option>
      <option value="18">18</option>
      <option value="19">19</option>
      <オプション値="20">20</オプション>
     </選択>
    </div>
    <div class="mitem">
     <クラスを選択="sl" id="c">
      <オプション値="10">10</オプション>
      <オプション値="20">20</オプション>
      <オプション値="30">30</オプション>
      <オプション値="40">40</オプション>
      <オプション値="50">50</オプション>
      <オプション値="60">60</オプション>
      <オプション値="70">70</オプション>
      <オプション値="80">80</オプション>
      <オプション値="90">90</オプション>
      <オプション値="99">99</オプション>
     </選択>
    </div>
    <div class="mitem">
     <button type="button" class="btn" id="pro">生成</button>
    </div>
   </div>
  </div>
 </本文>
</html>
$(ドキュメント).ready(関数() {
 var x = 10; //x軸var y = 10; //y軸var c = 10; //爆弾の数var boom = []; //爆弾を生成する座標var $menu = $("#menu");
 var $box = $("#box");



 //同期パラメータ $("#x").change(function() {
  x = parseInt($(this).val());
  コンソールログ(x);
 })
 $("#y").change(関数() {
  y = parseInt($(this).val());
 })
 $("#c").change(関数() {
  c = parseInt($(this).val());
 })
 $(document).on('click', '#box .item', function() {
  $(this).addClass("クリック");
 })
 $("#pro").click(function() {
  コンソールログ(x,y,c)
  描く();
 })
 描く();
 function draw() { // 画像を描画する $box.html('');
  (var a = 0; a < x; a++) の場合 {
   var $row = $("<div class='row'></div>");
   (var b = 0; b < y; b++) の場合 {
    var $item = $("<div class='item'></div>");
    $item.appendTo($row);
   }
   $行を追加します($ボックス);
  }
 }
})

アイデアの説明

  • 1 つ目は、パラメータの生成とコンテンツの描画ですが、これは簡単に実行できます。
  • 次に、後続の計算と直接操作を容易にするために、各ブロックの座標をマークする準備をする必要があります。
  • 次に、疑似クラスを通じてクリック効果が実現されます。クリックがない場合、疑似クラスはオーバーレイ マスクを生成し、クリック後に削除できます。

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

以下もご興味があるかもしれません:
  • マインスイーパゲームを実装するための jQuery プラグイン (3)
  • マインスイーパゲームを実装するための jQuery プラグイン (2)
  • jQueryはマインスイーパゲームを実装します

<<:  MySQL 5.6.22 のインストールと設定方法のグラフィックチュートリアル

>>:  CentOS7にPostgreSQL11をインストールする方法

推薦する

MySQL で乱数を生成し、文字列を連結する方法の例

この記事では、MySQL が乱数を生成し、文字列を連結する方法について例を使用して説明します。ご参考...

現在のマウススライドの座標を取得するVue+openlayer5メソッド

序文: Vue プロジェクトで現在のマウスの座標を取得するにはどうすればよいでしょうか。ここで共有す...

シンプルなドラッグ効果を実現するjs

この記事では、簡単なドラッグ効果を実現するためのjsの具体的なコードを参考までに共有します。具体的な...

JavaScript 組み込みの日付と時刻の書式設定のサンプル コード

1. 基礎知識(日付オブジェクトのメソッド) 😜 getFullYear() は年を表す4桁の数字を...

MYSQL インストールの解凍バージョンと発生したエラーと解決策

1 インストールMYSQL 公式サイトから対応する解凍バージョンをダウンロードし、必要なディレクトリ...

aタグ内のテキストを非表示にして画像を表示するには?360モードレンダリングに対応

多くの場合、画像を表示する<a>タグのスタイルに遭遇しますが、タグ内にテキストがあり、そ...

Windows 10 に付属する仮想マシンのネットワークを設定するための詳細な手順 (グラフィック チュートリアル)

1. サーバー ホストをクリックし、右側の操作リストで [仮想スイッチ管理] をクリックして、仮想...

Vueのvue-tree-colorコンポーネントの組織構造図の事例を詳しく解説

目次ネプローダーをインストールするプラグインのインポート始める配置折りたたみディスプレイノードをクリ...

プライベートレジストリ内の画像を照会または取得する方法

Dockerはプライベートレジストリ内のイメージを照会または取得するために、 docker 検索 1...

div を下から上にスライドさせる CSS3 の例

1. まず、CSS3 のターゲット セレクターを使用し、a タグを使用して id セレクターを指定し...

MySQLアカウントのパスワード変更方法(概要)

序文:データベースを日常的に使用すると、パスワードが単純すぎて変更する必要がある場合、パスワードの有...

MySQL における大規模オブジェクトのマルチバージョン同時実行制御の詳細な説明

MySQL 8.0: InnoDB のラージ オブジェクトに対する MVCCこの記事では、MySQL...

JavaScript の Strict モードの詳細な説明

目次導入厳密モードの使用厳格モードの新機能例外を強制的にスローする変数の使用を簡素化する議論を単純化...

MySQL 5.7.30 のインストールとアップグレードの問題に関する詳細なチュートリアル

くさびコンピュータにインストールされている MySQL のバージョンが比較的古く、おそらくバージョン...

H5でクリックされたときにaタグの背景色をキャンセルする方法

1. モバイル端末でクリックされたときにタグの青色を解除する { -webkit-tap-highl...