Step 12 of 12 · Final
ゲームオーバーとリスタート
終局時に盤面中央にオーバーレイを描き、勝敗を表示します。
R キーで resetGame を呼んで、何度でもやり直し可能に。
これで遊べるオセロの完成です。
MyOthello.java
Java runtime を初回読み込み中…
CheerpJ の JRE (数十 MB) をダウンロードしています。
preparing
About this step
resetGame という「初期化 1 箇所」
盤面・手番・カーソル・ゲームオーバーフラグ。全ての状態を 1 つのメソッドで初期値に戻します。
setup() も resetGame() を呼ぶだけにすると「初期化ロジックが 2 箇所に散らばる」バグを防げます。
R は gameOver でも効く
onKey の冒頭で R を処理してから、if (gameOver) return; の通常ロジックに入ります。
これで終局してもすぐ再対局できる — UI の気持ちよさを決める細かい設計ポイント。
完成形で遊んでみる
1 ゲーム通して対局できます。AI は minimax + α-β 枝刈りで 4 手先まで読むので、 それなりに強い手を打ってきます。勝てなかったら POSITION_WEIGHTS をいじる、MAX_DEPTH を 3 に下げる、 逆に 5 に上げる(少し待つ)など、AI のパラメータを調整してみてください。これで Othello in Java 完走です。