ランダムに複数引いた通路の幅が同じになるように整形する方法
ランダムでダンジョンのマップを作成しようとしています。
上の画像のように2つの部屋があり、その間を、2マスの幅がある通路でつなぎます。
通路の始点、終点や折れ曲がる地点はランダムで決まります。
さらに通路を追加します。
二度目以降に通路を追加する際、以前に引いた通路を気にせずに引くので、以前に引いた通路と一部が重なったり、隣り合ったりする場合があります。
こうして2、3回通路を引いた後で、通路の幅がどの場所でも2マスになるように、自動的に通路を整形したいです。
具体的には、以下の2つの条件を満たすようにしたいです。
1.通路内に3x3マスの空間を含まないこと。
2.2x2マスの大きさのキャラクターが、左部屋のどの出口から出ても、右部屋に行けること。また、右部屋のどの出口から出ても、左部屋に行けること。
2x2マスの大きさのキャラクターは、上下左右斜め方向に1マスずつ動きます。
ただし下の画像のような地形を、左下->右上、右上->左下に移動することはできません。
どのようなアルゴリズムで整形すれば良いでしょうか?
追記
部屋と通路のエリアは区別されます。
通路部分の矩形範囲が与えられて、その中で通路を整形したいです。
プレイヤーは1マスの大きさですが、敵キャラクターに、1マスのものと2マスのものがいます。