IMPLEMENTATION DE QUELQUES ALGORITHMES POUR LA RÉSOLUTION DU JEU SUDOKU

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 13 janv. 2007 à 21:41
talhass Messages postés 1 Date d'inscription mardi 29 novembre 2011 Statut Membre Dernière intervention 28 mars 2013 - 28 mars 2013 à 02:00
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41093-implementation-de-quelques-algorithmes-pour-la-resolution-du-jeu-sudoku

talhass Messages postés 1 Date d'inscription mardi 29 novembre 2011 Statut Membre Dernière intervention 28 mars 2013
28 mars 2013 à 02:00
SVP algorithme2 et algorithme3 se base sur quoi?
Bel0 Messages postés 71 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 14 septembre 2007
14 janv. 2007 à 13:37
Ayant lu ton code, je me permet de faire quelques commentaires:

- tu devrais plus vérifier la java doc (ou utiliser un éditeur te montrant les erreurs .. genre eclipse) pour vérifier que les méthodes que tu utilises ne sont pas obsolète (deprecated) (ex: size() -> getSize()).
- Tu utilises des threads dans ton programme et tu utilises aussi la méthode stop (qui est deprecated elle aussi). Ce n'est vraiment pas une bonne façon de faire les choses étant donné que quand tu appelles cette méthode, elle stop le thread mais dans état inconnu, ce qui crée forcement de l'inconsistance dans l'état de ton programme (deadlock, race & co).
- Le troisième point me semble peut-être le plus embêtant étant donné qu'il traduit un manque de compréhension de langage Java. Quand un attribut d'une classe est déclaré en static, il faut y accéder de la manière suivante: <Nom de la classe>.<Nom attribut> (ex: Sudoku.soduko et non pas app.suduko, idem pour Jeu et jeu.getJeu)
- Tu devrais aussi essayer des mieux encapsuler tes données. C'est une mauvaise pratique d'accéder aux attributs des autres classes directement. On préfère utilisé des accesseurs. Ca devient utile quand on les surcharge dans des sous-classes. Si tu n'utilisais pas les accesseurs (comme dans ton cas), tu devrais changer partout dans ton code où tu utilises l'attribut pour pointer vers l'attribut de la sous-classe.
- La dernière remarque est peut être moins importante pour toi pour l'instant mais c'est toujours bon de s'en souvenir pour la suite. Quand tu créés une application graphique, il vaut toujours mieux essayer de séparer la partie graphique de la partie donnée (le modèle) et la façon de gérer les données (controller). Il existe un pattern en programmation appellée MVC (Model View Controller) très utile pour les applications graphiques. Tu devrais y jeter un coup d'oeil une fois que tu en as fini avec toutes les remarques.

Ne le prends pas mal si je te fais toute ces remarques, c'est pour ton bien :P En gros, tu as commis à peu près toutes les erreurs du débutant (ca n'est pas grave, on est tous passé par là un jour ou l'autre ;))

Sur ce bon courage pour toutes les corrections.
Rejoignez-nous