1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| [Serializable]
class SudokuCell
{
private int[, ,] tab; // Référence sur le tableau de la classe SudokuGrid
private int x, y;
public SudokuCell(int[, ,] tab, int x, int y) // TODO : voir si c une reference ou une copie
{
this.tab = tab;
this.x = x;
this.y = y;
}
public int Value
{
get
{
return tab[x, y, 0];
}
set
{
...
}
}
[Serializable]
class SudokuGrid
{
// Tableau pour enregistrer les possibilités de chaque case
private int[, ,] tab = new int[9, 9, 13]; // 1ere dim : x, 2eme dim : y, 3eme dim : 0 = la valeur de la case, 1->9 = nombre d'occurences de la valeur, 10 : nombre de valeurs possibles, 11 : seule valeur possible si existe sinon valeur de la case, 12 : 0 = normal, 1 = case init
public SudokuGrid()
{
...
}
public SudokuCell this[int x, int y]
{
get
{
return new SudokuCell(tab, x, y);
}
}
#region "Serialisation"
...
#endregion
} |
Partager