回顾:交通灯
本课属于 Coddy GDScript 学习旅程的“逻辑与流程”单元。第 41 课,共 78 课。
挑战
简单模拟红绿灯。在脚本的顶层,声明一个名为 TrafficLight 的 enum,包含 RED、YELLOW 和 GREEN 这几个选项,并编写三个函数,每个函数都使用 match 来匹配红绿灯状态:
get_driver_action(light)在红灯时返回"Stop",黄灯时返回"Caution",绿灯时返回"Go"get_wait_time(light)在红灯时返回30,黄灯时返回3,绿灯时返回25get_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 在线编译器