// 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); }
internal RechercheChemin(Jeu jeu, List <int> voisins) { this.jeu = jeu; this.cibles = voisins; }
internal PlateauRencontre(Jeu jeu, PlateauRencontre parent, int nextPosVide) { this.NbCases = jeu.NbCases; this.parent = parent; PosVide = nextPosVide; }
internal PlateauRencontre(Jeu jeu) { this.NbCases = jeu.NbCases; this.parent = null; PosVide = jeu.PosVide; }
// 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)); }
public static bool IsResoluble(Jeu jeu) { return(jeu.IsResoluble()); }