Step 06 of 12

手番交代とパス

着手後に手番を交代、相手に合法手が無ければ自動パスして自分の番に戻る、 両者連続パスで gameOver。 ゲーム状態遷移のロジックを endTurn 1 つにまとめる練習。

MyOthello.java
Java runtime を初回読み込み中…
CheerpJ の JRE (数十 MB) をダウンロードしています。
preparing

About this step

状態遷移をまとめる

着手ごとに「手番交代 → 合法手チェック → 必要ならパス → 連続パスで終局」という 決まった処理が走ります。これを onKey の中にベタ書きすると汚くなるので、 endTurn() にまとめます。呼び出し側は placeAt(...); endTurn(); だけ。

パスは「戻す」だけ

オセロのパスは 「手番が合法手を持っていない時に自動で元に戻る」だけ。 特別な UI は不要。endTurn の中で 2 回反転すれば、 結果として「元のプレイヤーの手番に戻る」になります。

動かしてみる

着手するたびにヒントの場所が変わる(= 手番が変わっている)のを確認してください。 盤面がほぼ埋まると、片方の色に合法手が無くなって自動パスが発生します。