public SolverController(Table t, MainWindow w)
 {
     this.table = t;
     this.window = w;
     InitializeHeuristics();
     Actual = 0;
 }
 public NakedPair(Table t)
 {
     this.table = t;
 }
 public HiddenPair(Table t)
 {
     this.table = t;
 }
 public NakedSingle(Table t)
 {
     this.table = t;
 }
 public HiddenSingle(Table t)
 {
     this.table = t;
 }
 public Table(Table t)
 {
     cells = t.cells;
     boxes = t.boxes;
 }
 public RandomPick(Table t)
 {
     this.table = t;
 }
 public XWing(Table t)
 {
     this.table = t;
 }
 public Heuristic(Table t)
 {
     this.table = t;
 }
 public PointingPair(Table t)
 {
     this.table = t;
 }
 private void InitializeTable()
 {
     cellPanels = new List<List<CellPanel>>();
     table = new Table();
 }
        public void SolveTableBeforeGame(SolverController solver)
        {
            MakeCandidatesForTableCells();

            do {
                ClearAllExceptDefaults();
                solver.GetSolvedMap();
            } while (!CheckTable());

            solvedTable = new Table();
            foreach (var row in Table.Cells)
            {
                var sr = new List<Cell>();
                foreach (var cell in row)
                {
                    var sc = new Cell();
                    sc.Value = cell.Value;
                    sr.Add(sc);
                    if (!cell.IsDefault) cell.Value = 0;
                }
                solvedTable.Cells.Add(sr);
            }
            RenderTable();
        }
 public BoxLineReduction(Table t)
 {
     this.table = t;
 }