Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #3844

problème de solveur

Newsgroups fr.comp.lang.python
Subject problème de solveur
From VienzProe <nospam_asteramistaur@gmail.com.invalid>
Organization !No_Organization!
Message-ID <98CdnWfb2psIs-j_nZ2dnUU7_83NnZ2d@giganews.com> (permalink)
Date 2022-05-06 09:20 -0500

Show all headers | View raw


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:])

Back to fr.comp.lang.python | Previous | Next | Find similar


Thread

probl�me de solveur VienzProe <nospam_asteramistaur@gmail.com.invalid> - 2022-05-06 09:20 -0500

csiph-web