2020 ソフトウェア設計及び演習用の班Wiki

20::gr09::鈴木直揮::モジュール化

AI

  • 置ける場所全探索
    • 関数: fullSearch(argMino) argMinoはMinoクラス、今の盤面などの状態を持っている
    • ネクストから1個ミノを取り出す
    • ミノを四方向回転させる(操作ミノ)
    • それぞれの方向で、左端から右端まで1マスずつ移動させながらハードドロップして盤面を作る(操作ミノ)
  • 盤面評価: evaluateBoard()
    • 全探索で作った盤面全てで、穴が空いていないか、平らになっているか、ラインを消すことが出来るかを点数にして表す
  • 操作の決定: decideOperation()
    • 盤面評価した結果を元にして、一番最適な操作を決定する。
  • 操作の順序を作る
    • 関数: makeSequence(argMino, x, addRotationRight) xはミノを置きたい座標(整数)、addRotationRightはいくつだけ右へ回転させたいか
    • 操作を一まとまりの順序にしてoperateが操作出来るようにする
  • 実際に操作: operate()
    • makeSequenceが作った操作の順序を元に実際に操作する
  • run(argMino) argMinoはfullSearchと同じ
    • 盤面や今のミノの状態を受け取って、どのようにミノを置けば良いか思考し、operateに操作を任せられる段階まで持っていく。
  • test(argMino) argMinoはfullSearchと同じ
    • 実際に操作した結果と探索した結果が一致しているかどうかテストする為の関数
  • AIのインターフェース?
    • ミノを置く前にrunを実行する
    • 操作をする時はoperateを実行する


最終更新日:2020/07/17 14:15:02