番兵を入れる
グリッド上の探索をする際に、配列外参照を避けるためのチェックを省略するテク。
code: check.py
if not ((0 <= h < H) and (0 <= w < W)): continue
グリッドの右と下に番兵として壁を入れる。
code: sentinel.py
G.append("#" * (W+1))
Pythonでは$ -1で配列の右端を参照するので、これで上下左右をすべてカバーできている。
例
code: input.py
5 5
oooo.
o.o..
ooooo
oo...
.....
code: out.py
oooo.#
o.o..#
ooooo#
oo...#
.....#
######