この記事では、jQueryプラグインを使用してマインスイーパゲームを実装する2番目の記事を参考までに共有します。具体的な内容は次のとおりです。 必要な手続きを完了する 効果は以下のとおりですコードセクション* { マージン: 0px; パディング: 0px; フォントサイズ: 12px; } #div { 位置: 固定; 上: 10px; 下: 10px; 左: 10px; 右: 10px; 境界線: 1px 実線のライトグレー; 境界線の半径: 5px; ディスプレイ: フレックス; コンテンツの中央揃え: 中央; アイテムの位置を中央揃えにします。 オーバーフロー: 非表示; } #箱 { 境界線: 1px 実線のライトグレー; 境界線の半径: 5px; } 。行 { 空白: ラップなし; 高さ: 30px; } 。アイテム { ディスプレイ: インラインフレックス; コンテンツの中央揃え: 中央; アイテムの位置を中央揃えにします。 高さ: 30px; 幅: 30ピクセル; 右境界線: 1px 実線ライトグレー; border-bottom: 1px 実線ライトグレー; カーソル: ポインタ; 位置: 相対的; } .item.num1::after{ 内容: '1'; 色: #1abc9c; 位置: 絶対; 上: 0; 下部: 0; 左: 0; 右:0; ディスプレイ: フレックス; コンテンツの中央揃え: 中央; アイテムの位置を中央揃えにします。 zインデックス: 2; } .item.num2::after{ 内容: '2'; 色: #2ecc71; 位置: 絶対; 上: 0; 下部: 0; 左: 0; 右:0; ディスプレイ: フレックス; コンテンツの中央揃え: 中央; アイテムの位置を中央揃えにします。 zインデックス: 2; } .item.num3::after{ 内容: '3'; 色: #3498db; 位置: 絶対; 上: 0; 下部: 0; 左: 0; 右:0; ディスプレイ: フレックス; コンテンツの中央揃え: 中央; アイテムの位置を中央揃えにします。 zインデックス: 2; } .item.num4::after{ 内容: '4'; 色: #9b59b6; 位置: 絶対; 上: 0; 下部: 0; 左: 0; 右:0; ディスプレイ: フレックス; コンテンツの中央揃え: 中央; アイテムの位置を中央揃えにします。 zインデックス: 2; } .item.num5::after{ 内容: '5'; 色: #f1c40f; 位置: 絶対; 上: 0; 下部: 0; 左: 0; 右:0; ディスプレイ: フレックス; コンテンツの中央揃え: 中央; アイテムの位置を中央揃えにします。 zインデックス: 2; } .item.num6::after{ 内容: '6'; 色: #e67e22; 位置: 絶対; 上: 0; 下部: 0; 左: 0; 右:0; ディスプレイ: フレックス; コンテンツの中央揃え: 中央; アイテムの位置を中央揃えにします。 zインデックス: 2; } .item.num7::after{ 内容: '7'; 色: #e74c3c; 位置: 絶対; 上: 0; 下部: 0; 左: 0; 右:0; ディスプレイ: フレックス; コンテンツの中央揃え: 中央; アイテムの位置を中央揃えにします。 zインデックス: 2; } .item.num8::after{ 内容: '8'; 色: #34495e; 位置: 絶対; 上: 0; 下部: 0; 左: 0; 右:0; ディスプレイ: フレックス; コンテンツの中央揃え: 中央; アイテムの位置を中央揃えにします。 zインデックス: 2; } .item.boom{ 背景画像: url(../img/boom.png); 背景サイズ: 60% 60%; 背景繰り返し: 繰り返しなし; 背景の位置: 中央 中央; } .item::before{ 位置: 絶対; コンテンツ: ''; 上: 0.5px; 左:0.5px; 下: 0.5px; 右: 0.5px; 背景色: グレー; zインデックス: 3; } .item.click::before{ 内容: なし; } .item:ホバー{ アウトライン: 1px 実線 #2c3e50; } #メニュー{ border-bottom: 1px 実線ライトグレー; 位置: 絶対; 上: 0; 左: 0; 右: 0; 高さ: 30px; ディスプレイ: フレックス; 背景色: 白; zインデックス: 10; } .mitem{ フレックス: 1; ディスプレイ: フレックス; コンテンツの中央揃え: 中央; アイテムの位置を中央揃えにします。 } .sl{ 境界線: なし; border-bottom: 1px 実線ライトグレー; アウトライン: なし; 幅: 60%; 高さ: 80%; } .btn{ 境界線: なし; 境界線: 1px 実線のライトグレー; アウトライン: なし; 幅: 60%; 高さ: 80%; 背景色: 透明; カーソル: ポインタ; } .mitem *:hover{ 背景色: ライトグレー; } ```javascript $(ドキュメント).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) 描く(); draw(); // booms(); // 爆弾パラメータを生成する drawbooms(); // 爆弾を描画する drewum(); // すべてのブロックを走査し、プロンプトを生成する }) draw();// booms();//爆弾のパラメータを生成 drawbooms();//爆弾を描画 drewum();//すべてのブロックを走査し、プロンプトを生成 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' data-x='"+a+"' data-y='"+b+"'></div>"); $item.appendTo($row); } $行を追加します($ボックス); } } 関数drawnum(){ (var a = 0;a<x;a++){ (var b = 0;b<y;b++){ var pos = {x:a,y:b}; // この座標の周りの状況を走査して爆弾がいくつあるかを確認します var s = getscore(pos); if(s!=0&&!$dom(pos).hasClass('boom')){ $dom(pos).addClass('num'+s); } } } } 関数 getscore(p){ var インデックス = 0; var s1 = boom.find(n=>nx==(px-1)&&n.y==(py-1)) var s2 = boom.find(n=>nx==(px)&&n.y==(py-1)) var s3 = boom.find(n=>nx==(p.x+1)&&n.y==(py-1)) var s4 = boom.find(n=>nx==(px-1)&&n.y==(p.y+1)) var s5 = boom.find(n=>nx==(px)&&n.y==(p.y+1)) var s6 = boom.find(n=>nx==(p.x+1)&&n.y==(p.y+1)) var s7 = boom.find(n=>nx==(px-1)&&n.y==(py)) var s8 = boom.find(n=>nx==(p.x+1)&&n.y==(py)) if(s1){インデックス++;} if(s2){インデックス++;} if(s3){インデックス++;} if(s4){インデックス++;} if(s5){インデックス++;} if(s6){インデックス++;} if(s7){インデックス++;} if(s8){インデックス++;} インデックスを返します。 } 関数drawbooms(){ boom.forEach(item=>{ $dom(item).addClass('boom'); }) } function booms(){//爆弾パラメータをランダムに生成 var arr = []; (arr.length<c){ var pos = {x:Math.floor(Math.random()*x),y:Math.floor(Math.random()*y)}; var temp = arr.find(n=>nx==pos.x&&n.y==pos.y); if(!temp){ arr.push(位置); } } ブーム = arr; } 関数 $dom(pos){ 戻り値 $("[data-x='"+pos.x+"'][data-y='"+pos.y+"']"); } }) **考えを説明する** - ゲームのパラメータがデジタル化されているため、後続の機能の作成が容易になります 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: MySQL 5.7.15 バージョンのインストールと設定方法のグラフィックチュートリアル
多方向探索ツリー完全二分木の高さ: O(log2N)、ここで2は対数完全なM方向探索木の高さ: O(...
Web フロントエンド開発のプロセスでは、UI デザイナーはグラデーション テキストを使用したデザイ...
序文リアルタイムのデータベース バックアップの必要性は非常に一般的です。MySQL 自体はレプリケー...
重複キーの置換と挿入の違い置換の使用法競合がない場合、挿入と同等となり、他の列のデフォルト値が使用さ...
最近、「フットボール ナビゲーション」Web サイトに取り組んでいるときに、上部の固定ナビゲーション...
1. mysqlの圧縮パッケージを/usr/localフォルダに解凍し、名前をmysqlに変更します...
目次1. MySQLをダウンロードする1.1 ダウンロード1.2 インストール1. MySQLをダウ...
XML スキーマは、DTD に代わる XML ベースのものです。 XML スキーマは、DTD に代わ...
コードをコピーコードは次のとおりです。 <iframe id="myFrameId&...
序文最も人気のあるフロントエンド開発フレームワークである Bootstrap は、Web サイトの開...
目次序文1. 再帰コンポーネント2. 右クリックメニューコンポーネント要約する序文今日、プロジェクト...
プロジェクトを構築する対応するパスでコマンドラインを実行します: react-native init...
Web フロントエンド開発に含まれる内容は、主に W3C 標準の構造、動作、パフォーマンスです。では...
目次1. イベントの委任イベントバブリングイベントキャプチャイベントの泡立ちの昇華考える2. 深いコ...
1. this.$router.push() 1. ビュー <テンプレート> <d...