Một người chơi cờ là một thể loại của quân cờ cổ tích di chuyển bằng cách "nhảy". Một hiệp sĩ bình thường là một (1,2) -leaper, nghĩa là mỗi lần di chuyển liên quan đến việc di chuyển một khoảng cách 1 hình vuông theo hướng trực giao và 2 hình vuông theo hướng vuông góc.
.o.o.
o...o
..N..
o...o
.o.o.
Có nhiều bước nhảy vọt khác nhau. Giá rẻ hơn (1,3) được gọi là Long Knight, hay Lạc đà. Mô hình di chuyển của nó trông như thế này:
..o.o..
.......
o.....o
...L...
o.....o
.......
..o.o..
Ngoài ra còn có (2,2) Alfil ...
o...o
.....
..A..
.....
o...o
... và thậm chí là (0,1) Wazir.
.o.
oWo
.o.
Thử thách
Cho một cặp số làm đầu vào, xuất sơ đồ chuyển động tương ứng. Bạn có thể viết chương trình hoặc hàm, với đầu vào được cung cấp qua STDIN / dòng lệnh hoặc làm đối số và đầu ra được cung cấp bởi STDOUT hoặc giá trị trả về. Đây là môn đánh gôn .
Đầu vào
Đầu vào sẽ là một danh sách được phân tách bằng dấu phẩy gồm hai số nguyên và một chữ cái viết hoa. Hai số nguyên sẽ nằm trong phạm vi 0-7
(bao gồm) và theo thứ tự không giảm. Trailing newline tùy chọn cho đầu vào và đầu ra.
Dưới đây là các đầu vào cho bốn ví dụ trên:
1,2,N
1,3,L
2,2,A
0,1,W
Đầu ra
Đầu ra sẽ là một chuỗi multiline hình vuông. Chữ in hoa sẽ được đặt ở trung tâm để thể hiện vị trí hiện tại của mảnh. Các vị trí di chuyển sẽ được đại diện bởi 4 hoặc 8 chữ thường o
. Tất cả các không gian khác trong quảng trường sẽ được lấp đầy bằng dấu chấm.
Nếu mô hình chuyển động là 0,0
, đầu ra chỉ là chữ in hoa.
Như một gợi ý, nếu số nguyên thứ hai (số lớn hơn) có giá trị N, thì hình vuông sẽ luôn có độ dài cạnh 2N + 1. Các o
s sẽ luôn ở trên chu vi của hình vuông.
Test Test bổ sung
1,1,F
o.o
.F.
o.o
5,7,Q
..o.........o..
...............
o.............o
...............
...............
...............
...............
.......Q.......
...............
...............
...............
...............
o.............o
...............
..o.........o..
0,0,J
J