質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Q&A

解決済

1回答

790閲覧

jsのマインスイーパー

salt111

総合スコア15

Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

0グッド

0クリップ

投稿2022/07/09 20:16

編集2022/07/10 10:35

前提

discord bot
jsでマインスイーパーを作っているのですが、行が必ず設定した値より一行少なくなります

該当のソースコード

js

1 //マインスイーパを生成する 2 if (message.content.startsWith("!minesweeper") && message.guild) { 3 var t = 5; 4 const bom = message.content.split(" ")[1]; 5 if (bom >= t * t) 6 return message.reply( 7 "爆弾の数が多すぎます。上限は" + (t * t - 1) + "です。" 8 ); 9 if (bom <= 0) 10 return message.reply("爆弾の数が少なすぎます。 下限は1です。"); 11 if (bom == undefined) return message.reply("爆弾の数を設定してください。"); 12 var a = new Array(t); 13 for (var x = 0; x < t; x++) { 14 a[x] = new Array(t).fill(0); 15 } 16 17 for (var y = 0; y < bom; y++) { 18 var b = Math.floor(Math.random() * t); 19 var c = Math.floor(Math.random() * t); 20 if (a[b][c] >= 9) { 21 y--; 22 continue; 23 } 24 a[b][c] = +10; 25 26 if (b - 1 >= 0 && c - 1 >= 0) { 27 a[b - 1][c - 1]++; 28 } 29 if (b - 1 >= 0 && c + 1 < t) { 30 a[b - 1][c + 1]++; 31 } 32 if (b + 1 < t && c - 1 >= 0) { 33 a[b + 1][c - 1]++; 34 } 35 if (b + 1 < t && c + 1 < t) { 36 a[b + 1][c + 1]++; 37 } 38 if (c - 1 >= 0) { 39 a[b][c - 1]++; 40 } 41 if (c + 1 < t) { 42 a[b][c + 1]++; 43 } 44 if (b - 1 >= 0) { 45 a[b - 1][c]++; 46 } 47 if (b + 1 < t) { 48 a[b + 1][c]++; 49 } 50 } 51 const map = [ 52 "||0⃣||", 53 "||1⃣||", 54 "||2⃣||", 55 "||3⃣||", 56 "||4⃣||", 57 "||5⃣||", 58 "||6⃣||", 59 "||7⃣||", 60 "||8⃣||", 61 "||☠️||", 62 ]; 63 var b; 64 var c; 65 for (b = 0; b < t; b++) { 66 for (c = 0; c < t; c++) { 67 a[b][c] = map[Math.min(a[b][c], 9)]; 68 a[b][c] += c == t - 1 ? "\n" : " "; 69 } 70 } 71 var ms = "\n"; 72 for (var z = 1; z < t; z++) { 73 ms += a[z].join(""); 74 } 75 message.reply(ms); 76 77 return; 78 } 79}); 80 81

試したこと

変数bが行に対応しているので、bのみを増減させてみたのですが、結果は全く変わらず、変数t-1行になってしまいます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

salt111

2022/07/09 20:22

初心者アイコン付け忘れました、、、
guest

回答1

0

ベストアンサー

javascript

1 for (var z = 1; z < t; z++) { 2 ms += a[z].join(""); 3 }

ここでなぜかzを回すforだけ1からスタートしており、1行目の内容が表示するための変数msに追加されていないからですね。

投稿2022/07/09 21:03

RiaFeed

総合スコア2701

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

salt111

2022/07/10 01:35

ほんとだああ 見落としてました ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問