public void Setup()
        {
            player = new Player("Player");
            var players = new[] { player };

            dice = new ControlledDice();
            var realEstateHandler = FakeHandlerFactory.CreateEmptyRealEstateHandler(players);

            landableSpaces = new Dictionary <Int32, UnownableSpace>();

            for (var i = 0; i < BoardConstants.BOARD_SIZE; i++)
            {
                landableSpaces.Add(i, new LandableSpace());
            }

            space6  = landableSpaces[6] as LandableSpace;
            space10 = landableSpaces[10] as LandableSpace;

            var spaceHandler = new UnownableHandler(landableSpaces);

            banker       = new Banker(players);
            boardHandler = new BoardHandler(players, realEstateHandler, spaceHandler, banker);
            jailHandler  = new JailHandler(dice, boardHandler, banker);
            turnHandler  = new TurnHandler(dice, boardHandler, jailHandler, realEstateHandler, banker);
        }
예제 #2
0
        public static Game CreateGame(IEnumerable <IPlayer> players)
        {
            var dice = new MonopolyDice();

            var banker            = new Banker(players);
            var realEstateHandler = new OwnableHandler(BoardFactory.CreateRealEstate(dice), banker);
            var spaces            = BoardFactory.CreateNonRealEstateSpaces(banker);
            var spaceHandler      = new UnownableHandler(spaces);

            var boardHandler = new BoardHandler(players, realEstateHandler, spaceHandler, banker);
            var jailHandler  = new JailHandler(dice, boardHandler, banker);
            var turnHandler  = new TurnHandler(dice, boardHandler, jailHandler, realEstateHandler, banker);

            var deckFactory    = new DeckFactory(players, jailHandler, boardHandler, realEstateHandler, banker);
            var communityChest = deckFactory.BuildCommunityChestDeck();
            var chance         = deckFactory.BuildChanceDeck(dice);

            foreach (var space in spaces.Values.OfType <DrawCard>())
            {
                if (space.ToString() == "Community Chest")
                {
                    space.AddDeck(communityChest);
                }
                else
                {
                    space.AddDeck(chance);
                }
            }

            return(new Game(players, turnHandler, banker));
        }
예제 #3
0
        public static IBoardHandler CreateBoardHandlerForFakeBoard(IEnumerable <IPlayer> players, IOwnableHandler realEstateHandler, IBanker banker)
        {
            var normalSpaces = new Dictionary <Int32, UnownableSpace>();

            for (var i = 0; i < BoardConstants.BOARD_SIZE; i++)
            {
                normalSpaces.Add(i, new NormalSpace("space " + i));
            }

            var spaceHandler = new UnownableHandler(normalSpaces);

            return(new BoardHandler(players, realEstateHandler, spaceHandler, banker));
        }
예제 #4
0
        public void Land()
        {
            var space  = new LandableSpace();
            var spaces = new Dictionary <Int32, UnownableSpace>();

            spaces.Add(0, space);

            var handler = new UnownableHandler(spaces);
            var player  = new Player("name");

            handler.Land(player, 0);

            Assert.IsTrue(space.LandedOn);
        }
        public void Setup()
        {
            player = new Player("name");
            var players = new[] { player };

            banker = new Banker(players);
            var realEstateHandler = new OwnableHandler(new Dictionary <Int32, OwnableSpace>(), banker);

            var normalSpaces = new Dictionary <Int32, UnownableSpace>();

            for (var i = 0; i < BoardConstants.BOARD_SIZE; i++)
            {
                normalSpaces.Add(i, new NormalSpace("space " + i));
            }

            var spaceHandler = new UnownableHandler(normalSpaces);

            boardHandler = new BoardHandler(players, realEstateHandler, spaceHandler, banker);
        }