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

        Assert.True(queens.CanAttack());
    }
Beispiel #13
0
 public void Can_attack_on_other_diagonal()
 {
     Assert.True(Queens.CanAttack(new Queen(0, 6), new Queen(1, 7)));
 }
Beispiel #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());
 }
    public void Cannot_attack()
    {
        var queens = new Queens(new Queen(2, 3), new Queen(4, 7));

        Assert.False(queens.CanAttack());
    }
Beispiel #16
0
 public void Can_attack_on_diagonal()
 {
     var queens = new Queens(new Queen(1, 1), new Queen(6, 6));
     Assert.True(queens.CanAttack());
 }
Beispiel #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());
 }
Beispiel #18
0
        public void TestSolve()
        {
            Queens q = new Queens(6);

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

        Assert.True(queens.CanAttack());
    }
Beispiel #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());
 }
Beispiel #22
0
 public void Can_attack_on_yet_another_diagonal()
 {
     Assert.True(Queens.CanAttack(new Queen(4, 1), new Queen(6, 3)));
 }
    public void Can_attack_on_same_column()
    {
        var queens = new Queens(new Queen(5, 4), new Queen(2, 4));

        Assert.True(queens.CanAttack());
    }
Beispiel #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());
 }
    public void Can_attack_on_other_diagonal()
    {
        var queens = new Queens(new Queen(0, 6), new Queen(1, 7));

        Assert.True(queens.CanAttack());
    }
Beispiel #26
0
 public void Cannot_attack()
 {
     var queens = new Queens(new Queen(2, 3), new Queen(4, 7));
     Assert.False(queens.CanAttack());
 }
    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());
    }
Beispiel #28
0
 public void Cannot_attack()
 {
     Assert.False(Queens.CanAttack(new Queen(2, 3), new Queen(4, 7)));
 }