コード例 #1
0
        private void RollAndMove(IPlayer player)
        {
            dice.RollTwoDice();
            if (dice.Doubles)
            {
                doublesCount++;
            }

            jailHandler.HandleJail(doublesCount, player);

            if (!jailHandler.HasImprisoned(player) && !banker.IsBankrupt(player))
            {
                boardHandler.Move(player, dice.Value);
            }
        }
コード例 #2
0
        public void NeverPay()
        {
            player.JailStrategy = new NeverPay();

            Assert.IsFalse(player.JailStrategy.UseCard());

            var playerMoney = banker.Money[player];

            dice.RollTwoDice();
            boardHandler.MoveTo(player, BoardConstants.GO_TO_JAIL);
            jailHandler.HandleJail(0, player);
            jailHandler.HandleJail(0, player);

            Assert.AreEqual(playerMoney, banker.Money[player]);
            Assert.IsTrue(jailHandler.HasImprisoned(player));
        }
コード例 #3
0
        public void LandOnGoToJail_DoesNotGoAgain()
        {
            dice.SetPredeterminedDieValues(BoardConstants.GO_TO_JAIL / 2, BoardConstants.GO_TO_JAIL / 2, 4, 1);
            turnHandler.TakeTurn(player);

            Assert.AreEqual(BoardConstants.JAIL_OR_JUST_VISITING, boardHandler.PositionOf[player]);
            Assert.IsTrue(jailHandler.HasImprisoned(player));
        }
コード例 #4
0
        public void RollThreeDoubles_GoToJail()
        {
            jailHandler.HandleJail(3, player);

            Assert.AreEqual(BoardConstants.JAIL_OR_JUST_VISITING, boardHandler.PositionOf[player]);
            Assert.IsTrue(jailHandler.HasImprisoned(player));
        }
コード例 #5
0
 public void GoToJail()
 {
     goToJailCard.Execute(player);
     Assert.AreEqual(BoardConstants.JAIL_OR_JUST_VISITING, boardHandler.PositionOf[player]);
     Assert.IsTrue(jailHandler.HasImprisoned(player));
 }