Exemplo n.º 1
0
 /**
  * Checks if the last marble landed on the current player's playerCup
  *
  * @param buttonID
  */
 protected boolean giveAnotherTurn(int buttonID) {
   if (player1.getTurn() && buttonID == 7 && areThereValidMoves(player1)) {
     return true;
   }
   if (player2.getTurn() && buttonID == 15 && areThereValidMoves(player2)) {
     return true;
   }
   return false;
 }
Exemplo n.º 2
0
 /** This forces the switch of turns.It is called when one player doesn't have valid moves */
 protected void switchTurn() {
   if (player1.getTurn() && areThereValidMoves(player2)) {
     player2.setTurn(true);
     player1.setTurn(false);
   } else if (player2.getTurn() && areThereValidMoves(player1)) {
     player1.setTurn(true);
     player2.setTurn(false);
   }
 }
Exemplo n.º 3
0
 protected void stealOppositeCup(int cupNumber) {
   PocketCup nextPocketCup = (PocketCup) board.getCups()[cupNumber];
   PocketCup oppositeCup;
   if (player1.getTurn() && cupNumber < 7) {
     oppositeCup = (PocketCup) board.getCups()[cupNumber + ((7 - cupNumber) * 2)];
     int oppositeCupNumbers = oppositeCup.emptyCup();
     // take last marble from the cup alongside the opposite cup's one.
     nextPocketCup.addMarbles(-1);
     board.getPlayerCup1().addMarbles(oppositeCupNumbers + 1);
   } else if (player2.getTurn() && cupNumber > 7 && cupNumber < 15) {
     oppositeCup = (PocketCup) board.getCups()[(14 - cupNumber)];
     int oppositeCupNumbers = oppositeCup.emptyCup();
     // take last marble from the cup alongside the opposite cup's one.
     nextPocketCup.addMarbles(-1);
     board.getPlayerCup2().addMarbles(oppositeCupNumbers + 1);
   }
 }
Exemplo n.º 4
0
 /**
  * @param idCurrentCup
  * @param marblesFromEmptiedCup
  */
 protected void putMarblesInNextCups(int idCurrentCup, int marblesFromEmptiedCup) {
   int cupNumber = idCurrentCup + 1;
   for (int i = 0; i < marblesFromEmptiedCup; i++) {
     if (cupNumber == 7 && player2.getTurn()) {
       cupNumber++;
     } else if (cupNumber == 15 && player1.getTurn()) {
       cupNumber = 0;
     }
     Cup nextPocketCup = board.getCups()[cupNumber];
     // check at the last iteration if cup is empty
     if ((i == marblesFromEmptiedCup - 1)
         && nextPocketCup.isEmpty()
         && cupNumber != 7
         && cupNumber != 15) {
       stealOppositeCup(cupNumber);
     }
     nextPocketCup.addMarbles(1);
     cupNumber++;
     // stay in the range of 16 cups.
     if (cupNumber > 15) {
       cupNumber = 0;
     }
   }
 }