|
|
|
@ -53,7 +53,8 @@ namespace CoreLibrary.Joueurs
|
|
|
|
|
/// Génère tous les codes possibles pour une taille de code donnée.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="tailleCode">La taille du code.</param>
|
|
|
|
|
private void GenererTousCodesPossibles(int tailleCode)
|
|
|
|
|
/// <returns>Une liste de tous les codes possibles pour la partie</returns>
|
|
|
|
|
private static List<Code> GenererTousCodesPossibles(int tailleCode)
|
|
|
|
|
{
|
|
|
|
|
// Obtient toutes les valeurs de l'énumération Couleur
|
|
|
|
|
Couleur[] couleurs = Enum.GetValues<Couleur>();
|
|
|
|
@ -80,7 +81,8 @@ namespace CoreLibrary.Joueurs
|
|
|
|
|
jetons[indiceLigne, indiceColonne] = new Jeton(couleurs[couleurIndex]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<Code> codes = new List<Code>();
|
|
|
|
|
// Pour chaque combinaison de jetons générée
|
|
|
|
|
for (int i = 0; i < jetons.GetLength(0); ++i)
|
|
|
|
|
{
|
|
|
|
@ -92,7 +94,7 @@ namespace CoreLibrary.Joueurs
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Ajoute le code à la liste des codes possibles
|
|
|
|
|
codesPossibles!.Add(code);
|
|
|
|
|
codes!.Add(code);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return codes;
|
|
|
|
@ -131,7 +133,8 @@ namespace CoreLibrary.Joueurs
|
|
|
|
|
/// Supprime les codes impossibles du plateau.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="plateau">Le plateau de jeu.</param>
|
|
|
|
|
private static void SupprimerCodesImpossibles(Plateau plateau)
|
|
|
|
|
/// <param name="codes">Une liste de tous les codes restants possibles.</param>
|
|
|
|
|
private static void SupprimerCodesImpossibles(List<Code> codes, Plateau plateau)
|
|
|
|
|
{
|
|
|
|
|
if (codes == null)
|
|
|
|
|
return;
|
|
|
|
@ -139,10 +142,10 @@ namespace CoreLibrary.Joueurs
|
|
|
|
|
List<int> indicesASupprimer = new List<int>();
|
|
|
|
|
|
|
|
|
|
// Pour chaque code possible
|
|
|
|
|
for (int i = codesPossibles.Count - 1; i >= 0; --i)
|
|
|
|
|
for (int i = codes.Count - 1; i >= 0; --i)
|
|
|
|
|
{
|
|
|
|
|
// Vérifie s'il est possible sur le plateau
|
|
|
|
|
if (!EstCodePossible(plateau, codesPossibles.ElementAt(i)))
|
|
|
|
|
if (!EstCodePossible(plateau, codes.ElementAt(i)))
|
|
|
|
|
indicesASupprimer.Add(i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|