Дверні ручки чудові і всі, але коли ви відкриваєте двері, вона завжди вбиває стіни навколо неї. Мені потрібно, щоб ти взяв інформацію про мистецтво ASCII кімнати, як це:
+---------+--X --X --+-----+
| \ \ |\ | \ |
| \ \ | \ | \|
| X | \ | X
| / | | \ X
| / | \ /
| / | \ / |
+---X --+-------X------+-----+
І виведіть кімнату з дверними дверцятами, як це:
+---------+--X --X --+-----+
| \ . \ |\ | \.|
| \ \ | \ .| \|
| X | \ | X
| / | |. \ X
| / .| \ /
|. / | .\ / |
+---X --+-------X------+-----+
Специфікація:
- ASCII - зал (вхід) буде складатися з
+,-, і|. Ці персонажі суто косметичні; всі вони могли бути+, але це виглядатиме жахливо. Він також буде містити петлі (X) і двері (/або\). - Двері складаються з
/або\. Починаючи з символу "шарнір", який єX, вони перейдуть прямо по діагоналі (зміна 1 вxі 1 дюймy) на 2 і більше одиниць (символів). Щоб знайти, де поставити дверний проріз для дверей (завжди є лише один дверний стопор на двері), знайдіть дверний отвір для дверей. Дверний проріз завжди починатиметься в одній петлі і проходитиме стільки ж пробілів, скільки довжина дверей вгору, вниз, вліво або вправо. Наступним простором після цього завжди буде стіна. Наприклад, у цій двері дверний проріз позначений
Ds:\ \ ---DDX-----Один дверний проріз знайдений, з’ясуйте, чи потрібно їхати за годинниковою або проти годинникової стрілки, щоб дістатися до дверей. Наприклад, у цій прикладній двері вище, ви повинні піти за годинниковою стрілкою, а в цій - потрібно проти годинникової стрілки:
\ <- \ ) -----X ---Коли ви знаєте, яким шляхом рухатися, продовжуйте рухатися цим шляхом (ігноруючи двері), поки не досягнете стіни.
Ось візуалізація цього для прикладу двері вище:

Синій - це дверний проріз, помаранчевий - це висновок, що потрібно йти за годинниковою стрілкою, а червоний продовжує йти за годинниковою стрілкою, поки не буде досягнута стіна.
Як тільки ви досягнете стіни, перейдіть (на довжину дверей) пробіли від шарніру (
X) на цій стіні, перенесіть один простір від стіни до дверей (щоб ви не ставили дверцята прямо на стіну) і вставляйте.там. Ось той самий приклад дверей, що показує, як розміщений дверний простір:\ \ . ---DDX12---Повторіть для кожної двері та виведіть результат! Використовуйте приклад введення вгорі цієї публікації як тестовий випадок, щоб перевірити, чи дійсна ваша програма.
Зауважте, що вам не доведеться обробляти двері, які не прилягають до їх стін, наприклад:
| / | / | / | / +-X --Або:
/ / / +-X -- | |- Це код-гольф , тому найкоротший код у байтах виграє.