Course · 12 steps · 経験者向け

Build an Othello
with an AI opponent.

Java だけで書く全12ステップ。盤面を描くところから始めて、 最後は minimax + α-β 枝刈りの AI と対戦できるオセロが完成します。

Language
Java 17
Runtime
Browser (CheerpJ)
Level
Tetris コースの次 / 経験者
Estimated
15–20 hours

全 12 ステップ公開中。minimax + α-β で手応えのある AI と対局できます。

Who this is for

Tetris が物足りなかった人へ。

Tetris コースが「式を1つ埋める」粒度だったのに対し、 Othello は「メソッドを1つ書く」粒度に上げています。穴埋めの量は同じでも、 書くコード1行あたりに必要な思考量が一段重くなります。

後半は AI の探索・評価関数の設計に踏み込むので、 既に他言語で再帰やアルゴリズムを触った経験があるとスムーズです。 逆に、Java 研修を終えたばかりで手応えが足りない人にちょうど刺さる難度です。

How it works

Tetris と同じ教材構成。

フレームワーク(Game / Screen / Color / Key)は Tetris コースとほぼ同じ。丸を描く fillCircle が追加された以外は共通です。 各ステップに「穴埋めスターター / 段階ヒント / 解答例 / 自動チェック」が揃っていて、 詰まっても自力で進めます。

最後の AI パートでは、自分が書いた AI に実際に勝てるかどうかが 画面の上で直接わかります。評価関数の重みを 1 行いじれば強さが変わる、 という「手応えのあるフィードバックループ」を繰り返しながら学びます。

Curriculum

12 ステップ。
後半は AI に踏み込む。

  1. Step 01

    盤面を描く

    8×8 の緑の盤面と格子線。

    Screen · 2重ループ · 定数

  2. Step 02

    初期配置

    中央 4 マスに黒白 2 石ずつ。

    2次元配列 · 初期化

  3. Step 03

    石を円で描く

    fillCircle で石を描画。

    新 API · 盤面スキャン

  4. Step 04

    カーソル操作

    矢印キーでカーソル移動。

    Key enum · 境界チェック

  5. Step 05

    合法手の判定

    置ける場所にはヒントを表示。

    8 方向スキャン · boolean メソッド

  6. Step 06

    石を裏返す

    Enter で着手 → 挟んだ石が反転。

    flip メソッド設計 · 配列書き換え

  7. Step 07

    手番交代とパス

    合法手なしならパス、両者なしで終局。

    状態遷移 · ゲームフロー

  8. Step 08

    ランダム AI

    相手番を AI が打つ。

    List<int[]> · Random

  9. Step 09

    評価関数

    盤面を点数化して貪欲 AI に。

    重みテーブル · 静的配列

  10. Step 10

    minimax

    数手先を読む AI。

    再帰 · ゲーム木

  11. Step 11

    α-β 枝刈り

    深く読んでも遅くならない。

    最適化 · 早期 return

  12. Step 12

    スコアと勝敗

    石数、勝敗表示、R でリスタート。

    UI 仕上げ · 状態リセット

The API

追加されたもの。

Tetris と同じ Game, Screen, Color, Key を使います。 Othello 固有の追加はたった1つ — 丸を描く fillCircle だけ。 残りの力は全部 Java 本体(再帰・コレクション・List)で引き出します。

Get started

始めましょうか。

環境構築は不要 — リンクを開いて「Run Java」を押すだけ。 初回は Java ランタイム(CheerpJ)のダウンロードで 10〜30 秒ほどかかります。 2回目以降はキャッシュから瞬時に立ち上がります。