/// <summary> /// Initializes a new instance of the <see cref="SudokuGene"/> class. /// </summary> /// <param name="gene">The gene.</param> public SudokuGene(SudokuGene gene) { for (var i = 0; i < 9; ++i) { Columns[i] = gene.Columns[i]; } }
/// <summary> /// Calculate the score for a row. /// The score simply is the number of unique values used in a row /// </summary> /// <param name="gene">The gene.</param> /// <returns>the score (higher=better)</returns> private int RowScore(SudokuGene gene) { var uniqueValues = 0; var used = new bool[10]; for (var col = 0; col < 9; ++col) { var val = gene.Columns[col]; if (used[val]) { continue; } used[val] = true; uniqueValues++; } return(uniqueValues); }