状況によって増減可能な選択肢 (改良してみました)
投稿者: 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
コメントする
コメントするには、ログインする必要があります。
このスクリプトで良いところは
対応したコードを自由に設定できるところ
ただ、選択肢の配列変数に
対応したコードを上書きしているところは
間違いかと思いますが
ラストをこのように変更すると
関数の例と似たような形となり
すっきりすると思います
(動作内容は同じです)
わざわざ別の変数を使ってまで(今回のだと上書きしてまで)ifにするよりも
case使った方がすっきりしますね(^^;)
ご指摘、ありがとうございます。