Step 05 of 12
石を裏返す
Enter キーで着手し、挟んだ相手の石を全部ひっくり返します。
山場は flip メソッド — 方向ごとに
「相手石の終端」を探してから裏返す 2 段階処理を自分で書きます。
MyOthello.java
Java runtime を初回読み込み中…
CheerpJ の JRE (数十 MB) をダウンロードしています。
preparing
About this step
flip を 2 フェーズで考える
「どこまで裏返すか」を一発で判定するのは難しいので、フェーズを分けます。
まず Phase 1 で相手石の終端まで進み、Phase 2 でそこが自分の石なら戻りながら
裏返す。どの方向でも挟めないなら何もしない — continue でスキップ。
isValidMove との違い
isValidMove は「挟めるかどうか」だけを返す boolean メソッド。
flip は実際に盤面を書き換える副作用つき。後者の方が一般に重いので、
flip を呼ぶ前に isValidMove で合法性をチェックするのが作法です。
動かしてみる
初期カーソル (col=3, row=3) から ↑ で (3,2) に移動 → Enter で黒を置くと、 間にあった (3,3) の白が黒にひっくり返ります。どの方向でも同じで、 矢印+Enter で連打できるようになれば成功です。