예제 #1
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);
            }
        }