状況によって増減可能な選択肢 (改良してみました)
投稿者:
ikosami
投稿日:2013/07/13 19:33
状況によって増減可能な選択肢を作ってみました。
今まで(みんなの街づくり2など)で、
選択肢を増やすのに、わざわざ状況に応じた選択肢を作っていたのですが、
(最初は1つしかない選択肢で、進んでいれば2つ もっと進んでいれば3つの選択肢をそれぞれ用意)
何通りもの状態がある状態だと、それは無理なので
(何個のメニューがあって終了した項目の選択肢は表示しないものなど)
こんなの作ってみました。
(aoihikawaさんの助言と、思いつきで改良しました)
改良によって、when "平原へ"などになり
どの選択肢を選んだかがわかりやすくなっています。
ツイート
今まで(みんなの街づくり2など)で、
選択肢を増やすのに、わざわざ状況に応じた選択肢を作っていたのですが、
(最初は1つしかない選択肢で、進んでいれば2つ もっと進んでいれば3つの選択肢をそれぞれ用意)
何通りもの状態がある状態だと、それは無理なので
(何個のメニューがあって終了した項目の選択肢は表示しないものなど)
こんなの作ってみました。
(aoihikawaさんの助言と、思いつきで改良しました)
改良によって、when "平原へ"などになり
どの選択肢を選んだかがわかりやすくなっています。
a = createArray()
Flg1 = true
Flg2 = false
Flg3 = true
pushArray(a, "平原へ")
if Flg1
pushArray(a, "荒地へ")
end
if Flg2
pushArray(a, "墓場へ")
end
if Flg3
pushArray(a, "山地へ")
end
pushArray(a, "戻る")
case a[speakWithSelectArray(a, "どこに行きますか?")]
when "平原へ"
speak("平原へ向かいます")
when "荒地へ"
speak("荒地へ向かいます")
when "墓場へ"
speak("墓場へ向かいます")
when "山地へ"
speak("山地へ向かいます")
when "戻る"
speak("戻ります")
endコメントする
コメントするには、ログインする必要があります。
このスクリプトで良いところは
対応したコードを自由に設定できるところ
ただ、選択肢の配列変数に
対応したコードを上書きしているところは
間違いかと思いますが
case b[speakWithSelectArray(a, "どこに行きますか?")] when 0 speak("平原へ向かいます") when 1 speak("荒地へ向かいます") when 99 speak("戻ります") endラストをこのように変更すると
関数の例と似たような形となり
すっきりすると思います
(動作内容は同じです)
わざわざ別の変数を使ってまで(今回のだと上書きしてまで)ifにするよりも
case使った方がすっきりしますね(^^;)
ご指摘、ありがとうございます。