static void playerRoll(Player currentPlayer) { bool rolledDouble = true; int doubleCount = 0; //turn while (rolledDouble) { //Rolls int die1 = roll(); int die2 = roll(); int total = die1 + die2; if (die1 != die2) { rolledDouble = false; } else { doubleCount++; //Go to jail on third double in a row if (doubleCount == 3) { currentPlayer.setCurrentSpace(10); currentPlayer.setJailStatus(true); break; } } //Move Player int spacesMoved = 0; while (spacesMoved < total) { spacesMoved++;//Move forward one space //Reset from 40 to 0 (player gets to 'GO') if (currentPlayer.getSpace() == 40) { currentPlayer.setCurrentSpace(0); currentPlayer.setMoney(currentPlayer.getMoney() + 200); } } //Player lands on space BoardSpace space = boardSpaces[currentPlayer.getSpace()]; //Space is a property if (space.getCost() > 0) { //If space is unowned if (space.getOwner() == null) { if (space.getCost() > currentPlayer.getMoney()) { //Player does not have enough money to buy the property //TODO - Player mortgages, sells houses to afford property (unlikely - but possible) continue; } else { //TODO - Method to Prompt Player to Buy y/n + add player to property owner + remove cash from player } } //If space is owned (not by current player) else if (space.getOwner() != currentPlayer) { int rent = getRent(space.getSpaceNumber(), total); //Pay owner if enough money is owned by current player if ((currentPlayer.getMoney() - rent) >= 0) { currentPlayer.setMoney(currentPlayer.getMoney() - rent); space.getOwner().setMoney(space.getOwner().getMoney() + rent); } else { //TODO - Player mortgages, sells houses, or forfeit all to owner } } } //Space is Chance, Community Chest, Tax Spot, or Corner else { //Chance if (space.getSpaceNumber() == 7 || space.getSpaceNumber() == 22 || space.getSpaceNumber() == 36) { //TODO - Modifier check on chance cards } //Community Chest else if (space.getSpaceNumber() == 2 || space.getSpaceNumber() == 17 || space.getSpaceNumber() == 33) { //TODO - modifier check on community chest cards } //Income Tax else if (space.getSpaceNumber() == 4) { //10% or 200 int percent = System.Convert.ToInt32(currentPlayer.getMoney() * 0.1); int tax = 200; if (percent < 200) { tax = percent; } currentPlayer.setMoney(currentPlayer.getMoney() - tax); } //Luxury Tax else if (space.getSpaceNumber() == 38) { currentPlayer.setMoney(currentPlayer.getMoney() - 75); } //Else if Go To Jail else if (space.getSpaceNumber() == 30) { currentPlayer.setCurrentSpace(10); currentPlayer.setJailStatus(true); break; } } } }
//Check ownership status of each property required for monopoly by index static bool hasMonopoly(int index) { BoardSpace current = boardSpaces[index]; //Brown Properties if (current.getSpaceNumber() == 1 || current.getSpaceNumber() == 3) { if (boardSpaces[1].getOwner() == boardSpaces[3].getOwner()) { return(true); } return(false); } //Light Blue Properties else if (current.getSpaceNumber() == 6 || current.getSpaceNumber() == 8 || current.getSpaceNumber() == 9) { if (boardSpaces[6].getOwner() == boardSpaces[8].getOwner() && boardSpaces[8].getOwner() == boardSpaces[9].getOwner()) { return(true); } return(false); } //Purple Properties else if (current.getSpaceNumber() == 11 || current.getSpaceNumber() == 13 || current.getSpaceNumber() == 14) { if (boardSpaces[11].getOwner() == boardSpaces[13].getOwner() && boardSpaces[13].getOwner() == boardSpaces[14].getOwner()) { return(true); } return(false); } //Utilities else if (current.getSpaceNumber() == 12 || current.getSpaceNumber() == 28) { if (boardSpaces[12].getOwner() == boardSpaces[28].getOwner()) { return(true); } return(false); } //Orange Properties else if (current.getSpaceNumber() == 16 || current.getSpaceNumber() == 18 || current.getSpaceNumber() == 19) { if (boardSpaces[16].getOwner() == boardSpaces[18].getOwner() && boardSpaces[18].getOwner() == boardSpaces[19].getOwner()) { return(true); } return(false); } //Red Properties else if (current.getSpaceNumber() == 21 || current.getSpaceNumber() == 23 || current.getSpaceNumber() == 24) { if (boardSpaces[21].getOwner() == boardSpaces[23].getOwner() && boardSpaces[23].getOwner() == boardSpaces[24].getOwner()) { return(true); } return(false); } //Yellow Properties else if (current.getSpaceNumber() == 26 || current.getSpaceNumber() == 27 || current.getSpaceNumber() == 29) { if (boardSpaces[26].getOwner() == boardSpaces[27].getOwner() && boardSpaces[27].getOwner() == boardSpaces[29].getOwner()) { return(true); } return(false); } //Green Properties else if (current.getSpaceNumber() == 31 || current.getSpaceNumber() == 32 || current.getSpaceNumber() == 34) { if (boardSpaces[31].getOwner() == boardSpaces[32].getOwner() && boardSpaces[32].getOwner() == boardSpaces[34].getOwner()) { return(true); } return(false); } //Dark Blue Properties else if (current.getSpaceNumber() == 37 || current.getSpaceNumber() == 39) { if (boardSpaces[37].getOwner() == boardSpaces[39].getOwner()) { return(true); } return(false); } return(false); }