public BinairoBoardSolver(BinairoBoardChecker checker, BinairoRowSolver rowSolver, IBoardSolver boardSolver, MatrixFlipper flipper, int size) { this.completeMask = size.ToMask(); this.size = size; this.checker = checker; this.rowSolver = rowSolver; this.boardSolver = boardSolver; this.flipper = flipper; }
public BoardGenerator(BinairoBoardChecker checker, BinairoRows validRows, int size) { this.validRows = validRows; this.size = size; this.checker = checker; ushort mask = (ushort)(((ushort)0b1111_1111_1111_1111) << (16 - size)); fullMask = Enumerable.Repeat(mask, size).ToArray(); switch (size) { case 6: strategy = new BoardGenerator6x6(validRows, checker, fullMask); break; case 8: strategy = new BoardGenerator8x8(validRows, checker, fullMask); break; default: throw new ArgumentException(message: "Only supports size 6, 8, 10 or 12"); } }
public BoardGenerator6x6(BinairoRows validRows, BinairoBoardChecker boardChecker, ushort[] fullMask) { this.boardChecker = boardChecker; this.validRows = validRows; this.fullMask = fullMask; }