LoginSignup
0
1

More than 3 years have passed since last update.

迷路を抜けるアルゴリズム

Posted at

迷路を"S"からスタートし"G"へゴールする様な脱出アルゴリズムの作成

システム設計

  • mapにユーザー定義型[wall][road]を設定
  • ゴールまでたどり着くよう、[save][reset]メソッドを作成
  • [road]型に通った道を記す[gone]フラグをセット
  • [road]型にリセット前に通った道を示す[art_gone]フラグをセット
  • 基本処理として、周囲のマスの中で[road]の[gone],[alt_gone]フラグの着いていないマスに移動
  • マスを移動する際に2つ以上進んだ事ない道があった際、saveアクションを実行
  • saveアクションが実行されると、現在の座標位置を無制限配列?で記録
    ※セーブスロットが1つだと、「分岐の先の分岐」があった場合詰むため
  • ゴールの座標に一番近い座標の値を優先的に移動
  • 行き止まりになった際はresetアクションを実行し、一番新しいsaveアクションが実行された座標に戻る
  • 以上の処理を繰り返し、ゴール座標へ向かう

基本処理

  1. 空いているマスへ移動
  2. 分岐がある場合はセーブし、ゴールに近いマス(or ランダム)に移動
  3. 行き止まりが起きた場合はリセットし、セーブ座標へ戻る
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1