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