Doorknobs harika ve hepsi, ama bir kapı açtığınızda, her zaman etrafındaki duvarları ezik. Bir odanın ASCII sanatını girmeniz gerekiyor, şöyle:
+---------+--X --X --+-----+
| \ \ |\ | \ |
| \ \ | \ | \|
| X | \ | X
| / | | \ X
| / | \ /
| / | \ / |
+---X --+-------X------+-----+
Ve odayı kapı kapılarıyla çıktı, şöyle:
+---------+--X --X --+-----+
| \ . \ |\ | \.|
| \ \ | \ .| \|
| X | \ | X
| / | |. \ X
| / .| \ /
|. / | .\ / |
+---X --+-------X------+-----+
Şartname:
- ASCII odası (giriş) oluşacaktır
+
,-
ve|
. Bu karakterler tamamen kozmetiktir; hepsi+
s olabilir ama bu korkunç görünecektir. Ayrıca menteşeler (X
) ve kapılar (/
veya\
) içerecektir . - Kapılar
/
veya\
. "Menteşe" karakterinden başlayarak, 2 veya daha fazla birim (karakter) içinX
doğrudan çaprazlama (1 inçx
ve 1 inç değişikliky
) olacaktır. Bir kapının kapı üstünü nereye koyacağınızı bulmak için (her zaman kapı başına sadece bir kapı durağı vardır), kapı girişini bulun. Kapı her zaman bir menteşeden başlayacak ve kapının uzunluğu yukarı, aşağı, sola veya sağa aynı miktarda boşluk bırakacaktır. Bundan sonraki boşluk her zaman bir duvar olacaktır. Örneğin, bu kapıda, kapı
D
s ile işaretlenmiştir :\ \ ---DDX-----
Bir kapı bulunursa, kapıya ulaşmak için saat yönünde mi yoksa saatin tersi yönünde mi gitmeniz gerektiğini öğrenin. Örneğin, yukarıdaki örnek kapıda, saat yönünde gitmelisiniz ve bu kapıda saat yönünün tersine gitmelisiniz:
\ <- \ ) -----X ---
Hangi yoldan gideceğinizi öğrendikten sonra, bir duvara ulaşıncaya kadar bu şekilde devam edin (kapıyı görmezden gelinerek).
İşte yukarıdaki örnek kapı için bir görselleştirme:
Mavi kapı, turuncu saat yönünde gitmeniz gerektiğini ve kırmızı bir duvara ulaşana kadar saat yönünde gitmeye devam ediyor.
Bir duvara ulaştığınızda
X
, o duvardaki menteşeden () boşluklara (kapının uzunluğu) gidin , duvardan bir boşluk uzağa kapıya doğru bir boşluk hareket ettirin (böylece kapı üstünü duvara doğru yerleştirmeyin) ve.
Orada. Kapı kapağının nasıl yerleştirildiğini gösteren aynı örnek kapı:\ \ . ---DDX12---
Her kapı için tekrarlayın ve sonucu alın! Programınızın geçerli olup olmadığını kontrol etmek için bu yazının üst kısmındaki örnek girişi test örneği olarak kullanın.
Duvarlarına uymayan kapıları tutmanız gerekmediğini unutmayın, örneğin:
| / | / | / | / +-X --
Veya:
/ / / +-X -- | |
- Bu kod golf , bu yüzden bayttaki en kısa kod kazanacak.