public static IList <SvgConstraint> Generate(int[] sudoku) { var constraints = new List <SvgConstraint>(); foreach (var isCol in new[] { false, true }) { for (var rowCol = 0; rowCol < 9; rowCol++) { constraints.Add(new Battlefield(isCol, rowCol, BattlefieldUniquenessConstraint.CalculateBattlefieldClue(Ut.NewArray(9, x => sudoku[isCol ? (rowCol + 9 * x) : (x + 9 * rowCol)])))); } } return(constraints); }
public override bool Verify(int[] grid) => BattlefieldUniquenessConstraint.CalculateBattlefieldClue(GetAffectedCells(false).Select(cell => grid[cell]).ToArray()) == Clue;