Accueil > Forum > > > > La table de sudoku qui foire
La table de sudoku qui foire
mardi 31 janvier 2006 à 17:25:39 |
La table de sudoku qui foire

lkm
|
Bonjour à tous, ceci est mon premier message sur javafr.com. En effet je débute en Java (mais pas en programmation) et je me suis dit que pour débuter, je coderai bien un petit applet java de sudoku pour mon site. Le problème que j'ai est plus un soucis de programmation que de problème avec java.
Je vous explique comment je procède pour générer ma table (compète) de sudoku. -j'initialise ma table à 2 dimensions : 9x9 cases. - ensuite je remplis ma première ligne en vérifiant pour chaque ajout que le chiffre (aléatoire entre 1 et 9) à insérer n'est pas dans la table. Ceci fonctionne très bien et si j'utilise que cette fonction la table de sudoku est cohérente sur les lignes. J'ai réalisé la même fonction mais pour les colonnes et si je l'utilise (sans utiliser la fonction ligne) j'ai une table sudoku cohérente sur les colonnes. Maintenant si j'utilise les 2 fonctions en faisant un ET entre les 2, ça foire complétement. Pourquoi je ne le sais pas peut être avez vous la réponse. Voici mon code:
import java.util.Random;
public class sudoku { //initialisation du tableau public static int[][] init_tableau_sudoku(int[][] table){ for(int i=0; i<9; i++){ for(int j=0;j<9;j++){ table[i][j] = -1; } } return table; } //vérifie si la valeur est dans la ligne public static boolean in_array_ligne(int valeur, int[][] table, int indiceligne, int indicecolonne){ for(int i=-1; i<indicecolonne; i++){ if(table[indiceligne][i+1] == valeur){ return true; } } return false; } // vérifie si la valeur est dans la colonne public static boolean in_array_colonne(int valeur, int[][] table, int indiceligne, int indicecolonne){ for(int i=-1; i<indiceligne;i++){ if( table[i+1][indicecolonne] == valeur){ return true; } } return false; } // genere le sudoku public int[][] genere_sudo(){ Random valeur_t = new Random(); int table[][] = new int[9][9]; table = init_tableau_sudoku(table); int valeur_test = -1; for(int j=0; j<9;j++){ for(int i=0; i<table.length; i++){ valeur_test = -1; while( in_array_ligne(valeur_test,table,j,i) && in_array_colonne(valeur_test,table,j,i) ){ valeur_test = valeur_t.nextInt(9)+1; } table[j][i] = valeur_test; } } return table; }
public static void main(String[] args) { System.out.println("Bonjour tout le monde!"); int table_sudoku[][] = new int[9][9]; String mike = "|"; sudoku obj_sudoku = new sudoku(); table_sudoku = obj_sudoku.genere_sudo(); for(int i = 0;i<9;i++){ for(int j=0;j<9;j++){ mike += table_sudoku[i][j] + "|"; if(j == 8){mike += "\n|";} } } System.out.println(mike); }
} lkm
|
|
mardi 31 janvier 2006 à 20:43:05 |
Re : La table de sudoku qui foire

eddyger
|
Bonjour,
(ne connaissant pas le sudoku je suis aller voir http://www.e-sudoku.fr/regle-grille-sudoku.php) Je pense que ton test au niveau du while devrait être plutôt un OU plutot qu'un ET : while( in_array_ligne(valeur_test,table,j,i) || in_array_colonne(valeur_test,table,j,i) )
ed
|
|
dimanche 5 février 2006 à 11:52:09 |
Re : La table de sudoku qui foire

lkm
|
Tu as entièrement raison, le pire c'est que j'avais vérifié, que j'avais bien trouvé une fonction OU mais le truc c'est que quand je met une fonction OU, j'ai l'impression de rentrer dans une boucle infinie, mon algorithme met 10 plombes à s'executer. J'y ai réfléchi et j'ai peut être trouvé une feinte pour parer ça. Je vous tiens au courant, je reste également ouvert à des propositions. lkm 
|
|
Cette discussion est classée dans : table, int, valeur, for, sudoku
Répondre à ce message
Sujets en rapport avec ce message
JDialog avec tableau [ par Suffren ]
Bonjour,je cherche à réaliser un JDialog avec des onglets qui donnent des tableaux avec Swing et AbstractTableModel mais çà ne marche pas.Existe-t-il
table de hachage !!!! [ par youneslami ]
salut a tous,j ai une table de hashage qui contiens des String avec une valeur en entier.je cherche a mettre tous les String dont la valeur est super
inverser une table [ par lolobuell ]
Bonjour,voilà j'ai une tableclé 1 valeur {a,b,c}clé 2 valeur {d,e}clé 3 valeur {g,h}et je voudrai pouvoir cré les ensembles croisés:{a,d,g} {a,d,h}{a,
servlet et id [ par errada ]
Bonjour à tous,j'ai un petit soucis, voilà, dans ma sevrlet Affichage_Table je fais un select * from stagiaire dans ma bdd pour afficher tous les stag
probleme nombres d'un tableau [ par Skyffer3 ]
Salut a tous ! Voila quand je fais un tableau, par exemple :x = new int[3];for (i = 0; i int[i] = 0;}La boucle for remplit donc le tableau x comme ce
retirer une valeur d'une table jdbtable [ par mamichec ]
Voila mon probleme:J'ai une jdbTable relie a un Datasetquery.a l'affichage tout est correcte, j'obtiens une table de 2 colonnes avec toutes les valeur
Insert en table de BDD avec une clef en AutoIncrement [ par zeldoi5 ]
Bonjour je travaille sur MySQL et j'ai un petit soucis avec l'insertion dans ma table. C'est certainement une question simple, mais je ne comprends pl
Basic => Java SoS [ par Enderounet ]
Salut, j'ai cet algo en Basic et je l'ai traduit en java, mais je n'obtient pas les memes résultats.Si qqun voit une erreur ou qque chose qui ne va pa
S.O.S !!! [ par javateux ]
String [][]s = null;...for(int i = 0;i{ for(int j = 0;j { s[i][j] = "ouech"; }}...resultat => nullPointerException sur la ligne s[i][j]
Conversion d'un tableau ASCII en STRING [ par neena ]
bonjour, je voudrai savoir comment faire pour convertir mon tableau qui contient du code ASCII en STRING voila mon code (le cryptage marche mais pas l
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|