

ランダムでダンジョンのマップを作成しようとしています。

[![画像の説明をここに入力](https://i.stack.imgur.com/ERQ8F.png)](https://i.stack.imgur.com/ERQ8F.png)

上の画像のように２つの部屋があり、その間を、2マスの幅がある通路でつなぎます。

[![画像の説明をここに入力](https://i.stack.imgur.com/I4rKW.png)](https://i.stack.imgur.com/I4rKW.png)

通路の始点、終点や折れ曲がる地点はランダムで決まります。  
さらに通路を追加します。

[![画像の説明をここに入力](https://i.stack.imgur.com/ZAylc.png)](https://i.stack.imgur.com/ZAylc.png)

二度目以降に通路を追加する際、以前に引いた通路を気にせずに引くので、以前に引いた通路と一部が重なったり、隣り合ったりする場合があります。

こうして2、3回通路を引いた後で、通路の幅がどの場所でも2マスになるように、自動的に通路を整形したいです。  
具体的には、以下の2つの条件を満たすようにしたいです。

1.通路内に3x3マスの空間を含まないこと。  
2.2x2マスの大きさのキャラクターが、左部屋のどの出口から出ても、右部屋に行けること。また、右部屋のどの出口から出ても、左部屋に行けること。

2x2マスの大きさのキャラクターは、上下左右斜め方向に1マスずつ動きます。  
ただし下の画像のような地形を、左下->右上、右上->左下に移動することはできません。  
[![画像の説明をここに入力](https://i.stack.imgur.com/2aQUE.png)](https://i.stack.imgur.com/2aQUE.png)

どのようなアルゴリズムで整形すれば良いでしょうか？

追記  
部屋と通路のエリアは区別されます。  
通路部分の矩形範囲が与えられて、その中で通路を整形したいです。

プレイヤーは1マスの大きさですが、敵キャラクターに、1マスのものと2マスのものがいます。


CC BY-SA 4.0
2018-11-01T09:21:49.620
49853
2022-06-12T10:13:08.093
2018-11-01T13:36:03.787
8825
8825
question
アルゴリズム
ランダムに複数引いた通路の幅が同じになるように整形する方法


２本で引くのではなく１本で引いて、複数の通路を引く際は重なりを意識する。  
出来上がった後に縦横を倍にすればできませんか？

[code]

    0000000000000000000000
    0111100000000000000000
    0111111111111110000000
    0111100000000011111110
    0111111111111111111110
    0111100000000011111110
    0000000000000000000000
    
[/code]

[code]

    00000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000
    00111111110000000000000000000000000000000000
    00111111110000000000000000000000000000000000
    00111111111111111111111111111100000000000000
    00111111111111111111111111111100000000000000
    00111111110000000000000000001111111111111100
    00111111110000000000000000001111111111111100
    00111111111111111111111111111111111111111100
    00111111111111111111111111111111111111111100
    00111111110000000000000000001111111111111100
    00111111110000000000000000001111111111111100
    00000000000000000000000000000000000000000000
    00000000000000000000000000000000000000000000
    
[/code]


CC BY-SA 4.0
2022-06-12T05:01:41.183
89347
2022-06-12T10:13:08.093
2022-06-12T10:13:08.093
29826
53033
49853
answer