Depannage PC Boutique Forum
informatique

aide d'urgence sudoku backracking

Aide informatiqueAssistance informatique gratuite Aide informatique
informatique

#1   

toonpax1

aide d'urgence sudoku backracking

salut a ts

            voila j'ai un immense probleme j'ai a faire pr demain un programme qui prend un fichier texte et  qui resoud et affiche un sudoku 3X3 utilisant le backtracking S'il vous plait aider moi. J'ai reussi a prendre le fichier et a calculer les candidats possible est ce quelqu'un peut m'aider pour la fonction backtracking ca fai des jrs que je suis dessus.

Voici ma fonctions qui calcul les candidats possible:

    def calculCandidats(l,e,i):
    candidats=[]
    res=[]
    if l[e][i]==0:
        for j in range(len(l)):
            for k in range(len(l)):
                for a in range(1,len(l)+1):
                    if l[e][j]!=0 and l[e][j]==a:
                        res.append(a)
                        break
                    if l[k][i]!=0 and l[k][i]==a:
                        res.append(a)
                        break
        for j in range(len(l)):
            for k in range(len(l)):
                for a in range(1,len(l)+1):
                    ligne=e-(e%3)
                    colonne=i-(i%3)
                    for m in range(ligne,ligne+3):
                        for n in range(colonne,colonne+3):
                            if l[m][n]!=0 and l[m][n]==a:
                                res.append(a)
        for a in range(1,len(l)+1):
            if a not in res:
                candidats.append(a)
        return candidats
    else:
        return []

et celle la c'est la fontion que j'ai essayer de faire avec le backtracking

def resolution (l,i,candidats,n=9):
    if i == n:
        return True
               
    elif candidats == []:
        return False   
    else:
        for e in candidats:
            l.append(e)
            i += 1
            newCandidats = calculCandidats(l,e,i)
            if resolution(l,i,newCandidats,n=9):
                return True
        else:
            l.pop()
            i -= 1
        return False



  


Réponse rapide

forum Répondez et participez librement forum
Services informatiques Merci d'écrire un méssage de plus de 10 mots en français correct.

Top recherche sur le forum d'aide

Pied de page des forums

informatique
Forum : Réseau - Sécurité - Materiel
Php - Référencement - Serveurs - Divers
Windows - Internet - Logiciels - Communication
SARL Brakstar - siret : 48501380900010 RCS
9 allée du colonel Koch. 91250 Saintry sur Seine
Tel : 01.69.89.99.57 - Mail : societe@brakstar.com
Brakstar.com par Jeremy Gautier