star-code.net

静的リバーシ AI

はじめに

静的 AI と対戦できるリバーシ盤面を作りました.こちらから遊べます.

ゲーム AI を作りたいと思ったことはありませんか?私はあります.

ですが,将棋やチェスでは駒の動きや種類が多すぎて,AI 以前にまともに動く盤作るだけで一苦労です.囲碁はぱっと見はシンプルですが,駆け引きをどう AI に落とし込めばいいのかわからない(そして私があまり囲碁に詳しくない).というところでサクッと遊ぼうと思ってリバーシに白羽の矢が立ったのでした.

AI を作るなら,誰かの AI と戦わせたいものです. しかし,AI の条件を揃えるのはかなり大変です.加えて,複雑な AI 作るのも大変です. そこで,完全にフェアな条件で戦える,とてもシンプルな静的 AIで対戦を行うことにしました.

静的 AI

基本的に,ゲーム AI は置かれた盤面に対して,次の手を考えます. 例えば,リバーシであれば中割りを狙ったり,ウイングに対して仕掛けたり,終盤であれば最後まで読み切った上で最善手を選ぶといったことが考えられます.

今回は,それらを一切排し,AI を極限までシンプルにしました.

仕様

各マスの優先度を事前に決めます.

ゲーム中はその優先度に従って,着手できるマスのうち,最も優先度が高いマスを選びます.

あそびかた

静的 AI として,プリセットをいくつか用意しています.また,CSV をアップロードして自前の静的 AI を試したり,そのパラメータを変えたりできるようにしています.

CSV は 8x8 の要素を持っていればうまく動くはずです.

ルールは普通のリバーシと同じです.感想戦機能もあります.

おわりに

そのうち仲間うち(綾瀬川技術室の皆さん)で静的 AI 対決をやります. その記事もそのうち書きます.よろしくね.

副産物としてとりあえずのテスト用に作ったローカルリバーシ盤面があったり, 副産物の改良版として全世界で共有されるリバーシ盤面があったりします(記事).