迷路

迷路生成アルゴリズムを実装した。 (壁伸ばし法)

1が壁で0が通路

1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 1 0 1
1 1 1 0 1 1 1 0 1
1 0 0 0 1 0 0 0 1
1 1 1 0 1 0 1 0 1
1 0 0 0 0 0 1 0 1
1 1 1 1 1 1 1 1 1

Flood-fillアルゴリズムで通路(0)を2で塗りつぶす。

1 1 1 1 1 1 1 1 1
1 2 2 2 2 2 1 2 1
1 1 1 2 1 1 1 2 1
1 2 2 2 1 2 2 2 1
1 1 1 2 1 2 1 2 1
1 2 2 2 2 2 1 2 1
1 1 1 1 1 1 1 1 1

通路(0)がなくなっていれば、通路は連結している(壁に塞がれた通路は無い)と診断できる。

同様に壁(1)を3で塗りつぶす。

3 3 3 3 3 3 3 3 3
3 2 2 2 2 2 3 2 3
3 3 3 2 3 3 3 2 3
3 2 2 2 3 2 2 2 3
3 3 3 2 3 2 3 2 3
3 2 2 2 2 2 3 2 3
3 3 3 3 3 3 3 3 3

壁(1)がなくなっていれば、壁は連結している(通路に回廊は無い)と診断できる