Nhiều game Game Boy cũ thường yêu cầu nhập chuỗi từ người dùng. Tuy nhiên, không có bàn phím. Điều này đã được xử lý bằng cách hiển thị cho người dùng một "màn hình bàn phím" như vậy:
Các 'con trỏ nhân vật' sẽ bắt đầu vào chữ A. Người dùng sẽ hướng đến từng nhân vật mong muốn với D-Pad của bốn nút ( UP
, DOWN
, LEFT
và RIGHT
), sau đó nhấn BUTTON A
để thêm nó vào chuỗi thức.
Xin lưu ý:
- Lưới bao quanh , vì vậy nhấn
UP
trong khi chữ A sẽ đưa bạn đến T. - 'Con trỏ ký tự' được đặt sau khi thêm một chữ cái
Các thách thức
Bàn phím trên có các tùy chọn để thay đổi vỏ và có hình dạng không đều. Vì vậy, để đơn giản, trong thử thách này, chúng tôi sẽ sử dụng bàn phím sau (phía dưới bên phải là ASCII char 32, một khoảng trắng):
A B C D E F G
H I J K L M N
O P Q R S T U
V W X Y Z .
Nhập vào bàn phím như thế này là cực kỳ chậm - vì vậy, để dễ dàng hơn, nhiệm vụ của bạn là viết chương trình cho người dùng biết cách nhanh nhất có thể để nhập một chuỗi nhất định. Nếu có nhiều cách nhanh nhất, bạn chỉ cần hiển thị một cách.
Khóa đầu ra phải là:
>
choRIGHT
<
choLEFT
^
choUP
v
choDOWN
.
choBUTTON A
(nối chữ hiện tại vào chuỗi)
Ví dụ, khi được cung cấp chuỗi DENNIS
, giải pháp sẽ như thế này:
>>>.>.>>v..>>.>>>v.
Quy tắc / Chi tiết
- Xin nhớ, lưới bao quanh!
- Bạn có thể gửi một chương trình đầy đủ hoặc một hàm, miễn là nó lấy chuỗi ban đầu và tạo ra một chuỗi giải pháp. Dòng mới khoảng trắng / dấu là không liên quan miễn là đầu ra là chính xác.
- Bạn có thể giả sử đầu vào sẽ chỉ bao gồm các ký tự có thể gõ được trên bàn phím đã chỉ định, nhưng nó có thể trống.
- Đây là môn đánh gôn , vì vậy đoạn mã ngắn nhất sẽ thắng. Tiêu chuẩn mã lỗ golf áp dụng.
Các trường hợp thử nghiệm
Thường có nhiều giải pháp có cùng độ dài. Đối với mỗi trường hợp thử nghiệm, tôi đã bao gồm độ dài tối ưu và một ví dụ. Bạn không cần phải in độ dài trong câu trả lời của mình, chỉ là giải pháp.
FLP.TKC -> 25 steps: <<.<v.<<<v.<<<v.^.<<^.<^.
MOYLEX -> 23 steps: <<v.>>v.>>>v.>^^.^.<<^.
FEERSUM -> 18 steps: <<.<..<vv.>.>>.<^.
MEGO -> 14 steps: <<v.<^.>>.>vv.
A CAT -> 17 steps: .<^.>>>v.<<.<<vv.
BOB -> 10 steps: >.<vv.>^^.
(space) -> 3 steps: <^.
(empty) -> 0 steps: (empty)
Bạn có thể xem trình tạo testcase của tôi trên repl.it - vui lòng thông báo cho tôi nếu có bất kỳ lỗi nào.
Cảm ơn tất cả mọi người đã gửi! Người dùng ngn hiện là người chiến thắng với 61 byte, nhưng nếu bất cứ ai có thể tìm ra giải pháp ngắn hơn, thì có thể di chuyển dấu tích nhỏ màu xanh lá cây;)