public override string landOn(ref Player player) { Random rand = new Random(); int randChance = rand.Next(1, 17); if (randChance > 8) { int chanceCard = rand.Next(1, 9); this.isBenefitNotPenalty = true; switch (chanceCard) { case 1: this.chanceText = "Advance to Go collect $200"; penaltyOrBenefitAmount = 200; player.setLocation(0); Console.WriteLine("Chance card text: {0}\n", chanceText); return base.landOn(ref player) + String.Format("{0} has received ${1}", player.getName(), this.penaltyOrBenefitAmount); case 2: this.chanceText = "Bank pays you dividend of $50"; penaltyOrBenefitAmount = 50; Console.WriteLine("Chance card text: {0}\n", chanceText); return base.landOn(ref player) + String.Format("{0} has received ${1}", player.getName(), this.penaltyOrBenefitAmount); case 3: this.chanceText = "Go forward 3 spaces"; player.setLocation(player.getLocation() + 3); Console.WriteLine("Chance card text: {0}\n", chanceText); return base.landOn(ref player); case 4: this.chanceText = "Advance to Powershop"; Console.WriteLine("Chance card text: {0}\n", chanceText); if (player.getLocation() > 12) { player.setLocation(12); return base.landOn(ref player) + String.Format("{0} passed Go on their way to Powershop. {1}", player.getName(), player.getName(), this.penaltyOrBenefitAmount); } else { player.setLocation(13); this.penaltyOrBenefitAmount = 0; return base.landOn(ref player); } case 5: this.chanceText = "Go directly to Jail"; player.setLocation(30); Console.WriteLine("Chance card text: {0}\n", chanceText); return base.landOn(ref player); case 6: this.chanceText = "Your building and loan matures collect $150"; penaltyOrBenefitAmount = 150; Console.WriteLine("Chance card text: {0}\n", chanceText); return base.landOn(ref player) + String.Format("{0} has received ${1}", player.getName(), this.penaltyOrBenefitAmount); case 7: this.chanceText = "Take a trip to Queenstown Ski Fields"; player.setLocation(14); Console.WriteLine("Chance card text: {0}\n", chanceText); if (player.getLocation() > 14) { player.setLocation(14); penaltyOrBenefitAmount = 200; return base.landOn(ref player) + String.Format("{0} passed Go on their way to Mt Maunganui. {1}", player.getName(), player.getName(), this.penaltyOrBenefitAmount); } else { player.setLocation(14); this.penaltyOrBenefitAmount = 0; return base.landOn(ref player); } case 8: this.chanceText = "You forgot your wallet when you started collect $200"; penaltyOrBenefitAmount = 200; player.setLocation(0); Console.WriteLine("Chance card text: {0}\n", chanceText); return base.landOn(ref player) + String.Format("{0} has received ${1}", player.getName(), this.penaltyOrBenefitAmount); } } else { int chanceCard = rand.Next(1, 9); this.isBenefitNotPenalty = false; switch (chanceCard) { case 1: this.chanceText = "You have been elected chairman of the board pay tax of $50"; penaltyOrBenefitAmount = 50; Console.WriteLine("Chance card text: {0}\n", chanceText); return base.landOn(ref player) + String.Format("{0} has paid ${1}", player.getName(), this.penaltyOrBenefitAmount); case 2: this.chanceText = "Go back 5 spaces"; player.setLocation(player.getLocation() + 5); Console.WriteLine("Chance card text: {0}\n", chanceText); return base.landOn(ref player); case 3: this.chanceText = "Get out of Jail card has been stored"; player.setGetOutOfJailCard(true); Console.WriteLine("Chance card text: {0}\n", chanceText); return base.landOn(ref player); case 4: this.chanceText = "Bank has overpaid you pay $250"; penaltyOrBenefitAmount = 250; Console.WriteLine("Chance card text: {0}\n", chanceText); return base.landOn(ref player) + String.Format("{0} has paid ${1}", player.getName(), this.penaltyOrBenefitAmount); case 5: this.chanceText = "Visit paradise in Rangitoto"; Console.WriteLine("Chance card text: {0}\n", chanceText); player.setLocation(39); return base.landOn(ref player); case 6: this.chanceText = "Pay poor tax of $15"; penaltyOrBenefitAmount = 15; Console.WriteLine("Chance card text: {0}\n", chanceText); return base.landOn(ref player) + String.Format("{0} has paid ${1}", player.getName(), this.penaltyOrBenefitAmount); case 7: this.chanceText = "You've got a parking ticket pay $100"; penaltyOrBenefitAmount = 100; Console.WriteLine("Chance card text: {0}\n", chanceText); return base.landOn(ref player) + String.Format("{0} has paid ${1}", player.getName(), this.penaltyOrBenefitAmount); case 8: this.chanceText = "Advance to Naiper Train Station"; Console.WriteLine("Chance card text: {0}\n", chanceText); if (player.getLocation() > 35) { player.setLocation(35); penaltyOrBenefitAmount = 200; return base.landOn(ref player) + String.Format("{0} passed Go on their way to Naiper Train Station. {1}", player.getName(), player.getName(), this.penaltyOrBenefitAmount); } else { player.setLocation(35); this.penaltyOrBenefitAmount = 0; return base.landOn(ref player); } } } return base.landOn(ref player); }
public void displayJailMenu(Player player) { Monopoly game = new Monopoly(); Property property = new Property(); TradeableProperty trade = new TradeableProperty(); PlayerInput input = new PlayerInput(); // If the player has been in Jail for 3 turns, on the 4th turn in jail they will be forced to pay themselves out if (player.getTurnsInJail() < 3) { int resp = 0; Console.WriteLine("1. Roll doubles to get out of jail"); Console.WriteLine("2. Pay $50 to get out of jail"); Console.WriteLine("3. Use \"Get out of jail free\" card"); Console.WriteLine("4. Trade Property with Player"); Console.WriteLine("5. Upgrade properties"); Console.WriteLine("6. View your details"); Console.WriteLine("7. Declare Bankrupt"); Console.Write("(1-7)>"); //read response resp = input.inputInteger(); //if response is invalid redisplay menu if (resp == 0) this.displayJailMenu(player); //perform choice according to number input switch (resp) { case 1: player.playerJailRoll(); break; case 2: if (player.getBalance() >= 50) { player.pay(50); Console.WriteLine("{0} payed $50 to get out of jail.\n", player.getName()); player.setSentToJail(false); player.setInJail(false); player.setTurnsInJail(0); break; } else { Console.WriteLine("You do not have enough money, please make another selection.\n"); this.displayJailMenu(player); break; } case 3: if (player.getGetOutOfJailCard()) { Console.WriteLine("{0} used their get out of Jail card.\n", player.getName()); ; player.setGetOutOfJailCard(false); player.setInJail(false); player.setTurnsInJail(0); break; } else { Console.WriteLine("{0} doesn't have a get out of Jail card, please make another selection.\n", player.getName()); this.displayJailMenu(player); break; } case 4: game.tradeProperty(player); displayJailMenu(player); break; case 5: Console.WriteLine("That option is not implemented yet, please try again.\n"); break; case 6: Console.WriteLine("=================================="); Console.WriteLine(player.FullDetailsToString()); Console.WriteLine("=================================="); this.displayJailMenu(player); break; case 7: Console.WriteLine("That option is not implemented yet, please try again.\n"); break; default: Console.WriteLine("That option is not avaliable, please try again."); this.displayJailMenu(player); break; } player.setTurnsInJail(player.getTurnsInJail() + 1); } // Runs on player's 4th turn in jail else if (player.getTurnsInJail() == 3) { Console.WriteLine("{0} has been in jail for 3 turns and must pay the $50", player.getName()); player.setInJail(false); player.setSentToJail(false); player.pay(50); player.setTurnsInJail(0); } }
public override string landOn(ref Player player) { Random rand = new Random(); int randChance = rand.Next(1, 17); if (randChance > 8) { int communityCard = rand.Next(1, 9); this.isBenefitNotPenalty = true; switch (communityCard) { case 1: this.communityText = "Go directly to Jail"; Console.WriteLine("Community card text: {0}\n", communityText); player.setLocation(30); return base.landOn(ref player) + String.Format("{0} has been sent to Jail", player.getName()); case 2: this.communityText = "You found $50 on the street"; penaltyOrBenefitAmount = 50; Console.WriteLine("Community card text: {0}\n", communityText); return base.landOn(ref player) + String.Format("{0} has received ${1}", player.getName(), this.penaltyOrBenefitAmount); case 3: this.communityText = "Move 2 paces forward"; Console.WriteLine("Community card text: {0}\n", communityText); player.setLocation(player.getLocation() + 2); return base.landOn(ref player); case 4: this.communityText = "Advance to Go collect $200"; Console.WriteLine("Community card text: {0}\n", communityText); player.setLocation(0); return base.landOn(ref player); case 5: this.communityText = "Recieve for services collect $150"; penaltyOrBenefitAmount = 150; Console.WriteLine("Community card text: {0}\n", communityText); return base.landOn(ref player) + String.Format("{0} has received ${1}", player.getName(), this.penaltyOrBenefitAmount); case 6: this.communityText = "Income tax refund of $25"; penaltyOrBenefitAmount = 25; Console.WriteLine("Community card text: {0}\n", communityText); return base.landOn(ref player) + String.Format("{0} has received ${1}", player.getName(), this.penaltyOrBenefitAmount); case 7: this.communityText = "Life Insurance Matures collect $200"; penaltyOrBenefitAmount = 200; Console.WriteLine("Community card text: {0}\n", communityText); return base.landOn(ref player) + String.Format("{0} has received ${1}", player.getName(), this.penaltyOrBenefitAmount); case 8: this.communityText = "From sale of stock collect $50"; penaltyOrBenefitAmount = 50; Console.WriteLine("Community card text: {0}\n", communityText); return base.landOn(ref player) + String.Format("{0} has received ${1}", player.getName(), this.penaltyOrBenefitAmount); } } else { int communityCard = rand.Next(1, 9); this.isBenefitNotPenalty = false; switch (communityCard) { case 1: this.communityText = "Get out of Jail card has been stored"; Console.WriteLine("Community card text: {0}\n", communityText); player.setGetOutOfJailCard(true); return base.landOn(ref player); case 2: this.communityText = "Pay doctors fee of $50"; penaltyOrBenefitAmount = 50; Console.WriteLine("Community card text: {0}\n", communityText); return base.landOn(ref player) + String.Format("{0} has paid ${1}", player.getName(), this.penaltyOrBenefitAmount); case 3: this.communityText = "You are assessed for street repairs pay $500"; penaltyOrBenefitAmount = 500; Console.WriteLine("Community card text: {0}\n", communityText); return base.landOn(ref player) + String.Format("{0} has paid ${1}", player.getName(), this.penaltyOrBenefitAmount); case 4: this.communityText = "Move 1 pace back"; Console.WriteLine("Community card text: {0}\n", communityText); player.setLocation(player.getLocation() - 1); return base.landOn(ref player) + String.Format("{0} has been moved back 1 paces", player.getName()); case 5: this.communityText = "The tax man caught you and dragged you back"; player.setLocation(4); Console.WriteLine("Community card text: {0}\n", communityText); return base.landOn(ref player); case 6: this.communityText = "You've been caught stealing! pay $200"; penaltyOrBenefitAmount = 200; Console.WriteLine("Community card text: {0}\n", communityText); return base.landOn(ref player) + String.Format("{0} has paid ${1}", player.getName(), this.penaltyOrBenefitAmount); case 7: this.communityText = "You lost the bet pay $200"; penaltyOrBenefitAmount = 200; Console.WriteLine("Community card text: {0}\n", communityText); return base.landOn(ref player) + String.Format("{0} has paid ${1}", player.getName(), this.penaltyOrBenefitAmount); case 8: this.communityText = "You earn/lose, move no where, count yourself lucky"; Console.WriteLine("Community card text: {0}\n", communityText); return base.landOn(ref player); } } return base.landOn(ref player); }