Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }