public Board(int _size) { State = new List <List <int> >(); Queens = new List <Queen>(); Neighbors = new NeighborStates(); Conflicts = 0; BuildState(_size); GetQueens(); GetConflits(); }
// Copy Constructor public Board(Board _board) { State = new List <List <int> >(); Queens = new List <Queen>(); Neighbors = new NeighborStates(); Conflicts = 0; _board.State.ForEach(row => State.Add(new List <int>(row))); GetQueens(); GetConflits(); }
// TODO: Checking Redundent States public void GetNeighborStates() { Neighbors = new NeighborStates(); for (int q = 0; q < Queens.Count; q++) { int Floor = Queens[q].Y * -1; int SkipIndex = Floor + Queens[q].Y; int Ceiling = (Queens.Count) - Queens[q].Y; for (int i = Floor; i < Ceiling; i++) { if (i != SkipIndex) { Board NewState = new Board(this); NewState.MoveQueen(q, i); Neighbors.Table.Add(NewState); } } } }