Ini adalah tantangan tambahan untuk menghasilkan teka-teki Loopy . Anda mungkin ingin menyelesaikan tantangan ini sebelum mencoba tantangan yang lebih sulit di tautan sebelumnya.
Tujuan dari tantangan ini adalah untuk memvalidasi solusi untuk teka-teki gila. Silakan ambil semua dokumentasi tentang apakah puzzle gila itu dari tautan sebelumnya. Teka-teki gila yang terpecahkan diformat dengan cara yang sangat mirip dengan keluaran dari pengajuan yang valid ke tantangan "buat lingkaran gila" dan mungkin terlihat seperti ini:
+-+-+ +-+ +-+ +
| | | |2|3|
+-+ + + + + +-+
2| | | |2| 3|
+ + +-+ + + +-+
2| 2 1|3| |
+-+ +-+ +-+ +-+
|2 | | 1 2|
+ +-+ +-+ +-+ +
| |2 1 2|3|3| |
+ + +-+ +-+ +-+
| | |3|2 1
+ +-+ +-+-+-+-+
| 2 2 |
+-+-+-+-+-+-+-+
Jalur yang membentuk solusi ditandai dengan |
dan -
karakter di antara +
karakter.
Spesifikasi input
Program Anda akan menerima puzzle gila dengan solusi yang diformat seperti contoh di atas sebagai input. Program Anda akan menyimpulkan ukuran puzzle dari input. Anda dapat membuat asumsi berikut tentang input:
- Teka-teki memiliki tidak kurang dari 2 dan tidak lebih dari 99 sel di kedua arah
- Dengan demikian, setiap baris memiliki panjang maksimum 199 karakter tidak termasuk karakter baris baru
- Dengan demikian, input berisi maksimal 99 baris
- setiap baris dapat berakhir setelah karakter yang dapat dicetak terakhir atau mungkin diisi dengan karakter spasi sehingga memiliki panjang hingga 2 · y + 1 karakter di mana y adalah jumlah sel dalam arah horizontal
- setiap posisi dengan koordinat x dan y bahkan berisi
+
karakter - posisi yang berdekatan secara horizontal atau vertikal dengan posisi yang mengandung
+
karakter mengandung karakter spasi, berada di belakang garis atau berisi-
karakter jika berdekatan secara horizontal atau|
karakter jika berdekatan secara vertikal - semua posisi lainnya baik di belakang akhir baris atau mengandung salah satu karakter
,
0
,1
,2
, atau3
- semua baris diakhiri dengan platform Anda, karakter baris baru default
- ada persis satu trailing newline
Masukan harus diterima dengan salah satu cara berikut:
- Dari input standar
- Sebagai nilai parameter yang disebutkan
p
dalam permintaan HTTP POST - Sebagai konten formulir HTML
- Sebagai konten file yang disebutkan
p
dalam direktori yang ditentukan implementasi - Dalam implementasi cara yang ditentukan saat runtime jika empat mantan tidak tersedia
- Hard kode jika bahasa Anda tidak berarti menerima input
Spesifikasi keluaran
Program Anda harus diakhiri untuk semua input yang cocok dengan spesifikasi input dan harus menghitung apakah solusi untuk puzzle itu benar. Program Anda akan menampilkan hasil perhitungan sebagai nilai boolean dalam salah satu cara berikut:
- Sebagai status keluar dari nol (solusi valid) atau non-nol (solusi tidak valid)
- Karena karakter
y
(solusi valid) ataun
(solusi tidak valid) diikuti oleh nol atau lebih karakter arbitrer yang dihasilkan dalam implementasi yang ditentukan cara
Perilaku program Anda tidak ditentukan ketika menemukan input tidak diformat sesuai dengan spesifikasi input.
Mencetak gol
Skor dari program Anda adalah jumlah karakter dalam sumbernya kecuali untuk karakter spasi putih yang dapat diabaikan dan komentar yang dapat diabaikan. Anda didorong untuk membuat indentasi kiriman Anda sehingga lebih mudah dibaca untuk orang lain dan untuk mengomentari solusi Anda sehingga lebih mudah diikuti.
Kiriman yang gagal mengikuti spesifikasi input atau output atau menghasilkan hasil yang salah tidak valid.
0
- teki juga merupakan angka yang valid untuk sel.Jawaban:
GolfScript, 133 karakter
Mengharapkan input dari STDIN dan mencetak
y
untuk solusi yang valid dann
untuk yang tidak valid. Melakukan tugas dengan menggunakan sebagian besar string-replace pada grid atau dengan versi rotated grid.Kode beranotasi:
sumber
C #
803 579bitProgram yang lengkap, dibaca dari STDIN, harus mengatasi skema jalur baru yang umum selama ia memiliki umpan garis. Terima kasih kepada HackerCow untuk menunjukkan bahwa saya tidak perlu menambahkan baris baru dalam pertanyaan yang berbeda, mendorong saya untuk menghapusnya di sini dan menyimpan 4 byte
Kode golf:
Kode melakukan 3 pemeriksaan, pertama-tama memeriksa jumlah garis di sekitar setiap angka dan bahwa setiap persimpangan memiliki 0 atau 2 garis yang mengarah darinya, kemudian semua garis disatukan.
Kode yang diformat:
sumber
Cobra - 514
Memeriksa apakah setiap angka memiliki jumlah garis yang tepat di sebelahnya, dan kemudian berjalan di jalur di sekitar garis dan memeriksa apakah ada yang terlewat.
sumber