IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Résolution de sudoku


Sujet :

avec Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Résolution de sudoku
    Bonjour,
    je suis en première année de licence info et je dois réaliser un solveur de sudoku.
    Alors voilà, j'ai un problème avec ma fonction résolution : tout ce passe bien
    jusqu'à ce que mon programme atteigne la dernière case. Arrivé là il laisse la dernière
    case vide et le programme ne s'arrête pas. Dans ma fonction principale, j'ai une dernière
    instruction après l'appel de la fonction récursive qui permet d'afficher que le programme
    à trouvé une solution mais elle ne s'affiche pas donc je ne sort jamais de la fonction.
    J'ai mis le code source en pièce jointe (AffichageSudoku est fourni par le prof)
    La fonction qui m'intéresse se trouve tout en bas du fichier Sudoku.java
    Le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public static void resolution(int i,int j,int[][] tableauModifie,int[][] tabInit,AffichageSudoku AS){
    		int[] caseSuivante = caseSuivante(i,j,tabInit);
    		int k;
    			if(tableauModifie[i][j] == 0){
    				if(caseSuivante[2] != 2){
    					for(k=1;k<10;k++){
    						if(chiffrePossible(k,i,j,tableauModifie)){
    							tableauModifie[i][j] = k;
    							AS.refresh(tableauModifie);
    							resolution(caseSuivante[0],caseSuivante[1],tableauModifie,tabInit,AS);
    						}
    						else{
    							tableauModifie[i][j] = 0;
    						}
    					}
    					if(!verifTableau(tableauModifie)&&tableauModifie[i][j] == 0){
    						backTrack(caseAvant(i,j,tabInit),tabInit,tableauModifie,AS);
    					}
    				}
    				else{
    					for(k=1;k<10;k++){
    					if(tableauModifie[i][j] == 0){
    						if(chiffrePossible(k,i,j,tableauModifie)){
    							tableauModifie[i][j] = k;
    							AS.refresh(tableauModifie);
    						}
    					}
    					}
    				}
    			}			
    			else{
    				resolution(caseSuivante[0],caseSuivante[1],tableauModifie,tabInit,AS);
    			}
    	}
    Voilà merci d'avance pour vos réponses
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Projet résolution de Sudoku !
    Par Lenou dans le forum Débuter
    Réponses: 2
    Dernier message: 02/12/2009, 16h55
  2. Résolution de sudoku
    Par Xen3r0 dans le forum VB.NET
    Réponses: 2
    Dernier message: 06/04/2009, 23h40
  3. [Java] Résolution de Sudoku par backtracking
    Par pseudocode dans le forum Contribuez
    Réponses: 1
    Dernier message: 04/01/2009, 12h58
  4. Algorithme de résolution du sudoku
    Par gnouz dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 13/08/2008, 00h03
  5. Algorithme de résolution du sudoku
    Par F0ul dans le forum Débuter
    Réponses: 4
    Dernier message: 15/04/2008, 22h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo