この記事では、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 バージョンのインストールと設定方法のグラフィックチュートリアル
前回の記事はBootstrap CSS部分の簡単なレビューであり、多くの詳細が見落とされていました。...
key_lenの意味MySQL では、次に示すように、explain を使用して SQL ステートメ...
誰もが色にとても敏感だと思います。私たちの目が見るところにはどこにでも色があります。では、CSS で...
クラウドサーバーを使用するとデータベースに接続できる場合もありますが、Navicat Premium...
はじめに:今日は、サーバー上のMySQLにリモート接続したいと思います。使用するソフトウェアはNav...
1. 問題複数のフローティング要素は親要素の幅を拡張できず、親要素の高さが 0 になる可能性がありま...
まず解決策を見てみましょう #------------mysql の root ユーザーに権限を付与...
1. オンライン チュートリアルによると、Ubuntu 18.04 のインストールはまだ失敗します。...
最近、WeChatアプレットを書いていたとき、WeChatアプレットではすべてのリクエストインターフ...
目次1. 日付までのタイムスタンプ2. UTCを北京時間に変換するWXS (WeiXin Scrip...
目次1. サンプルコード2. 現象を通して本質を見抜く3. 実施原則4. 親コンポーネントのコンパイ...
テーブル:reward(報酬テーブル)があるとします。テーブル構造は次のようになります。 テーブルt...
最近、Oracle、MySQL、SQL Server 2005 のデータ ページング クエリについて...
データベースインデックスについては皆さんもよくご存知だと思います。 インデックスは、データベース テ...
この記事では、参考までに、簡単な計算機能を実装するためのJavaScriptの具体的なコードを紹介し...