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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

460閲覧

非効率ながらも〇Xゲームを作りたい(Discord.js/Node.js)

siranui

総合スコア54

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/12/01 17:02

編集2018/12/02 04:24

前提・実現したいこと

Discord上でまるばつゲームを作りたいと思っています。
初心者なので、フラグを一つ一つ立てるしか思いつきませんでした...

発生している問題

  1. まるばつと打つ
  2. まるばつと打つ
  3. A1と打つ
  4. B1と打つ
  5. A3と打つ
  6. C2と打つ

この、C2と打った時に違う場面が出てきてしまいます。
おそらくフラグの管理だと思うのですが、原因がわかりません。
言葉だけではあれなので、画像も。
そのに
そのさん

該当のソースコード(作りかけですが、それでも超長いです)

js

1/* 2このプログラムの殆ど一番上に、 3let まるばつ = false; 4let A1 = false; 5let A2 = false; 6let A3 = false; 7let B1 = false; 8let B2 = false; 9let B3 = false; 10let C1 = false; 11let C2 = false; 12let C3 = false; 13*/ 14if (message.content.includes('まるばつ') && まるばつ) { 15 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 16`+`**  A  B  C 171 ┃ ┃ 18 ━╋━╋━ 192 ┃ ┃ 20 ━╋━╋━ 213 ┃ ┃** 22`+"```「$A1」のように打ってください```") 23 return; 24 } 25 if (message.content.includes('A1') && まるばつ && A) { 26 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 27って...`+`**もうそこ埋まってるわよ!** 28別のとこにしなさいよね 29`+"```「$A1」のように打ってください```") 30 return; 31 } 32 if (message.content.includes('B1') && まるばつ && B) { 33 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 34って...`+`**もうそこ埋まってるわよ!** 35別のとこにしなさいよね 36`+"```「$A1」のように打ってください```") 37 return; 38 } 39 if (message.content.includes('C1') && まるばつ && C) { 40 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 41って...`+`**もうそこ埋まってるわよ!** 42別のとこにしなさいよね 43`+"```「$A1」のように打ってください```") 44 return; 45 } 46 if (message.content.includes('A2') && まるばつ && A) { 47 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 48って...`+`**もうそこ埋まってるわよ!** 49別のとこにしなさいよね 50`+"```「$A1」のように打ってください```") 51 return; 52 } 53 if (message.content.includes('B2') && まるばつ && B) { 54 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 55って...`+`**もうそこ埋まってるわよ!** 56別のとこにしなさいよね 57`+"```「$A1」のように打ってください```") 58 return; 59 } 60 if (message.content.includes('C2') && まるばつ && C) { 61 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 62って...`+`**もうそこ埋まってるわよ!** 63別のとこにしなさいよね 64`+"```「$A1」のように打ってください```") 65 return; 66 } 67 if (message.content.includes('A3') && まるばつ && A) { 68 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 69って...`+`**もうそこ埋まってるわよ!** 70別のとこにしなさいよね 71`+"```「$A1」のように打ってください```") 72 return; 73 } 74 if (message.content.includes('B3') && まるばつ && B) { 75 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 76って...`+`**もうそこ埋まってるわよ!** 77別のとこにしなさいよね 78`+"```「$A1」のように打ってください```") 79 return; 80 } 81 if (message.content.includes('C3') && まるばつ && C) { 82 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 83って...`+`**もうそこ埋まってるわよ!** 84別のとこにしなさいよね 85`+"```「$A1」のように打ってください```") 86 return; 87 } 88 if (message.content.includes('A1') && まるばつ && !A&& !A&& !A&& !B&& !B&& !B&& !C&& !C&& !C) { 89 A= true 90 B= true 91 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 92`+`**  A  B  C 931〇┃ ┃ 94 ━╋━╋━ 952 ┃╳┃ 96 ━╋━╋━ 973 ┃ ┃** 98`+"```「$A1」のように打ってください```") 99 return; 100 } 101 if (message.content.includes('B1') && まるばつ && A&& !A&& !A&& !B&& B&& !B&& !C&& !C&& !C) { 102 B= true 103 C= true 104 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 105`+`**  A  B  C 1061〇┃〇┃╳ 107 ━╋━╋━ 1082 ┃╳┃ 109 ━╋━╋━ 1103 ┃ ┃** 111`+"```「$A1」のように打ってください```") 112 return; 113 } 114 if (message.content.includes('A2') && まるばつ && A&& !A&& !A&& B&& B&& !B&& C&& !C&& !C) { 115 let A= false 116 let A= false 117 let A= false 118 let B= false 119 let B= false 120 let B= false 121 let C= false 122 let C= false 123 let C= false 124 let まるばつ = false 125 message.channel.send("~~`"+`${message.author.username}`+"の番です`~~"+` 126`+`**  A  B  C 1271〇┃〇┃╳ 128 ━╋━╋━ 1292〇┃╳┃ 130 ━╋━╋━ 1313╳┃ ┃** 132`+"```????スピカの勝ち!!????```") 133 return; 134 } 135 if (message.content.includes('C2') && まるばつ && A&& !A&& !A&& B&& B&& !B&& C&& !C&& !C) { 136 let A= false 137 let A= false 138 let A= false 139 let B= false 140 let B= false 141 let B= false 142 let C= false 143 let C= false 144 let C= false 145 let まるばつ = false 146 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 147`+`**  A  B  C 1481〇┃〇┃╳ 149 ━╋━╋━ 1502 ┃╳┃〇 151 ━╋━╋━ 1523╳┃ ┃** 153`+"```????スピカの勝ち!!????```") 154 return; 155 } 156 if (message.content.includes('A3') && まるばつ && A&& !A&& !A&& B&& B&& !B&& C&& !C&& !C) { 157 let A= true 158 let A2 = true 159 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 160`+`**  A  B  C 1611〇┃〇┃╳ 162 ━╋━╋━ 1632╳┃╳┃ 164 ━╋━╋━ 1653〇┃ ┃** 166`+"```「$A1」のように打ってください```") 167 return; 168 } 169 if (message.content.includes('C2') && まるばつ && A&& A&& A&& B&& B&& !B&& C&& !C&& !C) { 170 let C= true 171 let C2 = true 172 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 173`+`**  A  B  C 1741〇┃〇┃╳ 175 ━╋━╋━ 1762╳┃╳┃〇 177 ━╋━╋━ 1783〇┃ ┃╳** 179`+"```「$A1」のように打ってください```") 180 return; 181 } 182 if (message.content.includes('B3') && まるばつ && A&& A&& A&& B&& B&& !B&& C&& !C&& !C) { 183 let A= false 184 let A= false 185 let A= false 186 let B= false 187 let B= false 188 let B= false 189 let C= false 190 let C= false 191 let C= false 192 let まるばつ = false 193 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 194`+`**  A  B  C 1951〇┃〇┃╳ 196 ━╋━╋━ 1972╳┃╳┃╳ 198 ━╋━╋━ 1993〇┃〇┃** 200`+"```????スピカの勝ち!!????```") 201 return; 202 } 203 if (message.content.includes('C3') && まるばつ && A&& A&& A&& B&& B&& !B&& C&& !C&& !C) { 204 let A= false 205 let A= false 206 let A= false 207 let B= false 208 let B= false 209 let B= false 210 let C= false 211 let C= false 212 let C= false 213 let まるばつ = false 214 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 215`+`**  A  B  C 2161〇┃〇┃╳ 217 ━╋━╋━ 2182╳┃╳┃╳ 219 ━╋━╋━ 2203〇┃ ┃〇** 221`+"```????スピカの勝ち!!????```") 222 return; 223 } 224 if (message.content.includes('B3') && まるばつ && A&& !A&& !A&& B&& B&& !B&& C&& !C&& !C) { 225 let A= false 226 let A= false 227 let A= false 228 let B= false 229 let B= false 230 let B= false 231 let C= false 232 let C= false 233 let C= false 234 let まるばつ = false 235 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 236`+`**  A  B  C 2371〇┃〇┃╳ 238 ━╋━╋━ 2392 ┃╳┃ 240 ━╋━╋━ 2413╳┃〇┃** 242`+"```????スピカの勝ち!!????```") 243 return; 244 } 245 if (message.content.includes('C3') && まるばつ && A&& !A&& !A&& B&& B&& !B&& C&& !C&& !C) { 246 let A= false 247 let A= false 248 let A= false 249 let B= false 250 let B= false 251 let B= false 252 let C= false 253 let C= false 254 let C= false 255 let まるばつ = false 256 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 257`+`**  A  B  C 2581〇┃〇┃╳ 259 ━╋━╋━ 2602 ┃╳┃ 261 ━╋━╋━ 2623╳┃ ┃〇** 263`+"```????スピカの勝ち!!????```") 264 return; 265 } 266 if (message.content.includes('C1') && まるばつ && A&& !A&& !A&& !B&& B&& !B&& !C&& !C&& !C) { 267 B= true 268 C= true 269 message.channel.send("`"+`${message.author.username}`+"の番です`"+` 270`+`**  A  B  C 2711〇┃ ┃〇 272 ━╋━╋━ 2732 ┃╳┃ 274 ━╋━╋━ 2753 ┃ ┃** 276`+"```「$A1」のように打ってください。```") 277 return; 278 } 279 if (message.content.includes('まるばつ') && !まるばつ) { 280 まるばつ = true; 281 message.channel.send(`:o::x:ゲーム!! 282`+"`〇/╳を多く取ったほうが勝ち`"+` 283**スピカとまるばつゲームをするわ! 284あんたからでいいわよ** 285`+" ```「$まるばつ」と打ってください\n"+`${message.author.username}`+"は〇です```") 286 return; 287 }

補足情報(プログラムを直接見れます)

7157〜7430行目

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/12/02 03:31

○Xゲームというより三目並べですよね?
dice142

2018/12/02 04:16

質問は何でしょうか?
dice142

2018/12/02 04:24

質問文を修正してください。
siranui

2018/12/02 04:25 編集

修正してきました 申し訳ありません
dice142

2018/12/02 04:25

また、画像はなるべくteratail上でアップロードしていただけると見やすいです。
dice142

2018/12/02 04:28

ちょこちょこすみません。動き上問題ないように見えるのですが、どうなってほしいのでしょう?
退会済みユーザー

退会済みユーザー

2018/12/02 04:34

名前の件申し訳ございません...
siranui

2018/12/02 04:46 編集

そのさんのとおり、 〇〇╳ \n ╳╳  \n 〇   この状態でC2を指定するとなぜか 〇〇╳ \n  ╳〇 \n ╳   となってしまいます。これを回避したいです。 地域によって呼び名が変わることはままあることですし、全く問題ないです^^
dice142

2018/12/02 04:46

ああ、表示の入力の位置が変わるということですね。質問の意味を理解できました。ありがとうございます。
siranui

2018/12/02 05:58 編集

語彙力がクソで本当に申し訳ないです ↓以後気をつけます。
m.ts10806

2018/12/02 04:54

自身を卑下するコメントは見ていても不快なのでやめてください。何の解決にもつながらないので(再三の初心者アピールも同様)淡々と要件をきちんと書き、文章がおかしい・日本語がおかしい・理解力が乏しいと思うのでしたらそこを正常にするように注力してください。
guest

回答1

0

ベストアンサー

変数名の数字部分が全角と半角異なっているのが原因だと思います。
」と「1」は違う文字扱いなので、それだけで別の変数扱いになります。


以下アドバイス。

  • 全角変数はなるべく避けた方が良いです。
  • テーブル構造は2次元配列を使えば楽です。

投稿2018/12/02 04:54

編集2018/12/02 04:54
dice142

総合スコア5158

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

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

siranui

2018/12/02 05:03

なるほど!これは盲点でした。 2次元配列!こんなに素晴らしいものがあったんですね! 2次元配列の勉強も兼ねて、それでやってみようと思います。ありがとうございました。 また、質問がまどろっこしくて申し訳ありませんでした
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問