Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

problème de solveur

2 views
Skip to first unread message

VienzProe

unread,
May 6, 2022, 10:20:12 AM5/6/22
to
Bonjour,

Je dois réaliser un solveur qui doit me renvoyer une liste de directions pour
gagner la partie (on a un plateau, c'est une liste de listes avec des buissons
représentés par un 'B' et des touffes d'herbe représenté par un ' G ' et le but,
c'est que sur chaque touffe d'herbe il y a un mouton représenté par un 'S'.).
J'ai élaboré un solveur, mais le problème, c'est qui ne renvoie qu'une seule
direction. Pouvez-vous m'aider s'il vous plaît ?
Je vous remercie d'avance.

def solveur(moutons,plateau,visite,nombre_herbe,liste_direction):
"e;"e;"e;
Le rôle du solveur est de déterminer s’il est possible
de gagner à partir d’un état du jeu donné. En cas de réponse positive, le
solveur doit aussi fournir
une solution à la grille, c’est-à-dire une liste des coups à jouer pour
arriver à la victoire.
param: plateau : list
param: liste_direction : list
param: moutons : list de tuple
param: visite : set
"e;"e;"e;
plateau,plateau_jeu = init_plateau(plateau)
plateau_jeu = tuple(plateau_jeu)
moutons_tuples = tuple(moutons)
if victoire(plateau,moutons,nombre_herbe) :
return []

if moutons_tuples in visite :
if plateau_jeu in visite:
return None

else :

visite.add(tuple(plateau_jeu))
visite.add(moutons_tuples)
dir = tuple(liste_direction[0])
sol = solveur(jouer(plateau_jeu,moutons,dir),
plateau_jeu,visite,nombre_herbe,liste_direction)




if sol != [] and dir[0] == 'L':
return ['Left'] + [sol]

if sol != [] and dir[0] == 'R':
return ['Right'] + [sol]

if sol != [] and dir[0] == 'U':
return ['Up'] + [sol]

if sol != [] and dir[0] == 'D':
return ['Down'] + [sol]
else :
return solveur(moutons,plateau_jeu,visite,
nombre_herbe,liste_direction[1:])
0 new messages