Bạn sống trong một nhà ga rộng 80 ký tự. Bạn chán, vì vậy bạn quyết định chơi domino. Không, không phải loại nhàm chán trông giống như Scrabble, loại thú vị mà bạn dành một giờ để đặt chúng để xem chúng rơi trong một giây.
Trong các thiết bị đầu cuối, domino trông như thế này:
| upright domino
\ left-tilted domino
/ right-tilted domino
__ fallen domino
Như chúng ta đã biết, nếu một domino nghiêng chạm vào một cái thẳng đứng, thì domino thứ hai cũng bị nghiêng. Ngoại lệ duy nhất này là nếu hai domino nghiêng chạm vào nó:
|\ --> \\ /| --> // /|\ --> /|\
Điều chỉnh hằng số hấp dẫn của thiết bị đầu cuối của bạn để quá trình chuyển đổi này mất 100 ms.
Nếu một domino nghiêng được hỗ trợ bởi một domino khác hoặc các bức tường của nhà ga, hành trình của nó kết thúc.
Không có domino nghiêng trong
\||||____||||/__ /|\ /\ /|\ __\||||____||||/
(80 ký tự) sẽ di chuyển, vì hai domino nghiêng ngoài cùng được hỗ trợ bởi các bức tường của thiết bị đầu cuối và tất cả những thứ khác được hỗ trợ bởi các domino khác.
Tuy nhiên, nếu không gian theo hướng nghiêng trống, domino rơi xuống:
| \\ --> |__\ // | --> /__|
Thiết bị đầu cuối. Hằng số hấp dẫn. Bạn sẽ có được điểm…
Cuối cùng, có một cơn gió nhẹ từ bên trái, do đó, những chiếc domino nghiêng phải rơi nhanh hơn những chiếc nghiêng bên trái:
|/ \| --> |__\|
Bài tập
Viết chương trình / chức năng hiển thị hình ảnh động của trò chơi domino trong thiết bị đầu cuối.
Mã của bạn nên làm như sau:
Đọc một chuỗi từ đầu vào, đại diện cho trạng thái ban đầu của domino.
Chuỗi này sẽ chứa không quá 80 ký tự và chỉ bao gồm các domino được mô tả ở trên và các khoảng trống.
In trạng thái và chờ trong 100 ms.
Biến đổi trạng thái như đã giải thích ở trên.
Nếu trạng thái thay đổi, quay trở lại 2.
Quy tắc bổ sung
Độ dài của chuỗi đầu vào không ảnh hưởng đến chiều rộng của thiết bị đầu cuối; ngay cả khi chuỗi ngắn hơn 80 ký tự, các bức tường của thiết bị đầu cuối vẫn cách nhau 80 ký tự.
Mỗi lần thực hiện bước 2, trạng thái sẽ được in đến cùng một vị trí, ghi đè trạng thái trước đó.
Vì một số ngôn ngữ không có khả năng chờ chính xác 100 ms, vui lòng chờ bất kỳ số tiền nào trong khoảng từ 50 đến 1000 ms.
Luật golf tiêu chuẩn được áp dụng.
Ví dụ
Đối với trạng thái ban đầu
||\/||
in như sau (cái này qua cái kia):
||\/|| |\\//| \\\/// __\\//__
Đối với trạng thái ban đầu
/||||\
in như sau
/||||\ //||\\ ///\\\
Đối với trạng thái ban đầu
/|||\
in như sau
/|||\ //|\\
Đối với trạng thái ban đầu
|/ \|/ \|/ \|/ \|
in như sau:
|__\|__\|__\|__\|
Đối với trạng thái ban đầu (80 ký tự)
\||||____||||/__ /|\ /\ /|\ __\||||____||||/
in như sau
\||||____||||/__ /|\ /\ /|\ __\||||____||||/
/
hoặc/|
bạn sẽ thấy gạch không rơi hoàn toàn như bình thường.