コード例 #1
0
ファイル: UnitTest.cs プロジェクト: scazier/Monopoly
        public static void CheckAllColors()
        {
            bool   result = true;
            Player pl     = new Player(36, "Test");

            pl.Position = Game.CreateBoard();

            pl.Move(1); // Boulevard de BelleVille
            pl.Buy();
            if (GameController.AllColors(pl))
            {
                 result = false;
            }
            pl.Move(2); // Rue LeCourbe
            pl.Buy();
            if (!GameController.AllColors(pl))
            {
                result = false;
            }

            displayResult("All same colors", result);
        }
コード例 #2
0
        protected override void OnLandStop(Player player, Square square)
        {
            var land  = (Land)square;
            var owner = _playerCursor.GetOwnerOf(land);

            if (owner.WouldLikeToSell(land) && player.WouldLikeToBuy(land))
            {
                player.Buy(land, player);
                return;
            }

            var transaction = land.GetRent;

            player.
            Patrimony.
            Debit(transaction);

            owner.
            Patrimony.
            Credit(transaction);
        }
コード例 #3
0
ファイル: UnitTest.cs プロジェクト: scazier/Monopoly
        public static void CheckBuy()
        {
            bool   result = true;
            Player pl     = new Player(0, "Test");

            pl.Position = Game.CreateBoard();
            while (pl.Position.Basic_price == -1)
            {
                pl.Position = pl.Position.next;
            }
            int    diff   = pl.Money - pl.Position.Basic_price;
            Banker banker = Banker.CreateBanker();

            pl.Buy();

            if (pl.Money != diff || banker.Money != pl.Position.Basic_price ||  pl.Position.Id_buyer != pl.ID ||  pl.Id_purchased[0] != pl.Position.ID)
            {
                result = false;
            }

            displayResult("Buy", result);
        }
コード例 #4
0
        protected override void OnCompanyStop(Player player, Square square)
        {
            var company = (Company)square;
            var owner   = _playerCursor.GetOwnerOf(company);

            if (owner.WouldLikeToSell(company) && player.WouldLikeToBuy(company))
            {
                player.Buy(company, player);
                return;
            }

            var dice        = _playerCursor.Dice.LastRoll().Sum();
            var transaction = company.GetBill(dice);

            player.
            Patrimony.
            Debit(transaction);

            owner.
            Patrimony.
            Credit(transaction);
        }
コード例 #5
0
ファイル: Game.cs プロジェクト: scazier/Monopoly
        public static void Action(Player pl, int numberDice)
        {
            Player actualPlayer   = pl; // Peut être deep copy à faire
            Street actualPosition = actualPlayer.Position;


            if (actualPosition.Basic_price != -1)
            {
                if (actualPosition.Name.Substring(0, 6).Equals("Impôts") || actualPosition.Name.Substring(0, 4).Equals("Taxe"))
                {
                    actualPlayer.Money -= actualPosition.Basic_price;
                }
                else
                {
                    // If the player can buy this box
                    if (!actualPlayer.FirstRound)
                    {
                        // The player cannot buy on the first round
                        if (actualPosition.Id_buyer == 0)
                        {
                            char action = 'a';
                            while (!action.Equals('y') && !action.Equals('Y') && !action.Equals('n') && !action.Equals('N'))
                            {
                                Console.Write("Do you want to buy this property? [y/n]");
                                String input = Console.ReadLine();
                                if (input.Length == 1)
                                {
                                    action = Convert.ToChar(input);
                                }
                                // If id_buyer = 0, nobody own this box
                            }

                            if (action.Equals('y') || action.Equals('Y'))
                            {
                                actualPlayer.Buy();
                            }
                        }
                        else
                        {
                            if (actualPosition.Id_buyer == actualPlayer.ID)
                            {
                                // If the actual player bought thi box before
                                if (!actualPosition.Name.Substring(0, 4).Equals("Gare") &&   !actualPosition.Name.Substring(0, 6).Equals("Impôts") && !actualPosition.Name.Substring(0, 4).Equals("Taxe") && !actualPosition.Name.Substring(0, 9).Equals("Compagnie"))
                                {
                                    char actionAdd = 'a';
                                    while (!actionAdd.Equals('y') && !actionAdd.Equals('Y') && !actionAdd.Equals('n') && !actionAdd.Equals('N'))
                                    {
                                        Console.Write("Do you want to add an element (house, hotel)? [y/n]");
                                        String input = Console.ReadLine();
                                        if (input.Length == 1)
                                        {
                                            actionAdd = Convert.ToChar(input);
                                        }
                                    }

                                    if (actionAdd.Equals('y') ||  actionAdd.Equals('Y'))
                                    {
                                        int answer = -1;
                                        while (answer != 0 && answer != 1 && answer != 2)
                                        {
                                            Console.WriteLine("n0 - Continue\n1 - Add House\n2 - Replace by Hotel");
                                            Console.WriteLine(">>> ");
                                        }
                                        answer = Convert.ToInt32(Console.ReadLine());
                                        switch (answer)
                                        {
                                        case 0:
                                            break;

                                        case 1:
                                            actualPlayer.AddHouse();
                                            Console.WriteLine("House added on " + actualPlayer.Position.Name);
                                            break;

                                        case 2:
                                            actualPlayer.AddHotel();
                                            Console.WriteLine("Hotel added on " + actualPlayer.Position.Name);
                                            break;
                                        }
                                    }
                                }
                            }
                            else
                            {
                                if (actualPosition.Nb_house != -1)
                                {
                                    actualPlayer = PayRent(actualPlayer, actualPlayer.Position.Id_buyer, "Street");
                                }
                                else
                                {
                                    if (actualPosition.Name.Substring(0, 4).Equals("Gare"))
                                    {
                                        actualPlayer = PayRent(actualPlayer, actualPlayer.Position.Id_buyer, "Train");
                                    }
                                    else if (actualPosition.Name.Substring(0, 9).Equals("Compagnie"))
                                    {
                                        actualPlayer = PayRent(actualPlayer, actualPlayer.Position.Id_buyer, "Company", numberDice);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                if (actualPosition.Name.Equals("Caisse de communauté"))
                {
                    actualPlayer.Card("community");
                }
                else if (actualPosition.Name.Equals("Chance"))
                {
                    actualPlayer.Card("chance");
                }
                else if (actualPosition.Name.Equals("Allez en Prison"))
                {
                    actualPlayer.GoToJail();
                    actualPlayer.InJail = true;
                }
                else if (actualPosition.Name.Equals("Parc Gratuit"))
                {
                    // Gratuit
                }
            }
        }