Sebuah leaper adalah kategori peri sepotong catur yang bergerak dengan "melompat." Seorang ksatria normal adalah (1,2) -lembaran, yang berarti setiap gerakan melibatkan bergerak jarak 1 kuadrat dalam arah ortogonal dan 2 kuadrat dalam arah tegak lurus.
.o.o.
o...o
..N..
o...o
.o.o.
Ada banyak jenis leaper yang berbeda. The (1,3) -laper disebut Long Knight, atau Unta. Pola gerakannya terlihat seperti ini:
..o.o..
.......
o.....o
...L...
o.....o
.......
..o.o..
Ada juga (2,2) Alfil ...
o...o
.....
..A..
.....
o...o
... dan bahkan (0,1) Wazir.
.o.
oWo
.o.
Tantangan
Diberikan sepasang angka sebagai input, output diagram gerakan yang sesuai. Anda dapat menulis sebuah program atau fungsi, dengan input yang disediakan melalui STDIN / baris perintah atau sebagai argumen, dan output disediakan oleh STDOUT atau nilai balik. Ini adalah kode-golf .
Memasukkan
Input akan berupa daftar dua bilangan bulat yang dipisahkan koma dan huruf besar. Dua bilangan bulat akan berada dalam kisaran 0-7
(inklusif) dan dalam urutan yang tidak menurun. Mengikuti baris opsional untuk input dan output.
Berikut adalah input untuk empat contoh di atas:
1,2,N
1,3,L
2,2,A
0,1,W
Keluaran
Output akan berupa string multiline berbentuk persegi. Huruf kapital akan ditempatkan di tengah untuk mewakili lokasi potongan saat ini. Lokasi pergerakan akan diwakili oleh 4 atau 8 huruf kecil o
. Semua ruang lain di alun-alun akan diisi dengan titik.
Jika pola pergerakannya adalah 0,0
, output hanya huruf kapital.
Sebagai petunjuk, jika bilangan bulat kedua (yang lebih besar) memiliki nilai N, maka kuadrat akan selalu memiliki panjang sisi 2N + 1. The o
s akan selalu berada di sekeliling alun-alun.
Testcases tambahan
1,1,F
o.o
.F.
o.o
5,7,Q
..o.........o..
...............
o.............o
...............
...............
...............
...............
.......Q.......
...............
...............
...............
...............
o.............o
...............
..o.........o..
0,0,J
J
Jawaban:
Ruby, 107
Tidak digabungkan dalam program uji
sumber
Pyth, 40 byte
Saya belajar Pyth! Cobalah .
Penjelasan
sumber
JavaScript (ES6),
163161145 byteDimana
\n
karakter garis baru secara literal. Bekerja dengan menghasilkan kuadran kanan bawah dan memantulkannya di kedua sumbu.Sunting: Disimpan 2 byte berkat @ edc65.
(Saya tiba di sini melalui pertanyaan duplikat yang memungkinkan hasil array yang akan menjadi 19 byte lebih pendek, tetapi tidak menjamin urutan nececreasing, yang menghabiskan 8 byte.)
sumber
fill
dan baris baru literal\n
karakter baris baru literal" ketika saya melakukan itu) tetapi terima kasih atas tip lainnya.JavaScript (ES6) 144
150Kurang golf
Uji
sumber