Ô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.
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 xanhget_wait_time(light)trả về30khi đèn đỏ,3khi đèn vàng và25khi đèn xanhget_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 secondsTự 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
1Chuyên sâu về chuỗi
Các phương thức của chuỗiTìm kiếm trong chuỗiThay thế và xóa khoảng trắngTách và nốiÔn tập: Kiểm tra tên người dùng7Kiểu liệt kê
Kiểu liệt kê là gì?Định nghĩa kiểu liệt kêCác giá trị của kiểu liệt kêKiểu liệt kê trong matchÔn tập: đèn giao thông10Hàm nâng cao
Trả về nhiều giá trịHàm lambda phần 1Hàm lambda phần 2Ôn tập: sắp xếp bằng lambdaHàm đệ quy phần 1Hàm đệ quy phần 2Ôn tập: tính tổng mảng lồng nhau13Hệ thống quản lý hàng tồn kho
Tổng quan dự ánThêm mặt hàng2Ra quyết định nâng cao
So khớp với biếnĐiều kiện bảo vệ trong so khớpMẫu mảngMẫu từ điểnKiểm tra thành viênÔn tập: Bộ phân tích lệnh5Ứng dụng sổ liên lạc
Hiển thị menuThêm liên hệ8Trình quản lý hồ sơ học sinh
Tổng quan dự ánThêm học sinh3Mảng nhiều chiều
Cơ bản về mảng 2 chiềuTruy cập phần tử trong mảng 2 chiềuVòng lặp lồng nhau với mảng 2 chiềuÔn tập: mảng 2 chiềuMảng răng cưaCác mẫu phổ biến với mảng 2 chiềuÔn tập: bàn cờ6Tập hợp với từ điển
Tập hợp là gì?Từ điển như một tập hợpThêm và xóaHợp và giaoHiệu tập hợpÔn tập: Xóa phần tử trùng lặp9Tổng hợp dữ liệu nâng cao
Tính tổng các giá trịTìm giá trị nhỏ nhất và lớn nhấtSắp xếp tùy chỉnhÔn tập: Sắp xếp từ điểnTự luyện tập: Trình biên dịch GDScript online