Mô phỏng đèn giao thông bằng State pattern. Interface LightState { next(): LightState; name(): string; } với ba state: RedState -> GreenState -> YellowState -> RedState. Lớp TrafficLight có readonly LightState ban đầu? Không — private LightState $state (không readonly vì state thay đổi); cung cấp tick() để chuyển state và current(): string. Cung cấp static factory TrafficLight::start(): TrafficLight khởi tạo state Red. Đọc n và in trạng thái sau mỗi tick (n tick liên tiếp), bắt đầu từ Red. In trạng thái sau lần tick thứ i trên mỗi dòng.
Dòng 1: n.
1 <= n <= 100
n dòng tên trạng thái.
Đang tải editor...