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

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

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

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

Q&A

解決済

2回答

1184閲覧

micro:bit 勝手にgotoされる

yuki_sann

総合スコア0

JavaScript

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

0グッド

1クリップ

投稿2020/09/13 09:43

編集2020/09/14 08:35

micro:bitにて、迷路を自動生成し、それを攻略するというゲームを作っていますが、なぜかclearごのstart関数(初期化や迷路制作コード)を実行したあとに、勝手にMISS判定の部分に飛ばされ、MISSと出てしまいます

試したこと

関数で2つの所(AのボタンインプットとBのボタンインプット)から呼び出してやっていたので、分散させてみても、だめでした

補足情報

2020年9月13日現在最新版
javascript

code

javascript

1input.onButtonPressed(Button.A, function () { 2 led.unplot(ge22[0], ge22[1]) 3 ge22[1] += 1 4 let count=0 5 if (ge22[0] == 4 && ge22[1] == 4) { 6 basic.showString("CLEAR!") 7 start() 8 } else count += 1 9 if (led.point(ge22[0], ge22[1])) { 10 basic.showString("MISS!") 11 start() 12 } else count += 1 13 if (ge22[0] >= 5 || ge22[1] >= 5) { 14 basic.showString("OVER!") 15 start() 16 } else count += 1 17 if (count == 3) { 18 led.plotBrightness(ge22[0], ge22[1], 60) 19 } 20 return; 21}) 22input.onButtonPressed(Button.B, function () { 23 led.unplot(ge22[0], ge22[1]) 24 ge22[0] += 1 25 let count=0 26 if (ge22[0] == 4 && ge22[1] == 4) { 27 basic.showString("CLEAR!") 28 start() 29 } else count += 1 30 if (led.point(ge22[0], ge22[1])) { 31 basic.showString("MISS!") 32 start() 33 } else count += 1 34 if (ge22[0] >= 5 || ge22[1] >= 5) { 35 basic.showString("OVER!") 36 start() 37 } else count += 1 38 if (count == 3) { 39 led.plotBrightness(ge22[0], ge22[1], 60) 40 } 41 return; 42}) 43function start () { 44 ge12 = [0, 0] 45 ge22 = [0, 0] 46 basic.showLeds(` 47 . # # # # 48 # # # # # 49 # # # # # 50 # # # # # 51 # # # # # 52 `) 53 ge1 = [0, 0] 54 ge2 = [0, 0] 55 let y2 = 0 56 let x2 = 0 57 let randm = 0 58 led.plotBrightness(ge22[0], ge22[1], 60) 59 while (led.point(4, 4) == true) { 60 randm = randint(1, 2) 61 if (randm == 1) { 62 x2 += 1 63 led.unplot(x2, y2) 64 } else { 65 y2 += 1 66 led.unplot(x2, y2) 67 } 68 if (x2 >= 5) { 69 x2 = 4 70 } 71 if (y2 >= 5) { 72 y2 = 4 73 } 74 } 75 return; 76} 77let y2 = 0 78let x2 = 0 79let randm = 0 80let ge12: number[] = [] 81let count = 0 82let ge22: number[] = [] 83let randm22 = 0 84let tasuke3 = 0 85let list3 = 0 86let random3 = 0 87let tasuke22 = 0 88let list22 = 0 89let random22 = 0 90let x22 = 0 91let y22 = 0 92let randm3 = 0 93let p = 0 94let o = 0 95let y = 0 96let x = 0 97let randm2 = 0 98let tasuke = 0 99let list = 0 100let random = 0 101let tasuke2 = 0 102let list2 = 0 103let random2 = 0 104let ge1 , ge2; 105let ge122 = [0, 0] 106ge22 = [0, 0] 107basic.showLeds(` 108 . # # # # 109 # # # # # 110 # # # # # 111 # # # # # 112 # # # # # 113 `) 114led.plotBrightness(0, 0, 60) 115start()

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

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

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

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

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

ikadzuchi

2020/09/13 09:57

まずコードを出してください。
guest

回答2

0

自己解決

CLEAR判定後にreturn;を付け忘れていました
時間をお取りしてしまいすみませんでした
迷路ゲームはこちらです→ https://makecode.microbit.org/_gJLXPrXyT7A9

投稿2020/09/24 07:34

yuki_sann

総合スコア0

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

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

0

なかなか面白い迷路だね
まさか4手目からカーソルが無くなるとか
始めびっくりしたよ!

で調べたんだけどブラウザ上ではエラーになりませんでした
その為推測でちょっと修正しました

まずStartの所
値の初期化をしています
これしないと2回目以降おかしな動きになります。
(いらない変数もあるようだけどそのままにしています)

あとスタートの動き
ブロックでいう「はじめ」のみの最後に、今回作った「gamestart」を真(true)にします。
そうすると「ずっと」の処理[basic.forever(function () {]が繰り返し動いているのでその中で「gamestart」が真(true)かどうか判断してStart関数を実行しています。
前はボタン処理から再度Start関数を呼んでいましたが
「gamestart」を真(true)にして返すことに変更しました。

処理が連続する際はこの様な判定のしかたがよく使われます。
これで一度試してみて下さい。

それにしてもこのツール逆に判りにくい...

Javascript

1input.onButtonPressed(Button.A, function () { 2 led.unplot(ge22[0], ge22[1]) 3 ge22[1] += 1 4if (ge22[0] == 4 && ge22[1] == 4) { 5 basic.showString("CLEAR!") 6 gamestart = true 7 return; 8 } else { 9 count += 1 10 } 11 if (led.point(ge22[0], ge22[1])) { 12 basic.showString("MISS!") 13 gamestart = true 14 return; 15 } else { 16 count += 1 17 } 18 if (ge22[0] >= 5 || ge22[1] >= 5) { 19 basic.showString("OVER!") 20 gamestart = true 21 return; 22 } else { 23 count += 1 24 } 25 if (count == 3) { 26 led.plotBrightness(ge22[0], ge22[1], 60) 27 } 28 return; 29}) 30input.onButtonPressed(Button.B, function () { 31 led.unplot(ge22[0], ge22[1]) 32 ge22[0] += 1 33if (ge22[0] == 4 && ge22[1] == 4) { 34 basic.showString("CLEAR!") 35 gamestart = true 36 return; 37 } else { 38 count2 += 1 39 } 40 if (led.point(ge22[0], ge22[1])) { 41 basic.showString("MISS!") 42 gamestart = true 43 return; 44 } else { 45 count2 += 1 46 } 47 if (ge22[0] >= 5 || ge22[1] >= 5) { 48 basic.showString("OVER!") 49 gamestart = true 50 return; 51 } else { 52 count2 += 1 53 } 54 if (count2 == 3) { 55 led.plotBrightness(ge22[0], ge22[1], 60) 56 } 57 return; 58}) 59function start () { 60 count = 0 61 count2 = 0 62 count3 = 0 63 gamestart = false 64 ge12 = [0, 0] 65 ge2 = [0, 0] 66 ge22 = [0, 0] 67 list = 0 68 list2 = 0 69 list22 = 0 70 list3 = 0 71 o = 0 72 p = 0 73 randm = 0 74 randm2 = 0 75 randm22 = 0 76 randm23 = 0 77 randm3 = 0 78 random = 0 79 random2 = 0 80 random22 = 0 81 random3 = 0 82 tasuke = 0 83 tasuke2 = 0 84 tasuke22 = 0 85 tasuke3 = 0 86 x = 0 87 x2 = 0 88 x22 = 0 89 x222 = 0 90 y = 0 91 y2 = 0 92 y22 = 0 93 y222 = 0 94 basic.showLeds(` 95 . # # # # 96 # # # # # 97 # # # # # 98 # # # # # 99 # # # # # 100 `) 101 led.plotBrightness(ge22[0], ge22[0], 60) 102 while (led.point(4, 4) == true) { 103 randm = randint(1, 2) 104 if (randm == 1) { 105 x2 += 1 106 led.unplot(x2, y2) 107 } else { 108 y2 += 1 109 led.unplot(x2, y2) 110 } 111 if (x2 >= 5) { 112 x2 = 4 113 } 114 if (y2 >= 5) { 115 y2 = 4 116 } 117 } 118 return 119} 120let y222 = 0 121let y22 = 0 122let y2 = 0 123let y = 0 124let x222 = 0 125let x22 = 0 126let x2 = 0 127let x = 0 128let tasuke3 = 0 129let tasuke22 = 0 130let tasuke2 = 0 131let tasuke = 0 132let random3 = 0 133let random22 = 0 134let random2 = 0 135let random = 0 136let randm3 = 0 137let randm23 = 0 138let randm22 = 0 139let randm2 = 0 140let randm = 0 141let p = 0 142let o = 0 143let list3 = 0 144let list22 = 0 145let list2 = 0 146let list = 0 147let ge2: number[] = [] 148let ge12: number[] = [] 149let count3 = 0 150let count2 = 0 151let count = 0 152let gamestart = false 153let ge22: number[] = [] 154let ge1: number[] = [] 155basic.showLeds(` 156 . # # # # 157 # # # # # 158 # # # # # 159 # # # # # 160 # # # # # 161 `) 162led.plotBrightness(0, 0, 60) 163gamestart = true 164basic.forever(function () { 165 if (gamestart == true) { 166 start() 167 } 168}) 169

投稿2020/09/21 16:18

kuma_kuma_

総合スコア2506

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

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

yuki_sann

2020/09/24 07:31 編集

ありがとうございます ですがミス判定などの後にreturn;をつけ忘れていました 解答ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問