AlphaGoのロジックを整理する
概要 オセロのAIを考えていく上で、AlphaGoは必ず押させておきたい内容だったので、文献等を調査して内容をメモのレベルではありますが整理しました。本記事では、AlphaGo Zeroまでは含んでお… Read more »
概要 オセロのAIを考えていく上で、AlphaGoは必ず押させておきたい内容だったので、文献等を調査して内容をメモのレベルではありますが整理しました。本記事では、AlphaGo Zeroまでは含んでお… Read more »
概要 オセロのAIを作っていく上で参考とするため、自作のオセロスクリプトを活用し、先手番・後手番共に打てる手からランダムに選択(以後ランダムと呼称)する条件で10000回対局させた結果を整理しました。… Read more »
概要 オセロをプレイするAIを開発するために、まずはオセロを動かせるPythonスクリプトを構築しました。ざっくりと以下のような仕様です。 対戦形式は人間VS人間、人間VSCPU、CPUVSCPUが可… Read more »
仕上がり図 前回の記事の元に、石を置ける位置を判定する機能を実装しました。 機能は、以局面(8×8配列)と手番(先手:後手)を引き数に渡すことにより、石を置ける位置を探索するというものです。ここでは例… Read more »
必要性 オセロを打つとき、局面と手番によって石の置ける位置・置けない位置がありますが、これが分からないとCPUは思考ができませんし、対人対戦でも自由な場所に打ててしまいゲームになりません。従って打ち手… Read more »
盤面表示機能 盤面表示機能では、8×8の2次元配列に格納された石配置の情報(0:石なし、1:黒石、2:白石)を画面に表示するものです。それほど本質的な機能ではないかもしれませんが、そもそもオセロプログ… Read more »
機能構成 処理フローチャート 1回のオセロを動かすための処理フローは以下のようなものにする。この部分だけなら、将棋やチェスといった他のボードゲームでも同様の構成になると思われる。 処理内容 暫定案… Read more »
はじめに 開発動機 私が「AI開発してぇ。。。」と思い出したのは、小学校くらいのころだったでしょうか。当時光栄の三国志シリーズにハマっていた私は、いつからかコンピュータと対戦するのに飽き、コンピュータ… Read more »