Menghasilkan sebuah program untuk memberi nomor dengan benar pada grid silang.
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 kotak: File teks. Baris pertama terdiri dari dua konstanta integer putih-ruang yang dipisahkan M
dan N
. Mengikuti garis itu adalah M
garis yang masing-masing terdiri dari N
karakter (ditambah garis 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
Output akan berupa file penomoran, dan dapat dikirim ke output standar, ke file yang namanya berasal dari nama file input, ke file yang ditentukan pengguna, atau ke beberapa tujuan konvensional lainnya.
Format file penomoran File teks. Baris yang dimulai dengan '#' diabaikan dan dapat digunakan untuk komentar. Semua jalur lain mengandung tab terpisah triplet i
, m
, n
di mana i
merupakan nomor yang akan dicetak di grid, dan m
dan n
mewakili baris dan kolom dari alun-alun di mana ia harus dicetak. Jumlah baris dan kolom dimulai dari 1.
Skema penomoran
Kisi bernomor yang benar memiliki properti berikut:
- Penomoran dimulai pada 1.
- Tidak ada kolom atau rentang kotak terbuka yang tidak dinomori. (Anda dapat berasumsi bahwa tidak ada jawaban karakter tunggal dalam masalah ini.)
- Angka akan ditemui dalam penghitungan urutan dengan memindai dari baris atas ke bawah mengambil setiap baris dari kiri ke kanan. (Jadi, setiap bentang horizontal diberi nomor di kuadrat paling kiri, dan setiap kolom diberi nomor di kuadrat paling atas.)
Uji input dan output yang diharapkan
Memasukkan:
5 5
# ##
#
#
#
## #
Output (mengabaikan baris komentar):
1 1 2
2 1 3
3 2 2
4 2 4
5 2 5
6 3 1
7 3 4
8 4 1
9 4 3
10 5 3
Ke samping
Ini adalah yang pertama dari apa yang diharapkan akan menjadi beberapa tantangan terkait 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.
'\n'
dalam c pada semua platform. Asumsinya adalah bahwa file input diproduksi pada sistem yang sama yang akan memprosesnya, jadi masalah ini harus transparan. Catatan umum tentang kode-golf: jika Anda menggunakan bahasa asing atau platform aneh, catat apa saja yang mungkin mengejutkan pembaca. Orang akan memberikan kelonggaran untuk itu dalam menilai kiriman Anda.Jawaban:
Ruby -
210139 karakterDiuji dengan ruby 1.9.
sumber
./temp.ruby:4: wrong argument type Symbol (expected Proc) (TypeError)
.ruby1.9 test.rb
.PHP - 175 karakter
sumber
Python,
194177176172 karaktersumber
h.join(f)
saya pikirnext(f)
alih-alihf.readline()
jika Anda> = 2.6 lainnyaf.next()
echo test_input_file_name | python golf.py
, apakah itu salah?C ++
270264260256253 charMenggunakan:
Diformat dengan baik:
Saya mencoba membaca seluruh teka-teki silang sekaligus dan menggunakan satu loop.
Tetapi biaya kompensasi untuk karakter '\ n melebihi keuntungan apa pun:
Terkompresi: 260 karakter
sumber
C,
184189 karakterTidak banyak bicara di sini; Logikanya cukup mendasar. Program ini mengambil nama file pada input standar saat runtime. (Sangat menjengkelkan bahwa program harus bekerja dengan nama file, dan tidak bisa hanya membaca isi file langsung dari input standar. Tetapi orang yang membayar piper memanggil nada!)
fscanf()
Pola aneh adalah upaya saya untuk memindai baris pertama penuh, termasuk baris baru tetapi tidak termasuk spasi putih pada baris berikut. Ada alasan mengapa tidak ada yang menggunakanscanf()
.sumber
5 5
, Anda mengambil 5 pertama sebagai lebar, ketika Anda seharusnya mengambil yang kedua (yang tidak masalah, tentu saja, dalam contoh ini).Implementasi referensi:
c99 ungolfed dan lebih dari 2000 karakter termasuk berbagai debugging frob masih ada di sana.
sumber
PerlTeX : 1143 karakter (tapi saya belum bermain golf )
Perlu file yang disebut
grid.txt
dengan spec, lalu kompilasi dengansumber
Scala 252:
kompilasi dan doa:
sumber
SHELL SCRIPT
sampel I / O:
./numberCrossWord.sh crosswordGrid.txt
sumber
/bin/sh
Keluhan saya tentang baris 11. Bisakah Anda mengatakan cangkang apa yang Anda gunakan (termasuk nomor versi)?ANSI C 694 karakter
Ini adalah versi C yang mencari lintasan horizontal atau vertikal dari dua spasi yang ditabrak ke tepi, atau melawan karakter '#'.
File input diambil dari stdin dan harus:
Setiap tips untuk memadatkan ini akan diterima dengan penuh syukur.
Output untuk Contoh yang Disediakan
sumber