Bir bulmaca ızgarasını doğru numaralandırmak için bir program üretin.
Giriş
Girdi, bulmaca ızgarasını temsil eden bir dosyanın adı olacaktır. Girdi dosya adı bir argüman olarak, standart girdi üzerinde veya sabit kodlama dışındaki diğer geleneksel yollarla geçirilebilir.
Izgara dosya biçimi: Bir metin dosyası. İlk satır iki boşlukla ayrılmış tamsayı sabitinden oluşur M
ve N
. Bu satırdan sonra, M
her biri N
karakterlerden oluşan satırlar (artı yeni bir satır) seçilir [#A-Z ]
. Bu karakterler, '#'
engellenmiş bir kareyi, ' '
bulmacada bilinen içeriği olmayan açık bir kareyi ve o harfi içeren açık bir kareyi gösteren bir şekilde yorumlanır.
Çıktı
Çıktı bir numaralandırma dosyası olacaktır ve standart çıktıya, adı girdi dosya adından türetilen bir dosyaya, kullanıcının belirlediği bir dosyaya veya başka bir geleneksel hedefe gönderilebilir.
Numaralandırma dosyası biçimi Bir metin dosyası. '#' İle başlayan satırlar yok sayılır ve yorumlar için kullanılabilir. Diğer tüm hatlar bir sekme ayrılmış üçlü içeren i
, m
, bir sayı ızgara üzerinde basılacak temsil eder ve ve bu basılmalıdır kare satır ve sütun temsil eder. Hem satırların hem de sütunların sayısı 1'den başlar.n
i
m
n
Numaralandırma şeması
Doğru numaralandırılmış bir ızgara aşağıdaki özelliklere sahiptir:
- Numaralandırma 1'den başlar.
- Hiçbir sütun veya açık karelerin sayısı numaralandırılmamıştır. (Sorunda tek bir karakter cevabı bulunmayacağını varsayabilirsiniz.)
- Sayım sırasına göre, her satırı soldan sağa alarak üst sıradan alta tarama yapılarak karşılaşılır. (Böylece, her yatay aralık en soldaki karede numaralandırılır ve her sütun en üstteki karede numaralandırılır.)
Test girişi ve beklenen çıktı
Giriş:
5 5
# ##
#
#
#
## #
Çıktı (yorum satırlarını ihmal etme):
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
bir kenara
Bu, umarım bulmaca ile ilgili birçok zorluğun ilkidir. Süre boyunca tutarlı bir dosya formatı seti kullanmayı ve bu süreçte saygın bir bulmaca ile ilgili yardımcı program oluşturmayı planlıyorum. Örneğin, sonraki bir bulmaca bu bulmacanın giriş ve çıkışına dayalı olarak bulmacanın ASCII versiyonunu yazdırmak için çağrıda bulunacaktır.
'\n'
tüm platformlarda c olarak temsil edilir . Varsayım, giriş dosyasının onu işleyecek aynı sistemde üretildiğinden, bu sorunun şeffaf olması gerekir. Code-golf hakkında genel bir not: Eğer garip bir dilde veya garip bir platformda çalışıyorsanız, okuyucuyu şaşırtabilecek herhangi bir şeyi not edin. İnsanlar, başvurunuzu değerlendirirken buna izin vereceklerdir.