Ejemplo n.º 1
0
        private Position[] getQueenValidMoves(Position pos)
        {
            var queen = new QueenMove();

            var moves = queen.ValidMovesFor(pos).ToArray();

            return(moves);
        }
        public void ValidMovesFor_WhenQueenMoveFromtheCorner_ThenReturnValidMoves()
        {
            // Arrange
            var pos           = new Position(1, 8);
            var queenMove     = new QueenMove();
            var expectedMoves = Factory.ValidMovesForQueenAtPos_1_8();

            // Act
            var moves = queenMove.ValidMovesFor(pos).ToArray();

            // Assert
            Assert.IsNotNull(moves);
            Assert.AreEqual(21, moves.Length);

            moves.Should().BeEquivalentTo(expectedMoves);
        }
Ejemplo n.º 3
0
        public void TestQueenMoveFromCorner()
        {
            var pos   = new Position(1, 1);
            var Queen = new QueenMove();

            var moves = new HashSet <Position>(Queen.ValidMovesFor(pos));

            Assert.IsNotNull(moves);
            Assert.AreEqual(21, moves.Count);

            var possibles = new[] { new Position(8, 8), new Position(8, 1), new Position(1, 8) };

            foreach (var possible in possibles)
            {
                Assert.IsTrue(moves.Contains(possible));
            }
        }
Ejemplo n.º 4
0
        public void TestQueenMoveFromInsideBoard()
        {
            var pos   = new Position(3, 3);
            var Queen = new QueenMove();

            var moves = Queen.ValidMovesFor(pos).ToArray();

            Assert.IsNotNull(moves);
            Assert.AreEqual(25, moves.Length);

            foreach (var move in moves)
            {
                int x = move.X - pos.X;
                int y = move.Y - pos.Y;
                Assert.IsTrue((x == 0) || (y == 0) || (x + y == 0) || (x - y == 0));
            }
        }