ImpasseというゲームのAIを作り直す
全体順位は23人中7位
ルール
12点先取のゲームで最前列まで行くと1つ自分の駒でのせていない好きな盤上の駒をのせる
こまをのせると今度は後退して最後尾まで戻るとその駒をおろして1点
駒の移動は載せていると斜め後ろ2方向に開いているだけ動かせる
載せていないと斜め前2方向で開いているだけ
例外として載せている時斜め後ろひとマスに載せていない自分の駒が
あった時、のせている駒だけ動かせる
また移動ことができないときに自分の駒を一個、好きなものを取って得点にできる
以前のAI
ルールをろくに把握もせず、盤データも使わず
移動できる候補手の移動距離とか先頭まで行っているかだけを評価したもの
目標
もう少しマシなものにすればあわよくば3位ぐらいワンチャン狙えないかとやってみました
まあ参加者の方々をみれば強敵しかいないのは重々承知
作成AI
候補手から指したあとの盤面を作成して(のせる処理がかなり面倒でした)
そこから得点できるか先頭までいけるかを作成して順位1位だけあがる
さらに作成した盤面から全コマの移動数を評価に入れ
初手一手だけの定跡を追加
スコアの差からこれば数手読んでいると推測
とにかく上位にまず勝てていない
雑な体感だとスコア3点の差が1つのいいアルゴリズム分
1位から5位までローカルで自分を先手にして対戦してみると偶然全部11vs12で負けた
1点の差がとてつもなく大きいと感じた朝