AI

Google AI Studioでリバーシ作ってみた(Gemini 3.0 Pro Preview)

こんにちは、LIYOです。
「AI Studioで“動くもの”どこまでいける?」を試したくて、定番のリバーシを作ってみました。
しかも今回は、対戦AI(コンピューター側)に生成AIを使わない縛りつき。いわゆる探索や評価関数で殴ります。

使ったモデル:Gemini 3.0 Pro Preview(AI Studio上は “Gemini 3 Pro Preview” 表記)
狙い:UI日本語/対戦モード切替/レベル変更/先手後手選択/CPU対戦は探索アルゴリズムで

やりたかったこと(要件)

今回は「ただ動くだけ」じゃなくて、遊べる設定項目も込みでお願いしました。
具体的にはこんな感じ👇

  • レベル(CPUの強さ)を変更できる
  • 人対人 / 人対CPU / CPU対CPU を選べる
  • 白黒(先行/後攻)を選べる
  • 表示は日本語
  • コンピュータ対戦に生成AIは利用しない(←ここ大事)

実際に投げたプロンプト

今回のプロンプトはこれ。
“縛り条件”を先に固めるのが、体感いちばん効きました。

リバーシのゲームを作成してほしいです。
レベル(コンピューターの強さ)を変更できるようにしたいです。
人対人、人対コンピュータ、コンピューター対コンピューターも選べるようにしたいです。
白黒(先行、後攻)を選択できるようにしたいです。
表示は日本語としてください。
コンピュータ対戦にAIは利用しないでください。

「生成AIを使わないCPU対戦」ってどういうこと?

ここ、地味に誤解されがちなんだけど…
今回言ってる “AIを使わない” は ChatGPT/Geminiみたいな生成AIを対戦相手にしない って意味。
代わりに、昔ながらの定番である👇みたいな方法でCPUを作ります。

  • ミニマックス法(先読みして最善手を探す)
  • αβ枝刈り(無駄な探索を省いて高速化)
  • 評価関数(角が強い、辺が強い、手数が多い…などで点数化)
  • レベル = 探索深さ(例:Lv1は1手先、Lv3は3手先…)

💡 LIYO的ワンポイント
“レベル”を「ランダム要素」だけで表現すると、弱い=運ゲーになりがち。
探索深さ + 評価関数にすると、弱いレベルでも“それっぽい弱さ”になって遊びやすいです。

作ってみて良かったところ

  • UI + ルール + 対戦ロジックを一気通貫で組み上げられる(「完成形」の速度が速い)
  • 要件を箇条書きで固めると、設定画面(モード/レベル/色)まで含めて提案されやすい
  • 「AI使わないで」を入れるだけで、探索アルゴリズム寄りに誘導できる

ハマりどころ(リバーシで事故りやすい点)

生成されたリバーシは“動く”けど、リバーシ特有の地雷がいくつかあります。
もし調整するなら、まずはここをチェック推奨👇

  1. 合法手判定:8方向の探索が1方向でも成立したら置ける
  2. ひっくり返し:成立した方向だけを正しく反転(成立してない方向まで反転しがち)
  3. パス処理:合法手ゼロのときにパス、両者パスで終局
  4. 終局判定:盤面が埋まった or 両者パス
  5. CPU対CPU:連続で手が進むので、ウェイト(sleep)や一手ずつ描画がないと爆速で見えない

次にやりたい改善(LIYOの欲が出た)

  • 合法手のハイライト(置ける場所を点で表示)
  • 取り消し(Undo)棋譜(あとで振り返れると楽しい)
  • 評価関数の調整(角・辺・確定石・可動性などの重み付け)
  • レベルごとのCPU個性(弱いほど角を取り逃がす、みたいな“らしさ”)
  • スマホ最適化(盤面タップが気持ちいいサイズ感)

まとめ

Google AI Studio(Gemini)でリバーシを作ってみたら、「思ったより遊べる形」まで持っていけました。
そして「CPUは生成AIじゃなく探索で」って縛ると、ちゃんと“ゲームっぽい実装”に寄せられるのが面白い。

次は、評価関数とUI磨いて「地味にずっと遊べるリバーシ」にしていきたいところ。
(リバーシは…磨けば磨くほど沼です。最高)

作成したリバーシのプレイ画面は以下のようなイメージです。

※この記事は「作ってみた」開発メモです。環境差・バージョン差で挙動が変わる場合があります。

-AI
-,