1107行目のif文が空いてるかどうかの判定ですが、フラグを使って色々やってるので細かいところは無視して下さい。 大事なのは、見つかったら変数WKにIを代入してBREAKしているところです。 目的は「空きを探すこと」なので、1つ見つかったらもうループを続ける必要が無いわけです。