Menu
CoddyTech

復習 - 信号機

CoddyのGDScriptジャーニー「ロジックとフロー」セクションの一部。レッスン 41/78。

challenge icon

チャレンジ

簡単

信号機をシミュレートします。スクリプトのトップレベルで、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オンラインコンパイラ