Exemplo n.º 1
0
    public void Cannot_occupy_same_space()
    {
        var white = new Queen(2, 4);
        var black = new Queen(2, 4);

        Assert.Throws <ArgumentException>(() => Queens.CanAttack(white, black));
    }
Exemplo n.º 2
0
        public void Test2QueenSameDiagonal3x3BoardReturnsFalse()
        {
            int[,] gameBoard = new int[3, 3] {
                { 1, 0, 0 },
                { 0, 0, 0 },
                { 0, 0, 1 }
            };

            Queens.IsGameBoardValid(gameBoard, 3, 3).Should().BeFalse();
        }
Exemplo n.º 3
0
        public void Test1Queen3x3BoardReturnsTrue()
        {
            int[,] gameBoard = new int[3, 3] {
                { 1, 0, 0 },
                { 0, 0, 0 },
                { 0, 0, 0 }
            };

            Queens.IsGameBoardValid(gameBoard, 3, 3).Should().BeTrue();
        }
Exemplo n.º 4
0
        public void Test8QueenValid8x8BoardReturnsTrue()
        {
            int[,] gameBoard = new int[8, 8] {
                { 0, 0, 1, 0, 0, 0, 0, 0 },
                { 0, 0, 0, 0, 0, 1, 0, 0 },
                { 0, 0, 0, 0, 0, 0, 0, 1 },
                { 1, 0, 0, 0, 0, 0, 0, 0 },
                { 0, 0, 0, 1, 0, 0, 0, 0 },
                { 0, 0, 0, 0, 0, 0, 1, 0 },
                { 0, 0, 0, 0, 1, 0, 0, 0 },
                { 0, 1, 0, 0, 0, 0, 0, 0 },
            };

            Queens.IsGameBoardValid(gameBoard, 8, 8).Should().BeTrue();
        }
Exemplo n.º 5
0
        public List <Chessboard> GetNeighbourhoodOf(Queen queen)
        {
            var neighbourhood = new List <Chessboard>();

            neighbourhood.AddRange(queen
                                   .Position
                                   .GetAdjacentFields(BoardSize)
                                   .Where(coords => !HasQueenOn(coords))
                                   .Select(coords =>
            {
                var newQueensList = Queens.Where(q => q != queen).ToList();
                newQueensList.Add(new Queen(coords.X, coords.Y));
                return(new Chessboard(newQueensList));
            }));

            return(neighbourhood);
        }
Exemplo n.º 6
0
 public bool HasQueenOn(int x, int y)
 {
     return(Queens.Any(q => q.X == x && q.Y == y));
 }
Exemplo n.º 7
0
 public bool HasQueenOn(Coordinates coords)
 {
     return(Queens.Any(q => q.X == coords.X && q.Y == coords.Y));
 }
Exemplo n.º 8
0
 public void Can_attack_on_same_column()
 {
     Assert.True(Queens.CanAttack(new Queen(5, 4), new Queen(2, 4)));
 }
Exemplo n.º 9
0
 public void Test0Queens3x3BoardReturnsTrue()
 {
     int[,] gameBoard = new int[3, 3];
     Queens.IsGameBoardValid(gameBoard, 3, 3).Should().BeTrue();
 }
Exemplo n.º 10
0
 public void Can_attack_on_same_row()
 {
     Assert.True(Queens.CanAttack(new Queen(2, 4), new Queen(2, 7)));
 }
Exemplo n.º 11
0
 public void Can_attack_on_diagonal()
 {
     Assert.True(Queens.CanAttack(new Queen(1, 1), new Queen(6, 6)));
 }
Exemplo n.º 12
0
    public void Can_attack_on_diagonal()
    {
        var queens = new Queens(new Queen(1, 1), new Queen(6, 6));

        Assert.True(queens.CanAttack());
    }
Exemplo n.º 13
0
 public void Can_attack_on_other_diagonal()
 {
     Assert.True(Queens.CanAttack(new Queen(0, 6), new Queen(1, 7)));
 }
Exemplo n.º 14
0
 public void Can_attack_on_other_diagonal()
 {
     var queens = new Queens(new Queen(0, 6), new Queen(1, 7));
     Assert.True(queens.CanAttack());
 }
Exemplo n.º 15
0
    public void Cannot_attack()
    {
        var queens = new Queens(new Queen(2, 3), new Queen(4, 7));

        Assert.False(queens.CanAttack());
    }
Exemplo n.º 16
0
 public void Can_attack_on_diagonal()
 {
     var queens = new Queens(new Queen(1, 1), new Queen(6, 6));
     Assert.True(queens.CanAttack());
 }
Exemplo n.º 17
0
 public void Can_attack_on_a_diagonal_slanted_the_other_way()
 {
     var queens = new Queens(new Queen(6, 1), new Queen(1, 6));
     Assert.True(queens.CanAttack());
 }
Exemplo n.º 18
0
        public void TestSolve()
        {
            Queens q = new Queens(6);

            q.Solve(0);
        }
Exemplo n.º 19
0
 public List <Chessboard> GetNeighbourhoodOf()
 {
     return(Queens.SelectMany(queen => GetNeighbourhoodOf(queen)).ToList());
 }
Exemplo n.º 20
0
    public void Can_attack_on_yet_another_diagonal()
    {
        var queens = new Queens(new Queen(4, 1), new Queen(6, 3));

        Assert.True(queens.CanAttack());
    }
Exemplo n.º 21
0
 public void Can_attack_on_same_row()
 {
     var queens = new Queens(new Queen(2, 4), new Queen(2, 7));
     Assert.True(queens.CanAttack());
 }
Exemplo n.º 22
0
 public void Can_attack_on_yet_another_diagonal()
 {
     Assert.True(Queens.CanAttack(new Queen(4, 1), new Queen(6, 3)));
 }
Exemplo n.º 23
0
    public void Can_attack_on_same_column()
    {
        var queens = new Queens(new Queen(5, 4), new Queen(2, 4));

        Assert.True(queens.CanAttack());
    }
Exemplo n.º 24
0
 public void Can_attack_on_yet_another_diagonal()
 {
     var queens = new Queens(new Queen(4, 1), new Queen(6, 3));
     Assert.True(queens.CanAttack());
 }
Exemplo n.º 25
0
    public void Can_attack_on_other_diagonal()
    {
        var queens = new Queens(new Queen(0, 6), new Queen(1, 7));

        Assert.True(queens.CanAttack());
    }
Exemplo n.º 26
0
 public void Cannot_attack()
 {
     var queens = new Queens(new Queen(2, 3), new Queen(4, 7));
     Assert.False(queens.CanAttack());
 }
Exemplo n.º 27
0
    public void Can_attack_on_a_diagonal_slanted_the_other_way()
    {
        var queens = new Queens(new Queen(6, 1), new Queen(1, 6));

        Assert.True(queens.CanAttack());
    }
Exemplo n.º 28
0
 public void Cannot_attack()
 {
     Assert.False(Queens.CanAttack(new Queen(2, 3), new Queen(4, 7)));
 }