Course · 12 steps · 経験者向け
Build an Othello
with an AI opponent.
Java だけで書く全12ステップ。盤面を描くところから始めて、 最後は minimax + α-β 枝刈りの AI と対戦できるオセロが完成します。
全 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 に踏み込む。
-
Step 01
盤面を描く
8×8 の緑の盤面と格子線。
Screen · 2重ループ · 定数
-
Step 02
初期配置
中央 4 マスに黒白 2 石ずつ。
2次元配列 · 初期化
-
Step 03
石を円で描く
fillCircle で石を描画。
新 API · 盤面スキャン
-
Step 04
カーソル操作
矢印キーでカーソル移動。
Key enum · 境界チェック
-
Step 05
合法手の判定
置ける場所にはヒントを表示。
8 方向スキャン · boolean メソッド
-
Step 06
石を裏返す
Enter で着手 → 挟んだ石が反転。
flip メソッド設計 · 配列書き換え
-
Step 07
手番交代とパス
合法手なしならパス、両者なしで終局。
状態遷移 · ゲームフロー
-
Step 08
ランダム AI
相手番を AI が打つ。
List<int[]> · Random
-
Step 09
評価関数
盤面を点数化して貪欲 AI に。
重みテーブル · 静的配列
-
Step 10
minimax
数手先を読む AI。
再帰 · ゲーム木
-
Step 11
α-β 枝刈り
深く読んでも遅くならない。
最適化 · 早期 return
-
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回目以降はキャッシュから瞬時に立ち上がります。