ボタンでパスワード(質問掲示板)
投稿:
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」といったものよりも、
意味を持つ名前をつけてあげると
理解、把握がしやすくなります。