/** コンピュータの手を決定する。 */ public void compute() { // Min-Max法で石を打つ場所を決める // 戻ってくる値は bestX+bestY*MASU int temp = minMax(true, SEARCH_LEVEL); // 場所を求める int x = temp % MainPanel.MASU; int y = temp / MainPanel.MASU; // 打った場所、ひっくり返した石の位置を記録 Undo undo = new Undo(x, y); // その場所に実際に石を打つ panel.putDownStone(x, y, false); // 実際にひっくり返す panel.reverse(undo, false); // 終了したか調べる if (panel.endGame()) return; // 手番を変える panel.nextTurn(); // プレイヤーがパスの場合はもう一回 if (panel.countCanPutDownStone() == 0) { System.out.println("Player PASS!"); panel.nextTurn(); compute(); } }