public void Do_ThrowsIfPositionOccupiedAlready()
        {
            var p1 = new HumanPlayer("jim");
            var p2 = new HumanPlayer("tim");
            using (var game = new Game(p1, p2))
            {
                var action = new OccupyGameAction(game, p1, 2, 1);

                Assert.DoesNotThrow(action.Do);
                Assert.Throws<InvalidOperationException>(action.Do);
            }
        }
        public void Do_DoesLog()
        {
            var p1 = new HumanPlayer("jim");
            var p2 = new HumanPlayer("tim");
            using (var game = new Game(p1, p2))
            {
                var action = new OccupyGameAction(game, p1, 2, 1);

                Assert.AreEqual(0, game.GameLog.Count);
                action.Do();
                Assert.AreEqual(1, game.GameLog.Count);
            }
        }
        public void Do_OccupiesSpaceCorrectly()
        {
            var p1 = new HumanPlayer("jim");
            var p2 = new HumanPlayer("tim");
            using (var game = new Game(p1, p2))
            {
                var action = new OccupyGameAction(game, p1, 2, 1,0);

                action.Do();
                Assert.NotNull(game.Board.BoardPositions[1][2]);
                Assert.AreEqual(p1, game.Board.BoardPositions[1][2]);
            }
        }
        public void Consturctor_SetsClass()
        {
            var p1 = new HumanPlayer("jim");
            var p2 = new HumanPlayer("tim");
            using (var game = new Game(p1, p2))
            {
                var action = new OccupyGameAction(game, p1, 2, 1, 0);

                Assert.AreEqual(p1, action.Player);
                Assert.AreEqual(game, action.Game);
                Assert.AreEqual(2, action.X);
                Assert.AreEqual(1, action.Y);
            }
        }
Exemplo n.º 5
0
 public void HandleClick()
 {
     if (GameVm.Game.Status == GameStatus.Finished) return;
     if (GameVm.Game.WinStatus != GameWinStatus.None) return;
     if (GameVm.Game.PlayerTurn is AiPlayer) return;
     if (GameVm.Game.Board.IsPositionOccupied(X, Y))
         return;
     var action = new OccupyGameAction(GameVm.Game,GameVm.Game.PlayerTurn,X,Y,0);
     GameVm.Game.PerformAction(action);
 }