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

Signaler
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
-
Messages postés
1
Date d'inscription
mardi 29 novembre 2011
Statut
Membre
Dernière intervention
28 mars 2013
-
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

Messages postés
1
Date d'inscription
mardi 29 novembre 2011
Statut
Membre
Dernière intervention
28 mars 2013

SVP algorithme2 et algorithme3 se base sur quoi?
Messages postés
71
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
14 septembre 2007

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.