Menu
CoddyTech

回顾:交通灯

本课属于 Coddy GDScript 学习旅程的“逻辑与流程”单元。第 41 课,共 78 课。

challenge icon

挑战

简单

模拟红绿灯。在脚本的顶层,声明一个名为 TrafficLight 的 enum,包含 RED、YELLOW 和 GREEN 这几个选项,并编写三个函数,每个函数都使用 match 来匹配红绿灯状态:

  • get_driver_action(light) 在红灯时返回 "Stop",黄灯时返回 "Caution",绿灯时返回 "Go"
  • get_wait_time(light) 在红灯时返回 30,黄灯时返回 3,绿灯时返回 25
  • get_next_light(light) 返回下一个红绿灯状态:红灯变为绿灯,绿灯变为黄灯,黄灯变为红灯

程序读取两行输入:第一个红绿灯的名称(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 在线编译器