Ejemplo n.º 1
0
        public void NoLogWrittenForNullMove()
        {
            player1.JumpTo(0, 1);
            var command = new PlayerMoveCommand {
                Player = player1, Direction = Direction.Left
            };

            command.Execute(game, log);

            Assert.AreEqual(0, log.Messages.Count);
        }
Ejemplo n.º 2
0
        public void MoveCommandTriggersPlayerMove()
        {
            player1.JumpTo(1, 1);
            var command = new PlayerMoveCommand {
                Player = player1, Direction = Direction.Up
            };

            command.Execute(game, log);

            Assert.AreEqual(game.Board.SlotAt(1, 0), player1.Position);
        }
Ejemplo n.º 3
0
        public void MoveCommandWritesToLog()
        {
            player1.JumpTo(1, 1);
            var command = new PlayerMoveCommand {
                Player = player1, Direction = Direction.Up
            };

            command.Execute(game, log);

            Assert.AreEqual(1, log.Messages.Count);
        }
Ejemplo n.º 4
0
        public override List <Cell> Attack(PlayerMoveCommand cmd)
        {
            var affectedCells = new List <Cell>();

            cmd.Execute(affectedCells);

            if (player1.Field.NumberOfShips == 0 || player2.Field.NumberOfShips == 0)
            {
                game.State = new GameFinishedState();
            }

            if (player1.Field.NumberOfShips == 0)
            {
                game.Winner = 1;
            }

            if (player2.Field.NumberOfShips == 0)
            {
                game.Winner = 0;
            }

            return(affectedCells);
        }