Doorknobs là tuyệt vời và tất cả, nhưng khi bạn mở một cánh cửa, nó luôn làm lõm các bức tường xung quanh nó. Tôi cần bạn tham gia vào nghệ thuật ASCII của một căn phòng, như thế này:
+---------+--X --X --+-----+
| \ \ |\ | \ |
| \ \ | \ | \|
| X | \ | X
| / | | \ X
| / | \ /
| / | \ / |
+---X --+-------X------+-----+
Và xuất phòng với các ô cửa, như thế này:
+---------+--X --X --+-----+
| \ . \ |\ | \.|
| \ \ | \ .| \|
| X | \ | X
| / | |. \ X
| / .| \ /
|. / | .\ / |
+---X --+-------X------+-----+
Đặc điểm kỹ thuật:
- Phòng ASCII (đầu vào) sẽ bao gồm
+,-và|. Những nhân vật này hoàn toàn là mỹ phẩm; tất cả họ có thể là+s nhưng điều đó sẽ trông thật kinh khủng. Nó cũng sẽ chứa bản lề (X) và cửa (/hoặc\). - Cửa được tạo thành từ
/hoặc\. Bắt đầu từ ký tự "bản lề", nghĩa làXchúng sẽ đi trực tiếp theo đường chéo (thay đổi 1 trongxvà 1 iny) cho 2 hoặc nhiều đơn vị (ký tự). Để tìm nơi đặt cửa chặn cho một cánh cửa (luôn luôn chỉ có một cửa chặn mỗi cửa), hãy tìm cửa cho cửa. Các ô cửa sẽ luôn bắt đầu ở một bản lề và đi cùng một khoảng trống khi chiều dài của cửa lên, xuống, sang trái hoặc phải từ đó. Không gian tiếp theo sau đó sẽ luôn là một bức tường. Ví dụ, trong cánh cửa này, ô cửa được đánh dấu bằng
Ds:\ \ ---DDX-----Một ô cửa được tìm thấy, tìm hiểu xem bạn cần đi theo chiều kim đồng hồ hay ngược chiều kim đồng hồ để đến cửa. Ví dụ, trong cửa ví dụ ở trên, bạn phải đi theo chiều kim đồng hồ, và trong cái này, bạn phải đi ngược chiều kim đồng hồ:
\ <- \ ) -----X ---Một khi bạn biết con đường nào để đi, hãy tiếp tục đi theo con đường đó (bỏ qua cánh cửa) cho đến khi bạn đến được một bức tường.
Đây là một hình ảnh trực quan cho cửa ví dụ ở trên:

Màu xanh là ô cửa, màu cam đang phát hiện ra rằng bạn phải đi theo chiều kim đồng hồ và màu đỏ đang tiếp tục đi theo chiều kim đồng hồ cho đến khi đạt được một bức tường.
Khi bạn đến được bức tường, hãy đi (chiều dài của cánh cửa) các khoảng trống từ bản lề (
X) trên bức tường đó, di chuyển một khoảng cách từ bức tường về phía cửa (vì vậy bạn không đặt cửa chặn ngay trên tường) và chèn một.ở đó Đây là cánh cửa ví dụ tương tự cho thấy cách đặt cửa:\ \ . ---DDX12---Lặp lại cho mọi cánh cửa, và đưa ra kết quả! Sử dụng ví dụ đầu vào ở đầu bài này làm trường hợp kiểm tra để kiểm tra xem chương trình của bạn có hợp lệ không.
Lưu ý rằng bạn không phải xử lý các cửa không khớp với tường của họ, chẳng hạn như:
| / | / | / | / +-X --Hoặc là:
/ / / +-X -- | |- Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte sẽ giành chiến thắng.