ドアノブはすばらしいものですが、ドアを開けると、常に周囲の壁がへこんでいます。次のように、部屋のASCIIアートを入力する必要があります。
+---------+--X --X --+-----+
| \ \ |\ | \ |
| \ \ | \ | \|
| X | \ | X
| / | | \ X
| / | \ /
| / | \ / |
+---X --+-------X------+-----+
そして、次のようにドアストップのある部屋を出力します。
+---------+--X --X --+-----+
| \ . \ |\ | \.|
| \ \ | \ .| \|
| X | \ | X
| / | |. \ X
| / .| \ /
|. / | .\ / |
+---X --+-------X------+-----+
仕様:
- ASCIIルーム(入力)で構成されます
+、-と|。これらのキャラクターは純粋に表面的なものです。それらはすべて+s である可能性がありますが、それは恐ろしく見えるでしょう。また、ヒンジ(X)とドア(/または\)も含まれます。 - ドアは
/またはで構成されてい\ます。である「ヒンジ」の文字から出発しX、彼らが斜めに直接移動します(中1の変動xと1でy2台以上(文字)の場合)。 ドアのドアストップを配置する場所を見つけるには(ドアごとにドアストップは常に1つだけです)、ドアの出入口を見つけます。出入口は常に1つのヒンジから始まり、そこからドアの上下左右の長さと同じ量のスペースを取ります。その後の次のスペースは常に壁になります。たとえば、このドアでは、出入口は
Ds でマークされています。\ \ ---DDX-----戸口が見つかったら、ドアに到達するために時計回りまたは反時計回りに移動する必要があるかどうかを調べます。たとえば、上の例のドアでは、時計回りに移動する必要があり、このドアでは反時計回りに移動する必要があります。
\ <- \ ) -----X ---どの方向に進むかがわかったら、壁に着くまでその方向に進み続けます(ドアは無視します)。
上記の例のドアの視覚化を次に示します。

青は出入口、オレンジは時計回りに移動する必要があることを示し、赤は壁に到達するまで時計回りに移動し続けています。
壁に到達したら
X、その壁のヒンジ()から(ドアの長さ)のスペースに移動し、壁からドアに向かって1スペースを移動します(したがって、ドアストップを壁に直接配置しないでください)。.そこ。ドアストップの配置方法を示す同じドアの例を次に示します。\ \ . ---DDX12---ドアごとに繰り返し、結果を出力します!この投稿の上部にあるサンプル入力をテストケースとして使用して、プログラムが有効かどうかを確認してください。
次のような、壁に収まらないドアを取り扱う必要がないことに注意してください。
| / | / | / | / +-X --または:
/ / / +-X -- | |- これはcode-golfなので、バイト単位の最短コードが優先されます。