Tulis kode terpendek yang menghitung semua kemungkinan pergerakan (saat ini) dari pemain saat ini dari string FEN yang diberikan. Apa itu string FEN? (Wikipedia)
- Kode terpendek menang, bahasa tidak masalah.
- Keluaran yang bergerak harus mematuhi aturan pergerakan catur kecuali yang lewat , castling, dan promosi pion.
- Abaikan memeriksa, skakmat, dan jalan buntu, raja tidak bisa ditangkap situasi juga.
Anda dapat mengatur output berbeda seperti yang Anda inginkan (misalnya: A2-A4
, A2A4
,a2a4
, a2->a4
...)
Kasus uji:
# INPUT 1: rnbqkbnr / pppppppp / 8/8/8/8 / PPPPPPPP / RNBQKBNR dengan KQkq - 0 1
# OUTPUT 1 A2-A4, A2-A3, B2-B4, B2-B3, C2-C4, C2-C3, D2-D4, D2-D3, E2-E4, E2-E3, F2-F4, F2-F3, G2-G4, G2-G3, H2-H4, H2-H3, B1-A3, B1-C3, G1-F3, G1-H3
# INPUT 2 7k / 8/8/8/8/8 / PP6 / Q1q4K w - - 0 1
# OUTPUT 2 A1-B1, A1-C1, A2-A3, A2-A4, B2-B3, B2-B4, H1-H2, H1-G1, H1-G2
Jawaban:
C - 391 byte
Mengambil input sebagai argumen baris perintah dan mencetak ke stdout dengan kotak berlabel 0 hingga 63.
OK, saya punya beberapa menit jadi saya mencoba untuk menghapus semua bit yang berkaitan dengan deteksi cek. Saya pikir itu sekarang tidak terlalu efisien ...
478 byte versi pendeteksian
sumber
also here is how test case input boards look like
). Mengingat posisi dalam gambar, output kasus uji asli sudah benar sesuai dengan aturan.Java 1455
sumber
Python 553
649678Indentasi dua ruang adalah tab char, yang menyimpan 5 byte.
Itu terjadi kepada saya bahwa Anda mungkin dapat membuatnya mengevaluasi langkah-langkah yang masuk akal untuk lapisan yang layak dan menyimpannya di bawah 1024 byte :) Saya mulai mencari melalui pertanyaan catur lainnya , tetapi sepertinya tidak ada pertanyaan tentang mesin catur codegolf ...
sumber
B1C3
danH2H3
pada contoh pertama ditunjukkan dalam pertanyaan.H2H3
, maksudkuG1H3
- dengan kata lain, ksatria putihmu hanya belok kiri.Python
638637 (482?) ByteCatatan: setelah
def O(y):
ada baris baru dan karakter tab sebelumnyaif
Catatan: dengan menggunakan modul zlib, dimungkinkan untuk mendapatkan kode sumber Python yang valid dari 482 byte hanya dengan mengompresi sumber asli:
sumber
JavaScript (E6) 481
492 550Edit Memperbaiki bug jahat di knight moving. Banyak pekerjaan untuk menjaga byte tetap sama.
(Tidak termasuk spasi dan baris baru disimpan agar mudah dibaca)
Kurang Golf
Tes di konsol FireFox / FireBug
Keluaran
sumber
JAVA
631599594Memperbaiki bug dalam versi 599-byte (terima kasih Jack telah menunjukkan ini!) Dan mempersingkat kode menjadi 594-byte.
Kompilasi:
javac F.java
Jalankan:
java F 6pk/6pp/8/8/8/p7/PP4pp/Q2p2pK w - - 0 1
Output:
B2B3 B2B4 B2A3 A1B1 A1C1 A1D1 H1H2 H1G1 H1G2
sumber
3Q4/p4r1k/P4pp1/4P3/5n2/3P4/4BbbP/RN3KN1 w - - 0 0
aku tidak melihat gerakanF1F2
atauF1G2
apakah raja mampu menangkap?