Beispiel #1
0
 // Jeu rangé sauf les deux cases au dessus du coin inférieur droit
 // (pour le cas où on rangerait une situation non résoluble)
 public static bool IsPresqueRange(Jeu jeu)
 {
     for (int i = 0; i < jeu.NbCases; i++)
     {
         if (i == jeu.CaseVide - jeu.Largeur - 1 || i == jeu.CaseVide - jeu.Largeur)
         {
             // elles doivent être interverties
             if (jeu.Plateau[i] == i || jeu.Pieces[i] == i || jeu.PiecesRangees[i])
             {
                 return(false);
             }
         }
         else
         {
             if (jeu.Plateau[i] != i || jeu.Pieces[i] != i || !jeu.PiecesRangees[i])
             {
                 return(false);
             }
         }
     }
     return(true);
 }
Beispiel #2
0
 internal RechercheChemin(Jeu jeu, List <int> voisins)
 {
     this.jeu    = jeu;
     this.cibles = voisins;
 }
Beispiel #3
0
 internal PlateauRencontre(Jeu jeu, PlateauRencontre parent, int nextPosVide)
 {
     this.NbCases = jeu.NbCases;
     this.parent  = parent;
     PosVide      = nextPosVide;
 }
Beispiel #4
0
 internal PlateauRencontre(Jeu jeu)
 {
     this.NbCases = jeu.NbCases;
     this.parent  = null;
     PosVide      = jeu.PosVide;
 }
Beispiel #5
0
 // format du dump (utile pour des comparaisons avec le résultat attendu)
 // lignes séparées par environment.newline
 // fields sur 2 caractères, séparés par un espace
 public static string DumpPlateau(Jeu jeu)
 {
     int[] plateau = jeu.Plateau != null ? jeu.Plateau : jeu.PlateauInitial;
     return(DumpPlateau(jeu, plateau));
 }
Beispiel #6
0
 public static bool IsResoluble(Jeu jeu)
 {
     return(jeu.IsResoluble());
 }