Validasi kisi teka-teki silang yang diusulkan.
Entri harus berupa program lengkap yang hanya menguji kisi yang diusulkan untuk menentukan apakah memenuhi serangkaian persyaratan untuk membuat pemecah teka-teki silang bahagia.
Memasukkan
Input akan menjadi nama file yang mewakili kisi teka-teki silang. Nama file input dapat diberikan sebagai argumen, pada input standar, atau dengan cara konvensional lain selain hardcoding.
Format file kisi: Baris pertama terdiri dari dua konstanta integer yang dipisahkan spasi-putih M dan N. Berikut adalah garis M yang masing-masing terdiri dari N karakter (ditambah baris baru) dipilih [#A-Z ]
. Karakter-karakter ini diinterpretasikan sedemikian rupa sehingga '#'
mengindikasikan kotak yang diblokir, ' '
kotak terbuka dalam teka-teki tanpa isi yang diketahui dan huruf apa pun berupa kotak terbuka yang berisi huruf itu.
Keluaran
Program seharusnya tidak menghasilkan output pada kisi yang valid dan keluar dengan keadaan terminasi normal. Jika kisi yang diusulkan gagal, program harus menghasilkan pesan kesalahan diagnostik dan keluar dengan keadaan terminasi abnormal (yaitu bukan 0 pada unix) jika ini didukung oleh lingkungan eksekusi Anda. Pesan kesalahan harus menunjukkan kondisi mana untuk validitas dilanggar dan lokasi alun-alun yang menyinggung; Anda bebas memilih cara menyampaikan fakta-fakta ini.
Ketentuan untuk validitas
Kisi yang valid tidak akan memiliki jawaban (melintasi atau turun) yang panjangnya hanya 1 karakter (kredit tambahan untuk membuat panjang minimum sebagai parameter input), dan akan menunjukkan simetri yang biasa. Simetri yang biasa berarti teka-teki silang tetap sama setelah (tiga deskripsi setara dari operasi yang sama):
- refleksi melalui pusat itu sendiri
- refleksi baik secara vertikal maupun horizontal
- Rotasi 180 derajat
Uji input dan output yang diharapkan
Passes:
5 5
# ##
#
#
#
## #
Gagal pada jawaban singkat:
5 5
## ##
#
#
#
## ##
Gagal pada simetri:
5 5
# ##
#
#
# #
## #
Ke samping
Ini adalah tantangan kedua terkait beberapa teka-teki silang. Saya berencana untuk menggunakan serangkaian file-format yang konsisten di seluruh dan untuk membangun seperangkat utilitas terkait silang yang terhormat dalam prosesnya. Misalnya teka-teki selanjutnya akan meminta untuk mencetak versi ASCII dari teka-teki silang berdasarkan input dan output dari teka-teki ini.
Tantangan sebelumnya dalam seri ini: