Menu
CoddyTech

Ôn tập: đèn giao thông

Thuộc phần Logic và luồng chương trình trong hành trình GDScript của Coddy. Bài học 41 trên 78.

challenge icon

Thử thách

Dễ

Mô phỏng đèn giao thông. Ở cấp cao nhất của tập lệnh, hãy khai báo một enum có tên TrafficLight với các tùy chọn RED, YELLOW và GREEN, rồi viết ba hàm, mỗi hàm dùng match với trạng thái đèn:

  • get_driver_action(light) trả về "Stop" khi đèn đỏ, "Caution" khi đèn vàng và "Go" khi đèn xanh
  • get_wait_time(light) trả về 30 khi đèn đỏ, 3 khi đèn vàng và 25 khi đèn xanh
  • get_next_light(light) trả về trạng thái đèn tiếp theo: đèn đỏ chuyển sang xanh, đèn xanh chuyển sang vàng và đèn vàng chuyển sang đỏ

Chương trình đọc hai dòng: tên của trạng thái đèn đầu tiên (RED, YELLOW hoặc GREEN) và số lượng đèn cần hiển thị (một số nguyên, từ 1 trở lên). Với mỗi trạng thái đèn, hãy in ra tên, hành động và thời gian chờ, rồi chuyển sang trạng thái đèn tiếp theo. Cuối cùng, in ra tổng thời gian chờ.

Với đầu vào RED và 4, đầu ra là:

RED: Stop for 30 seconds
GREEN: Go for 25 seconds
YELLOW: Caution for 3 seconds
RED: Stop for 30 seconds
Total wait: 88 seconds

Tự làm thử

extends Node

# Khai báo enum TrafficLight tại đây

# Viết các hàm (function) get_driver_action(), get_wait_time() và get_next_light() tại đây

func _ready():
	var first := OS.read_string_from_stdin()
	var count := int(OS.read_string_from_stdin())
	# Hiển thị các đèn và tổng thời gian chờ
	pass

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch GDScript online