暗証番号入力(質問掲示板)
投稿: tomato
投稿:2010/11/20 16:09:20(最新:2010/11/22 23:46:22)
四けたの数字を入力して、イベントが始まる仕組みを作りたいのですが、うまく作れません。
選択肢メッセージを例によって、改造しようと思ったのですが、手詰まりました。
どなたかよろしければお知恵をお貸しくださいorz
ツイート
選択肢メッセージを例によって、改造しようと思ったのですが、手詰まりました。
どなたかよろしければお知恵をお貸しくださいorz
コメントする
コメントするには、ログインする必要があります。
コメント一覧
rurun9さんの書いたものをパスワードの設定をしやすくしてみました。
rurun9さんも
と書いてしまったように
(b[2]==2 b[3]==3の &&が抜けてて正常に動きませんでした。)
やはり、配列であっているかどうか確かめるのは書きにくいので・・・
なんだか最初から全部作らずに
人の作ったものを手直しするばっかりですみません・・・
rurun9さんも
if b[0]==0 && b[1]==1 && b[2]==2 b[3]==3
と書いてしまったように
(b[2]==2 b[3]==3の &&が抜けてて正常に動きませんでした。)
やはり、配列であっているかどうか確かめるのは書きにくいので・・・
なんだか最初から全部作らずに
人の作ったものを手直しするばっかりですみません・・・
setSelectWindowRect(400, 50, 50, 350) a=createArray() b=createArray() c=4 #桁数 p=0123 #パスワード n=0 #aに(選択肢の)0~9を入れる while n<10 a[n]=n n=n+1 end n=0 while n<c b[n]=speakWithSelectArray(a,"暗証番号を入力してください\n ",b) n=n+1 end n = 0 d = 0 while n < c d = d * 10 d = d + b[n] n = n + 1 end #正解を書き変えてね if d == p speak("OK") else speak(b," ではありません") end
何やら面白そうなので参加。
…こんなんで大丈夫?
setSelectWindowRect(400, 50, 50, 350) a=createArray() b=createArray() c=4 #桁数 n=0 #aに0~9を入れる while n<10 a[n]=n n=n+1 end n=0 while n<c b[n]=speakWithSelectArray(a,"暗証番号を入力してください\n ",b) n=n+1 end #正解を書き変えてね if b[0]==0 && b[1]==1 && b[2]==2 b[3]==3 speak("OK") else speak(b," ではありません") end
…こんなんで大丈夫?
shirosabotenさんの書いたものを
もう少し応用が利くような形にしてみました。
これなら何桁の暗証番号でも
すこし数字を変えるだけで簡単にできます。
もう少し応用が利くような形にしてみました。
これなら何桁の暗証番号でも
すこし数字を変えるだけで簡単にできます。
#↓パスワード p = 1234 #↓パスワードの桁数 k = 4 a = 0 b = 1 c = "0" i = 1 while i < k b = b * 10 c = c + "0" i = i + 1 end loop = true while loop case speakWithSelect(10,"0","1","2","3", "4","5","6","7","8","9", "暗証番号を答えよ\n" + c) when 0 a = a + b * 0 when 1 a = a + b * 1 when 2 a = a + b * 2 when 3 a = a + b * 3 when 4 a = a + b * 4 when 5 a = a + b * 5 when 6 a = a + b * 6 when 7 a = a + b * 7 when 8 a = a + b * 8 when 9 a = a + b * 9 end b = b / 10 k = k - 1 c = a if k == 0 loop = false end end speak("入力した番号 : ", a) speak("暗証番号と照合します") if a == p speak("登録番号と一致しました") else speak("番号が違います") end
shirosaboten(投稿日:2010/11/21 00:31,
履歴)
あーwよく失敗します。[]をコードに含む場合は{{{code }}}にしないといけない。
a = createArray() a[0] = "■"; a[1] = "■"; a[2] = "■"; a[3] = "■" i = 0 b = 0 while i == 0 case speakWithSelect(10,"0","1","2","3","4","5","6","7","8","9", "4けたの暗証番号を答えよ\n\n" + a) when 0 a[b] = 0 when 1 a[b] = 1 when 2 a[b] = 2 when 3 a[b] = 3 when 4 a[b] = 4 when 5 a[b] = 5 when 6 a[b] = 6 when 7 a[b] = 7 when 8 a[b] = 8 when 9 a[b] = 9 end b = b + 1 if b == 4 i = 1 end end speak("入力した番号 = ", a) speak("暗証番号と照合します") if a[0] == 1 && a[1] == 2 && a[2] == 3 && a[3] == 4 speak("登録番号と一致しました") else speak("番号が違います") end
shirosaboten(投稿日:2010/11/21 00:29,
履歴)
4つの数字を記録して最後にifで答え合わせをしたらいいと思います。
と思って書いてみたらなんか長くなっちゃった^^;
もっときれいな書き方あるんだろうけど、こういう感じです。
= "■"; a[1] = "■"; a[2] = "■"; a[3] = "■"
i = 0
b = 0
while i == 0
case speakWithSelect(10,"0","1","2","3","4","5","6","7","8","9",
"4けたの暗証番号を答えよ\n\n" + a)
when 0
a
when 1
a
when 2
a
when 3
a
when 4
a
when 5
a
when 6
a
when 7
a
when 8
a
when 9
a
end
b = b + 1
if b == 4
i = 1
end
end
speak("入力した番号 = ", a)
speak("暗証番号と照合します")
if a[0] == 1 && a[1] == 2 && a[2] == 3 && a[3] == 4
speak("登録番号と一致しました")
else
speak("番号が違います")
end
]
と思って書いてみたらなんか長くなっちゃった^^;
もっときれいな書き方あるんだろうけど、こういう感じです。
a = createArray() a[0
i = 0
b = 0
while i == 0
case speakWithSelect(10,"0","1","2","3","4","5","6","7","8","9",
"4けたの暗証番号を答えよ\n\n" + a)
when 0
a
記述に間違いがあります: [b]
= 0
when 1
a
記述に間違いがあります: [b]
= 1
when 2
a
記述に間違いがあります: [b]
= 2
when 3
a
記述に間違いがあります: [b]
= 3
when 4
a
記述に間違いがあります: [b]
= 4
when 5
a
記述に間違いがあります: [b]
= 5
when 6
a
記述に間違いがあります: [b]
= 6
when 7
a
記述に間違いがあります: [b]
= 7
when 8
a
記述に間違いがあります: [b]
= 8
when 9
a
記述に間違いがあります: [b]
= 9
end
b = b + 1
if b == 4
i = 1
end
end
speak("入力した番号 = ", a)
speak("暗証番号と照合します")
if a[0] == 1 && a[1] == 2 && a[2] == 3 && a[3] == 4
speak("登録番号と一致しました")
else
speak("番号が違います")
end
]
私には想像もつかないのですが、色んな方法があるんですね!
ikosamiさんも重ねてありがとうございます!
素人な私にも分かりやすく、改良されてあって、とても助かります!!
きっと暗証番号のスクリプトは凡庸性が高いので、皆様の意見全部がまた別の作品にもいい影響を及ぼしてくださると思います。
皆様本当にありがとうございますorz