package backtracking; import java.util.Stack; /** * Interface pour la modelisation des problemes a resoudre par * backtracking. */ public interface Jeu { /** * @return position initiale du jeu ˆ remplir */ public Object positionInitiale(); /** * @return valeur initiale d'une case ˆ la position donnee */ public Object valeurInitialePossible(Object position); /** * @param valeur * @return valeur suivante d'une case ˆ la position donnee */ public Object valeurSuivantePossible(Object valeur, Object position); /** * @param pile * @return true si la pile est solution
false sinon */ public boolean estSolution(Stack pile); /** * @param position * @return true si la position est ˆ remplir dans le jeu
false sinon */ public boolean positionValide(Object position); /** * @param position * @return la position suivante ˆ remplir */ public Object positionSuivante(Object position); /** * @param position * @return la position precedente */ public Object positionPrecedente(Object position); /** * affiche la solution * @param pile */ public void affiche(Stack pile); /** empiler la valeur dans la pile et mettre a jour ce qui doit etre mis a jour * @param pile * @param valeur * @return la nouvelle pile */ public Stack empiler(Stack pile, Object valeur); /** depiler et mettre a jour ce qui doit etre mis a jour * @param pile * @return le haut de la pile */ public Object depiler(Stack pile); }