Пример #1
0
        private void Initialise(Board board, Bank bank, IDice dice, ICardManager cardManager, List <Player> players)
        {
            Bank              = bank;
            Board             = board;
            AssetManager      = board.AssetManager;
            Dice              = dice;
            Players           = players;
            CardManager       = cardManager;
            Winner            = null;
            PlayerTurnsPlayed = 0;

            FreeParking = new FreeParking(Bank);

            // Set players on Go

            foreach (var player in players)
            {
                player.Location = Board.Go;
            }

            // Bank owns everything to start

            board.AssetManager.AllAssets.ForEach(x => bank.PurchaseAsset(x));

            NextPlayer = players[0];
        }
Пример #2
0
        public void TestInitialize()
        {
            _bank         = new Bank();
            _assetManager = new AssetManager();
            _player       = new Player();
            _player2      = new Player();
            _freeParking  = new FreeParking(_bank);

            _assetManager.AllAssets.ForEach(x => _bank.PurchaseAsset(x));
        }
Пример #3
0
        private void LandedOnSpecialSquare(Player player)
        {
            var specialSquare = (SpecialSquare)player.Location;

            switch (specialSquare.SpecialSquareType)
            {
            case SpecialSquare.SquareType.Go:
                break;

            case SpecialSquare.SquareType.Jail:
                break;

            case SpecialSquare.SquareType.FreeParking:
                FreeParking.Pay(FreeParking.Money, player, Bank);
                break;

            case SpecialSquare.SquareType.CommunityChest:
                ProcessCard(player, CardManager.GetNextCommunityChest());
                break;

            case SpecialSquare.SquareType.Chance:
                ProcessCard(player, CardManager.GetNextChance());
                break;

            case SpecialSquare.SquareType.GoToJail:
                SendToJail(player);
                break;

            case SpecialSquare.SquareType.IncomeTax:
                player.Pay(200, FreeParking, Bank);
                break;

            case SpecialSquare.SquareType.SuperTax:
                player.Pay(100, FreeParking, Bank);
                break;

            default:
                break;
            }
        }