Пример #1
0
  /** コンピュータの手を決定する。 */
  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();
    }
  }