Karo bulmacaları gerçekten çok seviyorum, ama son zamanlarda onlar için zamanım olmadı. Bu nedenle, bana karo fayans bulmacalarını, özellikle Klotski bulmacalarını düzeltmem için bir programa ihtiyacım var.
Girişiniz şu biçimde olacaktır:
#######
#001gg#
##.222#
.######
burada #
duvarları .
temsil eder, açık bir alanı g
temsil eder, hedefi temsil eder ve bitişik sayılar farklı blokları temsil eder. Şunu kabul edebilirsiniz:
- 10 bloktan fazla olmayacak
- Aynı numaraya sahip iki blok olmayacak
- Tüm bloklar duvarlarla çevrilecektir
- Izgara dikdörtgen şeklindedir
0
Blok hedefi kareler tümünü kapsayacak şekilde geniş yeterlidir.- Geçerli bir çözüm var
0
Tüm hedef kareleri kapsayacak şekilde bloğu koyacak bir dizi hamle geri döndürmeniz gerekir . Bloklar duvarlardan veya diğer bloklardan geçemez. Yukarıdaki bulmaca için uygun bir sıra
2L,1R,1R,1D,0R,0R,0R
2
blok 1 karenin sola hareket etmesini , 1
blok 2 karenin sağını (hedefin üstünde) sonra 1 kare aşağıyı ve sonra 0
3 kareyi sağa bloklamayı temsil eder.
Aslında yukarıdaki problem için çalışacak birkaç dizi vardır ve bunlardan herhangi birini üretmek kabul edilebilir. Çözümünüz optimal olmalı, yani bulmacayı mümkün olduğunca az adımda çözen bir sıra üretmelidir.
Sekans yukarıdaki gibi yazdırılmalıdır, ancak virgül, yeni satır veya boşlukla ayrılmış olabilir. Sonunda virgül veya boşluk olup olmadığı umurumda değil. Çıkışı makul sürede üretmelisiniz (aşağıdaki bulmacalarda maksimum 120 saniye).
Bulmaca 1:
..####..
..#00#..
###00###
#......#
#.1122.#
##3124##
.#3344#.
.##55##.
..#gg#..
..####..
Bulmaca 2:
######
#1002#
#1002#
#3445#
#3675#
#8gg9#
######
Bulmaca 3:
.####.
##1g##
#22g3#
#4255#
#4.56#
#.006#
#7008#
######
Bulmaca 4:
.####.
##00##
#.00g#
#.0.1#
#..g2#
######
Bu kod golf, bu yüzden en kısa çözüm (bayt cinsinden) kazanır!