Một số lượt thích giả mạo dựa trên văn bản không cho phép bạn đi vào tường và cho bạn di chuyển trở lại nếu bạn cố gắng. Tại sao làm điều đó khi bạn có thể làm cho người chơi di chuyển theo hướng hợp lệ gần nhất?
Các thách thức
Viết chương trình hàm, đưa ra một hướng và 3 lưới 3 ký tự, xuất ra cùng một lưới sau khi người chơi đã thực hiện một bước.
Ví dụ,
9
#..
.@#
#.#
trở thành
#.@
..#
#.#
Đầu vào
Hướng được đưa ra bởi một chữ số duy nhất từ 1 đến 9, mỗi hướng tương ứng với 8 hướng hồng y và đứng yên. Điều này được bắt nguồn từ vị trí tương đối của các số trên bàn phím:
Tây Bắc .. \ | / ... 7 8 9 W- 4 5 6 -E ... 1 2 3 ../ | \ SW S SE
Tuy nhiên, bạn cũng có thể sử dụng các số 123, 456, 789 thay vì 789, 456, 123. Nói cách khác, bạn có thể hoán đổi 2 hàng hoặc số trên cùng và dưới cùng nếu bạn chọn. Đây là 2 kết hợp chỉ số chấp nhận được.Lưới 3 nhân 3 sẽ bao gồm 3 ký tự ASCII có thể in riêng biệt, đại diện cho sàn, tường và người chơi có thể đi bộ. (Trong các trường hợp thử nghiệm,
.
được sử dụng cho sàn,#
s là tường và@
là trình phát)- Bạn có thể chọn những ký tự mà chương trình của bạn sử dụng, nhưng bạn phải nêu chúng trong câu trả lời của bạn và chúng phải nhất quán qua nhiều thử nghiệm.
- Ký tự đại diện cho nhân vật sẽ luôn ở giữa lưới 3 x 3 và hướng sẽ luôn nằm trong khoảng từ 1 đến 9 (bao gồm)
- Bạn có thể nhận đầu vào theo thứ tự bất kỳ
- Lưới 3 by 3 có thể được nhập vào dưới dạng mảng char, mảng chuỗi, chuỗi 9 độ dài hoặc thay thế hợp lý khác.
Đầu ra
- Trả về từ một hàm hoặc xuất ra StdOut hoặc thay thế gần nhất
- Không gian lưu trữ và dòng mới được cho phép
- Bạn phải sử dụng các biểu diễn ký tự giống như đầu vào
- Các định dạng tương tự được phép cho đầu vào được phép cho đầu ra
Cách người chơi di chuyển
Nếu hướng được chỉ định bị chặn bởi tường (ví dụ: nếu ví dụ trên có hướng 6), thì hãy nhìn vào 2 hướng gần nhất:
- Nếu một (và chỉ một) hướng là miễn phí, hãy di chuyển người chơi theo hướng đó.
- Nếu không có hướng nào là miễn phí, hãy nhìn vào 2 hướng gần nhất tiếp theo (không bao gồm hướng 5). Nếu bạn đã quấn quanh và không tìm thấy hướng mở (người chơi bị bao quanh bởi các bức tường), đừng di chuyển người chơi
- Nếu cả hai hướng đều mở, hãy chọn một hướng để di chuyển ngẫu nhiên (mặc dù không nhất thiết phải thống nhất).
Nếu hướng đã cho là 5, không di chuyển người chơi
Các trường hợp thử nghiệm
( #
= tường, .
= sàn, @
= người chơi)
Đầu vào: 9 # .. . @ # #. # Đầu ra: #. @ .. # #. # Đầu vào: 3 # .. . @ # #. # Đầu ra: # .. .. # # @ # Đầu vào: 7 ##. # @ # .. # Đầu ra: ## @ ##. #.# hoặc là #.# .. # @. # Đầu vào: 5 ... . @. ... Đầu ra: ... . @. ... Đầu vào: 2 ### # @ # ### Đầu ra: ### # @ # ###
Chấm điểm
Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte sẽ thắng.
123;456;789
thay vì 789;456;123
?
yuhjklbn
? YÊN NGHỈ.