名古屋工業大学の「プログラミング応用」で開発した Java 製の 6×6 オセロ AI です。 ブラウザ版では、人間が標準盤または BLOCK 付き変形盤を使って AI と対戦できます。
Web 版: https://name-advanced.github.io/OthelloAI/
- 6×6 ビットボードによる高速な盤面処理
- αβ法、PVS、手順並べ替え、置換表を組み合わせた探索
- 残り 18 マス以下での終盤完全読み
- BLOCK 配置に対応した評価関数と定石
- 黒・白・ランダムの手番選択
- Web Worker 内で動作する Java/WebAssembly AI
- 新しく置いた石と反転した石を見分けやすい盤面アニメーション
- キーボード操作とスクリーンリーダーに配慮した日本語 UI
一般的な 8×8 オセロではなく、授業の競技仕様に合わせた 6×6 盤です。
授業内の学生コンペでは、8チーム中4位の成績でした。コンペでは、各プレイヤーの1対局あたりの累積思考時間を60秒以内に収める制約があり、このAIはその条件を前提に設計・調整しました。
この60秒はコンペ時の制約です。ブラウザ版では思考時間に自動上限を設けていないため、局面によっては60秒を超えて長考する可能性があります。
ゲームルールと AI は Java で実装し、TeaVM で WebAssembly GC に変換します。AI の探索は専用の Web Worker 内で実行されるため、長い思考中も画面操作や経過時間表示は停止しません。
定石 CSV はビルド時に BLOCK 配置ごとの小さなバイナリへ分割され、選択した盤面に必要なデータだけが読み込まれます。対局情報は利用者の端末内だけで処理され、外部サーバーへ送信・保存されません。
対応下限は Chrome/Edge 119、Firefox 120、Safari 18.2 です。
必要なものは JDK 17 以上だけです。Gradle のインストールは不要です。
./gradlew clean buildSite生成された GitHub Pages 用サイトは build/site/ に配置されます。
通常のビルドでは JVM テストと本番用 Wasm の生成・検査を実行します。Chrome が利用できる環境では、TeaVM の JUnit テストを実際の Wasm GC 上でも実行できます。
./gradlew test -PwasmBrowserTests=trueGitHub Actions ではこのブラウザテストも毎回実行します。
ローカル確認は HTTP サーバー経由で行います。
./gradlew serveSiteWasm は file:// から直接開けません。
授業用リーグを含む Java 一式も Gradle からコンパイルできます。
./gradlew classes
java -cp "build/classes/java/main:ap26unit2" Competition26Windows ではクラスパス区切りの : を ; に置き換えてください。
ap26unit2/p26x05/— 自作 AI、盤面、評価関数、定石ap26unit2/ap26/— 授業用の共通インタフェースとリーグ基盤src/teavm/java/— Java とブラウザの橋渡しweb/— HTML、CSS、ES modules、Web Worker.github/workflows/— テストと GitHub Pages 配信
実装上の固定契約とエージェント向け作業規則は AGENTS.md、クリーンビルド、定石生成、ブラウザ受入、Pages公開を再現する手順は docs/REPRODUCIBILITY.md にまとめています。
自作部分は MIT License で公開します。授業配布物とビルド時に利用する第三者ソフトウェアの扱いは THIRD_PARTY_NOTICES.md を参照してください。
公開前に、授業配布基盤・課題内容・自作解答・定石データを公開再配布できることを、担当教員および大学の条件に照らして必ず確認してください。
本リポジトリは授業で制作した非公式の学生作品であり、大学による公式サービスではありません。