Başka bir labirent mücadelesi zamanı, ama bildiğiniz gibi değil.
Bu meydan okuma için kurallar çoğu labirent meydan okumalarından biraz farklıdır. Döşeme tipleri şu şekilde tanımlanmıştır:
S
: Başladığınız labirentteki konumE
: Almaya çalıştığınız konum0
: Geçemediğiniz duvar+
: Geçebileceğiniz Zemin
Altı yönden birinde seyahat edebilirsiniz: yukarı-sol, yukarı-sağ, sol, sağ, aşağı-sol veya aşağı-sağ.
\ /
-S-
/ \
Labirent sarılmaz. Amaç almak en kısa yol dizesini bulmaktır S
için E
.
Giriş:
Giriş, gösterilen labirentler gibi boşlukla ayrılmış çizgilerdir. Hiç bir iz bırakmayan boşluk bir çizgi izlemez.
Çıktı:
Bir dize içinde R
, L
ve F
nerede
R
sağa döndürür (saat yönünde) 60 dereceL
sizi sola döndürür (saat yönünün tersine) 60 dereceF
sizi işaret ettiğiniz yönde bir boşluk taşır
Sen işaret etmeye başla left-up
En kısa yol, ziyaret edilen pozisyonların sayısı değil, üretilen dizenin uzunluğu ile sayılır. Programınız, çözüm olarak en kısa yolu yazdırmalıdır.
Labirent çözülemez ise, çıktı almalısınız Invalid maze!
.
( >>>
çıktı)
0 0 0 0
0 + 0 + 0
0 0 0 + + 0
0 + 0 + 0 + 0
0 0 + + 0 0 + 0
0 0 + 0 + 0 0 + 0
E 0 + 0 0 + + 0
+ + 0 + 0 + 0
0 0 0 0 0 +
+ 0 + + +
0 S 0 0
>>>RFRFFLFLFRFFLFFFLFLFFRFLFLFRFRFRF
+ 0 0 0 0 0 0
0 0 0 0 0 + + 0
0 0 E 0 + 0 0 + 0
0 0 0 0 0 0 0 +
0 + 0 0 + + +
0 0 + + 0 0
S + 0 0 0
>>>Invalid maze!
0 E S
>>>LF
E + 0
0 + + +
0 0 S
+ +
>>>FFLF
E
0 +
0 + +
0 +
S
>>>RFFLFF
0 E + 0 0
0 + 0 0 + +
+ 0 + + + 0
+ 0 + 0 + 0
+ + + 0 S
>>>FFLFLFFRFRFFRFF
E 0 + + 0
0 + 0 + + 0
+ + + 0 + 0
+ 0 0 0 0 0
+ + + + 0
+ 0 S 0
>>>FLFFRFFRFLF
(Labirentlerin bazılarının aynı uzunluktaki fakat burada listelenmeyen başka çözümleri olduğunu unutmayın)