Ejemplo n.º 1
0
 private Action actPostFlopNotButton() { // acts first
   if (eL(3)) {
     return checkFold();
   } else if (eL(5)) {
     if (dory.hasOpponentRaisedThisStreet()) {
       if (dory.lastOpponentRaiseSize() > pV(1)) return fold();
       else return call();
     } else {
       return putPotPercentage(equity, eVals[3], eVals[5], pVals[1], pVals[2]);
     }
   } else if (eL(7)) {
     if (dory.hasOpponentRaisedThisStreet()) {
       return call();
     } else {
       return putPotPercentage(equity, eVals[5], eVals[7], pVals[2], pVals[4]);
     }
   } else {
     return putAllinMinusOne();
   }
 }
Ejemplo n.º 2
0
 private Action actPreFlopButton() { // small blind acts first
   if (eL(0)) {
     if (dory.hasOpponentRaisedThisStreet()) { // opponent raised
       if (dory.lastOpponentRaiseSize() > sVals[0]) return fold();
       else // he raised an amount less than sVals[0]
       return call();
     } else {
       return call();
     }
   } else if (eL(2)) {
     if (dory.hasOpponentRaisedThisStreet()) {
       if (dory.lastOpponentRaiseSize() > sVals[1]) return fold();
       else // he raised an amount less than sVals[1]
       return call();
     } else return putLin(equity, eVals[0], eVals[2], sVals[1], sVals[2]);
   } else if (eL(4)) {
     if (dory.hasOpponentRaisedThisStreet()) {
       if (dory.hasOpponentRaisedTwiceThisStreet()) return call();
       else return putMin();
     } else return putLin(equity, eVals[2], eVals[4], sVals[2], sVals[3]);
   } else if (eL(6)) {
     return putLin(equity, eVals[4], eVals[6], sVals[3], sVals[4]);
   } else {
     return putAllinMinusOne();
   }
 }
Ejemplo n.º 3
0
  public Action act() {

    reset();

    for (LegalAction legalAction : legalActions) {
      if (legalAction.getType().equalsIgnoreCase("RAISE")) {
        raiseAction = legalAction;
        canRaise = true;
      } else if (legalAction.getType().equalsIgnoreCase("BET")) {
        betAction = legalAction;
        canBet = true;
      } else if (legalAction.getType().equalsIgnoreCase("CHECK")) {
        canCheck = true;
      } else if (legalAction.getType().equalsIgnoreCase("CALL")) {
        canCall = true;
      } else if (legalAction.getType().equalsIgnoreCase("DISCARD")) {
        canDiscard = true;
        if (chosenDiscardCard == null) chooseDiscardCard();
        return discardCard();
      }
    }

    for (PerformedAction performedAction : lastActions) {
      if (performedAction.getType().equalsIgnoreCase("DEAL")) {
        ec.setBoard(board);
        if (performedAction.getStreet().equalsIgnoreCase("FLOP")) {
          chooseDiscardCard(); // this will also update equity
        } else {
          equity = ec.calculateTotalEquity();
        }
      } else if (performedAction.getType().equalsIgnoreCase("POST")
          && performedAction.getActor().equalsIgnoreCase(maj.myName)) {
        equity = ec.calculateTotalEquity();
      }
    }

    maj.update(lastActions);
    dory.update();

    if (board[2] == null) return actPreFlop();
    else if (board[3] == null) {
      return actPostFlop();
    } else if (board[4] == null) return actPostTurn();
    else return actPostRiver();
  }
Ejemplo n.º 4
0
 private Action actPostFlopButton() { // acts second
   if (eL(1)) {
     return checkFold();
   } else if (eL(2)) {
     if (dory.hasOpponentCheckedThisStreet()) {
       if (dory.hasOpponentRaisedThisStreet()) // he checked, I raised, he raised
       return fold();
       else return putPotPercentage(equity, eVals[1], eVals[2], pVals[1], pVals[2]);
     } else if (dory.opponentBetSizeThisStreet() <= pV(0)) return call();
     else return fold();
   } else if (eL(4)) {
     if (dory.hasOpponentCheckedThisStreet()) {
       return putPotPercentage(equity, eVals[2], eVals[4], pVals[1], pVals[2]);
     } else if (dory.opponentBetSizeThisStreet() <= pV(1)) {
       if (dory.hasOpponentRaisedThisStreet()) // he checked, I raised, he raised
       return fold();
       else return putPotPercentage(equity, eVals[2], eVals[4], pVals[1], pVals[2]);
     } else if (dory.opponentBetSizeThisStreet() <= pV(2)) return call();
     else return fold();
   } else if (eL(6)) {
     if (dory.hasOpponentCheckedThisStreet()) {
       if (dory.hasOpponentRaisedThisStreet()) // he checked then I raised then he raised
       return putMin();
       else return putPotPercentage(equity, eVals[4], eVals[6], pVals[4], pVals[6]);
     } else if (dory.hasOpponentBetThisStreet()) {
       if (dory.hasOpponentRaisedThisStreet()) // he bet, I raised, he raised
       return putMin();
       else return putPotPercentage(equity, eVals[4], eVals[6], pVals[5], pVals[7]);
     } else // should never be executed
     return putAllinMinusOne();
   } else return putAllinMinusOne();
 }