Path: csiph.com!xmission!news.snarked.org!border2.nntp.dca1.giganews.com!nntp.giganews.com!buffer2.nntp.dca1.giganews.com!buffer1.nntp.dca1.giganews.com!news.giganews.com.POSTED!not-for-mail NNTP-Posting-Date: Fri, 06 May 2022 09:20:05 -0500 Newsgroups: fr.comp.lang.python Subject: problème de solveur X-poster: PEAR::Net_NNTP v1.5.0 (stable) From: VienzProe Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Organization: !No_Organization! Message-ID: <98CdnWfb2psIs-j_nZ2dnUU7_83NnZ2d@giganews.com> Date: Fri, 06 May 2022 09:20:05 -0500 Lines: 56 X-Usenet-Provider: http://www.giganews.com X-Trace: sv3-6MCXzwr7eElwMTS/4esILy2HIZCSLjMKqR8WfzNkBK0vmj2fMNS8yi6DMkUekEkB2uuDoPmetXlND3I!R5Ef8UiOaHNHFQGFGHl1ADwZRBOsBNebcG4G83RZMTNk4nlvIvP68eXqItHRtJjcUMl7+tqTGOvO X-Complaints-To: abuse@giganews.com X-DMCA-Notifications: http://www.giganews.com/info/dmca.html X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Lines: 51 X-Original-Bytes: 3047 Xref: csiph.com fr.comp.lang.python:3844 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:])