コード例 #1
0
 /**
  * Check if this pin is an opponent-pin and has connection. The two connection up are not checked.
  *
  * @param oppX x of pin to check
  * @param oppY y of pin to check
  * @return true if pin is not blocking
  */
 private boolean checkTopPin(final int oppX, final int oppY) {
   return !(board.getPin(oppX, oppY) == Board.XPLAYER
       && (board.isBridged(oppX, oppY, 0)
           || board.isBridged(oppX, oppY, 3)
           || board.isBridged(oppX + 2, oppY + 1, 0)
           || board.isBridged(oppX + 1, oppY + 2, 1)
           || board.isBridged(oppX - 1, oppY + 2, 2)
           || board.isBridged(oppX - 2, oppY + 1, 3)));
 }
コード例 #2
0
  /**
   * Check for race 2 (upper-right to left, gentle).
   *
   * @return true if no blocking race exists
   */
  private boolean checkFor2() {
    boolean ret = true;
    int vx = (board.getXsize() - 2 - pinX);
    int vy = (pinY - 1) * 2;

    //      System.out.println("2 fuer " + GuiBoard.getHoleName(pinX, pinY, false) + ":"
    //            + ((vx >= vy) ? " save" : " not save"));

    if (board.getPin(pinX - 1, pinY) == Board.XPLAYER
        && vx < vy
        && (board.isConnected(pinX - 1, pinY, pinX + 1, pinY - 1)
            || (board.isConnected(pinX - 1, pinY, pinX - 3, pinY + 1)
                && nextPlayer == Board.XPLAYER))) {
      ret = false;
    }

    //      System.out.println("Check: " + (ret ? "okay" : "not okay") +
    //            " NextPlayer: " + (nextPlayer == Board.XPLAYER ? "X" : "Y"));
    return ret;
  }
コード例 #3
0
  /**
   * Check for race 4 (down-right to left, steep).
   *
   * @return true if no blocking race exists
   */
  private boolean checkFor4() {
    boolean ret = true;
    int vx = (board.getXsize() - 2 - pinX) * 2;
    int vy = (board.getYsize() - 2 - pinY);

    //      System.out.println("4 fuer " + GuiBoard.getHoleName(pinX, pinY, false) + ":"
    //            + ((vx >= vy) ? " save " : " not save ") + vx + "," + vy + "-" + (board.getYsize()
    // - 2 - pinY));

    if (board.getPin(pinX - 1, pinY - 1) == Board.XPLAYER
        && vx < vy
        && (board.isConnected(pinX - 1, pinY - 1, pinX, pinY + 1)
            || (board.isConnected(pinX - 1, pinY - 1, pinX - 2, pinY - 3)
                && board.bridgeAllowed(pinX, pinY + 1, 1)
                && nextPlayer == Board.XPLAYER))) {
      ret = false;
    }

    //      System.out.println("Check: " + (ret ? "okay" : "not okay") +
    //            " NextPlayer: " + (nextPlayer == Board.XPLAYER ? "X" : "Y"));
    return ret;
  }
コード例 #4
0
 /**
  * Check if this pin is an opponent-pin and has connection. Only two connection are checked.
  *
  * @param oppX x of pin to check
  * @param oppY y of pin to check
  * @return true if pin is not blocking
  */
 private boolean checkTopPinTwo(final int oppX, final int oppY) {
   return oppY <= 0
       || !(board.getPin(oppX, oppY) == Board.XPLAYER
           && (board.isBridged(oppX - 2, oppY + 1, 3) || board.isBridged(oppX + 2, oppY + 1, 0)));
 }
コード例 #5
0
 /**
  * Check if this pin is an opponent-pin and has connection. Only two connection are checked.
  *
  * @param oppX x of pin to check
  * @param oppY y of pin to check
  * @return true if pin is not blocking
  */
 private boolean checkButtomPinTwo(final int oppX, final int oppY) {
   return oppY >= board.getYsize()
       || !(board.getPin(oppX, oppY) == Board.XPLAYER
           && (board.isBridged(oppX, oppY, 0) || board.isBridged(oppX, oppY, 3)));
 }