ボタンでパスワード(質問掲示板)
投稿: ugonight
投稿:2011/11/13 17:02:13(最新:2011/11/13 20:12:13)
久しぶりにやる気だしますよぉぉぉおおっ!
…そんなことはどうでもいいですので、本題に移りますっ
ボタンで入力していくパスワードを作ります。
次のように入力されていれば正解です。
で、問題は入力の仕方なんですが…
選択肢メッセージで
ではいを選んだら▲の上の○が●になり、いいえを選んだら(ryです。
で、問題は二回目以降、選択を迫る(?)時○○○○○○のところは変数で出力したいんですが前のデータを消さずにうまく変数に代入する方法ってないでしょうか?
ツイート
…そんなことはどうでもいいですので、本題に移りますっ
ボタンで入力していくパスワードを作ります。
○○○○●●
次のように入力されていれば正解です。
で、問題は入力の仕方なんですが…
選択肢メッセージで
[本文] ボタンを押しますか? ○○○○○○ ▲ [選択肢] はい いいえ
ではいを選んだら▲の上の○が●になり、いいえを選んだら(ryです。
で、問題は二回目以降、選択を迫る(?)時○○○○○○のところは変数で出力したいんですが前のデータを消さずにうまく変数に代入する方法ってないでしょうか?
コメントする
コメントするには、ログインする必要があります。
コメント一覧
if !getFlag("パス1正解") a = createArray() b = 1 c = " " while b <= 6 a[b] = "○"#これでa[1]~a[6]の変数全てに○を入れられる b = b + 1 end b = 1 while b <= 6 case speakWithSelect(2, "はい", "いいえ", "ボタンを押しますか?\n\n ",a[1],a[2],a[3],a[4],a[5],a[6],"\n",c,"▲") when 0 a[b] = "●" c = c + " " b = b + 1 when 1 c = c + " " b = b + 1 end end if a[1] == "○" && a[2] == "○" && a[3] == "○" && a[4] == "○" && a[5] == "●" && a[5] == "●" #正解の場合のスクリプト(例) speak("パスワードが合っていたようだ。") setFlag("パス1正解", true)#一度正解して、もう一度調べた場合 #のスクリプトが必要な場合、このフラグのスクリプトも入れてください。 else #不正解の場合のスクリプト(例) speak("パスワードが違ったようだ。") end else #一度正解して、もう一度調べた場合(例) speak("もうパスワードは合っている。") end
失礼。訂正します。
配列を使ってみるとか。
スクリプトを書いてしまいましたが、
「2回目を選択した時に、1回目のデータが消えないようにするには」
ということなら、配列を使ったやり方(↑)か変数の名前を変えて管理する
必要があると思います。
#例 if !getFlag("パス1正解") a = createArray() b = 1 c = " " while b <= 6 a[b] = "○"#これでa[1]~a[6]の変数全てに○を入れられる c = c + " " b = b + 1 end b = 1 while b <= 6 case speakWithSelect(2, "はい", "いいえ", "ボタンを押しますか?\n\n ",a[1],a[2],a[3],a[4],a[5],a[6],"\n",c,"▲") when 0 a[b] = "●" b = b + 1 when 1 b = b + 1 end end if a[1] == "○" && a[2] == "○" && a[3] == "○" && a[4] == "○" && a[5] == "●" && a[5] == "●" #正解の場合のスクリプト(例) speak("パスワードが合っていたようだ。") setFlag("パス1正解", true)#一度正解して、もう一度調べた場合 #のスクリプトが必要な場合、このフラグのスクリプトも入れてください。 else #不正解の場合のスクリプト(例) speak("パスワードが違ったようだ。") end else #一度正解して、もう一度調べた場合(例) speak("もうパスワードは合っている。") end
スクリプトを書いてしまいましたが、
「2回目を選択した時に、1回目のデータが消えないようにするには」
ということなら、配列を使ったやり方(↑)か変数の名前を変えて管理する
必要があると思います。
実際の表示と入力データを別に扱います。
入力データはオン/オフなのでフラグの配列ですね。
入力データはオン/オフなのでフラグの配列ですね。
#初期化 setVariable("pass", createArray()) #入力データの配列 i = 0 while i < 6 getVariable("pass")[i] = false #最初は全てオフ i = i + 1 end #入力確認メッセージの作成関数 #conut = 入力中の場所 def selectMsgEdit(count) str = "ボタンを押しますか?\n\n" i = 0 while i < 6 #入力されているデータによって表示を変更 if getVariable("pass")[i] str = str + "●" #オンになっている else str = str + "○" #オフになっている end i = i + 1 end str = str + "\n" #入力中の場所によって表示を変更 i = 0 while i < count str = str + " " i = i + 1 end str = str + "▲" return str end ----- 以下は入力の発生するイベント ----- #選択肢を表示 i = 0 while i < 6 case speakWithSelect(2,"はい","いいえ", selectMsgEdit(i)) when 0 getVariable("pass")[i] = true #オンに変更 when 1 getVariable("pass")[i] = false #オフに変更 end i = i + 1 end #押した結果の表示 str = "ボタンの押した結果\n\n" i = 0 while i < 6 #入力されているデータによって表示を変更 if getVariable("pass")[i] str = str + "●" #オンになっている else str = str + "○" #オフになっている end i = i + 1 end speak(str)
投稿されておりますとおり、
直接、文字列で比較するという方法も
やり方のひとつですね。
参考までに。。。
ひとつのコツなのですが、
変数名は「a,b,c」といったものよりも、
意味を持つ名前をつけてあげると
理解、把握がしやすくなります。