public void TestQueenMoves()
        {
            chess.CreateChessBoard();
            var queen   = new QueenMove();
            var outcome = queen.Moves("G8");

            Assert.AreEqual("H7", outcome.Find(value => value.Equals("H7")));

            var outcome2 = queen.Moves("D4");

            Assert.AreEqual("E3", outcome2.Find(value => value.Equals("E3")));
            Assert.AreEqual("F2", outcome2.Find(value => value.Equals("F2")));
            Assert.AreEqual("G1", outcome2.Find(value => value.Equals("G1")));
            Assert.AreEqual("C5", outcome2.Find(value => value.Equals("C5")));
            Assert.AreEqual("B6", outcome2.Find(value => value.Equals("B6")));
            Assert.AreEqual("A7", outcome2.Find(value => value.Equals("A7")));

            var outcome3 = queen.Moves("E4");

            Assert.AreEqual("E8", outcome3.Find(value => value.Equals("E8")));
            Assert.AreEqual("E7", outcome3.Find(value => value.Equals("E7")));
            Assert.AreEqual("E6", outcome3.Find(value => value.Equals("E6")));
            Assert.AreEqual("E5", outcome3.Find(value => value.Equals("E5")));
            Assert.AreEqual("E3", outcome3.Find(value => value.Equals("E3")));
            Assert.AreEqual("E2", outcome3.Find(value => value.Equals("E2")));
            Assert.AreEqual("E1", outcome3.Find(value => value.Equals("E1")));

            Assert.AreEqual("A4", outcome3.Find(value => value.Equals("A4")));
            Assert.AreEqual("B4", outcome3.Find(value => value.Equals("B4")));
            Assert.AreEqual("C4", outcome3.Find(value => value.Equals("C4")));
            Assert.AreEqual("D4", outcome3.Find(value => value.Equals("D4")));
            Assert.AreEqual("F4", outcome3.Find(value => value.Equals("F4")));
            Assert.AreEqual("G4", outcome3.Find(value => value.Equals("G4")));
            Assert.AreEqual("H4", outcome3.Find(value => value.Equals("H4")));
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 4
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));
            }
        }
Exemplo n.º 5
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));
            }
        }