Knight Riderซีรีย์ทีวีในยุค 80 โดดเด่นด้วยรถยนต์อัจฉริยะที่มีความใส่ใจในตัวเองเรียกว่า KITT ลักษณะที่โดดเด่นอย่างหนึ่งของรถคือแถบสแกนเนอร์ที่ติดตั้งด้านหน้าซึ่งอนุญาตให้ KITT "เห็น" (และนั่นดูคุ้นเคยกับแฟน ๆ ของทีวีซีรีส์ก่อนหน้านี้อย่างน่าสงสัย )
สแกนเนอร์มีแปดไฟตามที่เห็นในภาพนี้:
ไฟ "ย้าย" ตามที่แสดงในภาพเคลื่อนไหวนี้
งานของคุณดังที่คุณได้คาดไว้ในตอนนี้มันจะสร้างแถบเครื่องสแกนขึ้นใหม่ด้วยไฟเคลื่อนที่ในรูปแบบ ASCII
ความท้าทาย
ให้เป็นจำนวนเต็มt
เอาท์พุทสถานะของแถบสแกนเนอร์ในทันทีนั้นกำหนดดังนี้:
- เครื่องสแกนประกอบด้วยไฟแปดดวง
- ที่หนึ่งทันทีใด ๆ ของไฟคือการใช้งาน
#
และมีการแสดงให้เห็นว่า ไฟที่ทำงานตลอดเวลาt-1
และt-2
ตอนนี้หรี่แสงและแสดง+
ดังนี้ เว้นแต่พวกเขาจะตรงกับที่ใช้งานอยู่ในปัจจุบัน ไฟที่เหลือปิดอยู่-
และจะแสดงเป็น - แสงที่ใช้งานจะเลื่อนจากซ้ายไปขวาจากนั้นเลื่อนไปทางซ้าย
ผลลัพธ์ที่แน่นอนสำหรับแต่ละรายการt
มีรายละเอียดด้านล่าง
0 --> #++----- % The leftmost light is active, and it just came from the right.
% The two neighbouring lights are dimmed
1 --> +#------ % The active light has bounced to the right, and it is covering
% one of the two lights that should be dimmed. So there is only
% one dimmed light
2 --> ++#----- % The active light has moved one more step to the right, and the
% two trailing dimmed lights are visible
3 --> -++#----
7 --> -----++#
8 --> ------#+ % The active light has bounced to the left
9 --> -----#++
10 --> ----#++-
13 --> -#++----
14 --> #++----- % Same as 0
15 --> +#------ % Same as 1
สำหรับค่าลบของt
รอบจะถูกขยายเพียง:
-1 --> -#++---- % Same as 13
-2 --> --#++--- % Same as 12
กฎเพิ่มเติม
คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น
เอาต์พุตสามารถมีช่องว่างต่อท้ายและขึ้นบรรทัดใหม่
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ