Dalam tantangan ini, Anda harus menggambar papan catur di bawah ini, dan memungkinkan gerakan dilakukan.
1. Menggambar
Setiap kotak putih memiliki ruang 5x9.
Setiap kotak hitam memiliki 5x9 titik dua.
Papan dikelilingi oleh batas titik dua.
Potongannya adalah 5 karakter lebar dan duduk di baris bawah dari alun-alun di tengah.
Pion berukuran 4 karakter. Mereka duduk sedikit dari tengah ke kanan, dengan 3 kotak kosong di sebelah kiri dan 2 kotak kosong di sebelah kanan. Mereka duduk satu baris di atas bagian bawah alun-alun.
Tidak akan ada spasi putih di luar area board, dengan pengecualian dari trailing newline opsional.
Papan dan catur harus ditarik persis seperti yang ditunjukkan, kecuali bahwa:
Anda dapat mengganti
:
dalam dalam kotak hitam dan perbatasan untuk simbol yang berbeda, dan Anda dapat mengganti@
dalam keping hitam untuk simbol yang berbeda (tetapi tidak sama dengan yang digunakan untuk kotak hitam.)Anda dapat memindahkan bidak satu karakter ke kiri jika Anda mau.
.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
: ::::::::: :::www::: _+_ ::::::::: ::::::::::
: |_|_| :: _,,::: (/) :::)@(::: )@( :::(/)::: _,, ::|_|_|:::
: |@| ::"- \~:: |@| :::|@|::: |@| :::|@|::: "- \~ :::|@|::::
: |@| :::|@|::: |@| :::|@|::: |@| :::|@|::: |@| :::|@|::::
: /@@@\ ::/@@@\:: /@@@\ ::/@@@\:: /@@@\ ::/@@@\:: /@@@\ ::/@@@\:::
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::()::: () ::::()::: () ::::()::: () ::::()::: () :
:::::)(::: )( ::::)(::: )( ::::)(::: )( ::::)(::: )( :
::::/@@\:: /@@\ :::/@@\:: /@@\ :::/@@\:: /@@\ :::/@@\:: /@@\ :
:::::::::: ::::::::: ::::::::: ::::::::: :
: ::::::::: ::::::::: ::::::::: ::::::::::
: ::::::::: ::::::::: ::::::::: ::::::::::
: ::::::::: ::::::::: ::::::::: ::::::::::
: ::::::::: ::::::::: ::::::::: ::::::::::
: ::::::::: ::::::::: ::::::::: ::::::::::
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::::::: ::::::::: ::::::::: ::::::::: :
: ::::::::: ::::::::: ::::::::: ::::::::::
: ::::::::: ::::::::: ::::::::: ::::::::::
: ::::::::: ::::::::: ::::::::: ::::::::::
: ::::::::: ::::::::: ::::::::: ::::::::::
: ::::::::: ::::::::: ::::::::: ::::::::::
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::::::: ::::::::: ::::::::: ::::::::: :
:::::::::: ::::::::: ::::::::: ::::::::: :
: ::::::::: ::::::::: ::::::::: ::::::::::
: () ::::()::: () ::::()::: () ::::()::: () ::::()::::
: )( ::::)(::: )( ::::)(::: )( ::::)(::: )( ::::)(::::
: /__\ :::/__\:: /__\ :::/__\:: /__\ :::/__\:: /__\ :::/__\:::
: ::::::::: ::::::::: ::::::::: ::::::::::
:::::::::: ::::::::: www :::_+_::: ::::::::: :
:::|_|_|:: _,, :::(/)::: ) ( :::) (::: (/) :::_,,::: |_|_| :
::::| |::: "- \~ :::| |::: | | :::| |::: | | ::"- \~:: | | :
::::| |::: | | :::| |::: | | :::| |::: | | :::| |::: | | :
:::/___\:: /___\ ::/___\:: /___\ ::/___\:: /___\ ::/___\:: /___\ :
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2. Bergerak
Kolom diberi label AH dari kiri ke kanan dan 1 hingga 8 dari bawah ke atas. Pengguna harus dapat memasukkan langkah dalam bentuk berikut:
<start column><start row><space><destination column><destination row>
Misalnya B1 C3
berarti memindahkan ksatria ke alun-alun di depan bidak uskup (dengan asumsi permainan baru saja dimulai).
Atau sistem ICCF dapat digunakan, di mana kolom diberi label 1 hingga 8 bukan A ke H. Jadi, gerakan ksatria yang disebutkan di atas menjadi 21 33
.
Gambar ( sumber ) berikut menjelaskan kedua sistem:
Langkah ini akan dieksekusi dan papan baru ditampilkan. Setiap penangkapan yang dihasilkan harus terjadi dengan catur bergerak memindahkan catur di alun-alun tujuan dari papan.
Tidak perlu memeriksa kepindahan catur yang legal, seperti yang telah dicakup dalam tantangan lain: Program catur terkecil dan wasit Catur terkecil Jika pengguna mencoba untuk pindah dari kotak kosong, program atau fungsi Anda harus mengabaikan kepindahan tersebut. Jika pengguna mencoba mengambil bagian yang ramah, Anda bisa mengabaikan gerakan atau membiarkan bagian yang tidak bergerak ditangkap.
Tidak perlu mendukung en passant atau castling.
Anda dapat berasumsi bahwa input akan terbentuk dengan baik, yaitu selalu dalam format yang dijelaskan di atas. Surat akan selalu dalam kasus yang sama, Anda dapat memutuskan kasus apa itu.
3. Penilaian dan Bonus
Ini golf kode. Kode terpendek menang.
-10% bonus jika program atau fungsi Anda memungkinkan untuk promosi. Pengguna memasukkan input ketiga, kali ini salah satu dari surat-surat berikut: QBR N. Ini hanya boleh diizinkan jika langkah berakhir dengan pion di baris terakhir. Gadai ditukar dengan bagian yang disebutkan. QBRN.
-10% bonus jika program atau fungsi Anda menerapkan gerakan "undo" khusus untuk pembalikan gerakan (sejauh awal permainan jika diperlukan.) Jelas mungkin bagi pemain amatir untuk membuat gerakan ilegal, dan mereka mungkin berharap untuk membatalkannya. Anda dapat menentukan input yang harus diberikan pengguna untuk langkah "undo" ini (harus selalu sama.) Perilaku tidak terdefinisi jika pengguna mencoba untuk membatalkan di luar permulaan permainan.
Bonus jumlah, yaitu jika Anda memilih kedua bonus, Anda mendapat -20%.
sumber
Jawaban:
Oktaf,
776688 byte688:
{'foo','bar'}{i}
agak lebih lama['foo';'bar'](i,:)
Masih belum ada bonus yang diterapkan.
Menggunakan sistem ICCF.
Mungkin tidak ada spasi utama dalam deskripsi langkah dan bidang sumber dan tujuan harus dipisahkan oleh spasi putih, sehingga
42 44
benar, sementara42 44
dan42 44
tidak.Versi agak janggal:
sumber
Rubi,
715696693683 byteIni adalah solusi yang cukup berantakan tetapi saya tidak memiliki kesabaran untuk membersihkannya lebih jauh saat ini.
Tidak ada bonus yang dilakukan.
Menggunakan sistem ICCF.
sumber
Python,
1136890753 bytePermintaan maaf untuk jawaban parsial tapi saya seorang pemula dan saya sangat menikmati tantangan ini. Saya tahu itu mungkin benar-benar bertele-tele, tapi inilah konsep kasar saya:
sumber
=
, dan jika afor
atauif
hanya memiliki satu baris di dalamnya, semuanya bisa pergi pada baris yang sama. Lihatlah Tips untuk Bermain Golf dengan Python .