復習 - 信号機
CoddyのGDScriptジャーニー「ロジックとフロー」セクションの一部。レッスン 41/78。
チャレンジ
簡単信号機をシミュレートします。スクリプトのトップレベルで、RED、YELLOW、GREENを選択肢とするTrafficLightという名前のenumを宣言し、それぞれ信号機に対してmatchを使う3つの関数を書きます。
get_driver_action(light)は、赤なら"Stop"、黄色なら"Caution"、緑なら"Go"を返しますget_wait_time(light)は、赤なら30、黄色なら3、緑なら25を返しますget_next_light(light)は次の信号機の色を返します。赤の次は緑、緑の次は黄色、黄色の次は赤です
プログラムは2行を読み込みます。最初の信号機の名前(RED、YELLOW、またはGREEN)と、表示する信号機の数(1以上の整数)です。各信号機について、その名前、動作、待ち時間を出力してから、次の信号機に進みます。最後に、すべての待ち時間の合計を出力します。
入力がREDと4の場合、出力は次のとおりです。
RED: Stop for 30 seconds
GREEN: Go for 25 seconds
YELLOW: Caution for 3 seconds
RED: Stop for 30 seconds
Total wait: 88 seconds自分で試してみよう
extends Node
# ここで TrafficLight 列挙型を宣言する
# ここに get_driver_action()、get_wait_time()、get_next_light() を記述する
func _ready():
var first := OS.read_string_from_stdin()
var count := int(OS.read_string_from_stdin())
# 信号と合計待ち時間を表示する
pass
ロジックとフローのすべてのレッスン
自分で練習してみよう: GDScriptオンラインコンパイラ