コード例 #1
0
ファイル: Board.cs プロジェクト: Ra-Sedgwick/UNCC-3153
        public Board(int _size)
        {
            State     = new List <List <int> >();
            Queens    = new List <Queen>();
            Neighbors = new NeighborStates();
            Conflicts = 0;

            BuildState(_size);
            GetQueens();
            GetConflits();
        }
コード例 #2
0
ファイル: Board.cs プロジェクト: Ra-Sedgwick/UNCC-3153
        // 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();
        }
コード例 #3
0
ファイル: Board.cs プロジェクト: Ra-Sedgwick/UNCC-3153
        // 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);
                    }
                }
            }
        }