Aller au menu - Aller au contenu

Fiche d'œuvre

Retour au concours

Œuvre

Téléchargement
Rendu le 29/07/2008 à 11:29:02

Titre : SudoCube
Concours : Le Sudoku : des nombres en folie !

Description de l'auteur

Le SudoCube arrive et il n'est pas content...
En effet le Club des P. est fier de vous présenter l'unique, le seul SudoCube.

Notre oeuvre contient une interface graphique modifiable ; la police et la couleur peuvent se modifier ainsi que le style de saisie de chiffre dans la grille (avec des boutons ou avec des QLineEdits). Mettre toutes ces options a, mine de rien, beaucoup rallongé le code source...hélas... :-°

Heureusement :D , notre SudoCube ne se contente pas de changer la couleur du texte ou le style d'écriture. Il est aussi divisé en deux parties :

- Une partie "jeu" constituée de 5 niveaux de difficultés (dont un personnalisable) durant laquelle on a accès a plusieurs options telles que : imprimer, vérifier, compléter, enregistrer ou activer l'aide à l'utilisateur (celle-ci donne des avantages différents selon le mode boutons ou QLineEdits).

- Une partie "éditeur" où l'utilisateur peut créer sa grille, l'imprimer, l'enregistrer, ou simplement mettre au défit notre résolveur dont le fonctionnement est en deux parties :
--- Une partie "logique" où il place les nombres à valeur sûre.
--- Une partie "brute-force" où SudoCube fait le bourrin et tente pleins de possibilités. ^^

Pour rajouter un peu de défit entre utilisateurs du SudoCube, il mémorise les 10 meilleurs scores avec votre pseudo et votre temps...Quant à ceux qui ne battent de record ils seront oubliés à jamais ^^(Petite note : quand l'aide à l'utilisateur est activée le temps s'écoule deux fois plus rapidement).

Et la sauvegarde dans tout cela ?
Les fichiers 'sauvegardes' mémorisent plusieurs données :
-La grille telle que l'utilisateur la connait.
-La grille de départ (les premieres valeurs données).
-La solution.
-Le temps
-Le niveau


Et bien-sûr pour se tenir à la pointe de la technologie on utilise Phonon (la classe quoi :p ), phonon est utilisé pour afficher l'animation de victoire....

Le Club P.

P.S: Nous avons essayer d'implémenter un mode multijoueur qui permetais à deux personnes de jouer l'un contre l'autre en "duel" ou en "cooperation". Malheuresement des petites difficultés et le manque de temps libre nous on fait abandonner ce projet... :(

Impression du jury

L'archive zip contient les fichiers demandés, proprement organisés et sans fichiers superflus, ce qui est déjà un premier bon point que l'on apprécie lorsqu'on doit corriger une oeuvre. Tous les autres participants n'ont pas nécessairement respecté les consignes à ce niveau.

La compilation, qmake puis make, se passe sans encombre. Attention, il faut avoir le module Phonon de Qt 4.4 qui n'est pas présent par défaut sous Windows. Ce n'est pas de votre faute mais il faut le signaler. Ce module est d'ailleurs un peu jeune et on se demande son utilité dans un tel programme.
Notons aussi quelques warnings de conversions un peu brutales de int vers double, mais somme toute rien de bien méchant.


Côté code



Côté code, l'organisation des fichiers est classique mais on se retrouve avec une fenêtre principale de plus de 2000 lignes, ce qui n'est pas très digeste. Il aurait fallu séparer en plusieurs fichiers de façon logique, afin de conserver une partie algorithmique d'un côté sans mélanger avec la gestion de la fenêtre (architecture MVC).

On appréciera les efforts de commentaires ainsi que le petit mode d'emploi livré avec le programme. Toutefois, cela ne parvient pas à masquer certains défauts du code :

  • Indentation inexistante ou hasardeuse (cela change au sein d'un même fichier). Quand on travaille à deux il faut se mettre d'accord sur ces points-là.
  • Pas de convention de nommage (il y a des noms de classe qui commencent par une majuscules et d'autres noms, de même pour les méthodes).
  • Des méthodes de toute évidence redondantes qui nécessitent un effort de restructuration. En général, quand on voit mettre1(), mettre2(), mettre3()... ce n'est pas très bon signe. ;)
    Il y a forcément moyen de faire mieux et d'obtenir un code plus léger et digeste.


Enfin, de nombreuses fautes d'orthographe et de frappe viennent joncher le tout.


Côté utilisateur



L'interface se présente sous la forme d'un ensemble de boutons : un clic sur une case affiche 9 boutons, un par chiffre. On peut donc remplir la grille uniquement à la souris, mais pas au clavier. Notons que les boutons ne sont pas toujours très lisibles car ils sont très petits.
En revanche, un mode plus classique à base de QLineEdit est disponible. Les préférences permettent de changer instantanément d'un mode à l'autre, ce qui est un très bon point.

L'aide à l'utilisateur fonctionne bien en mode "boutons", et a un comportement différent en mode QLineEdit. C'est un choix assez intéressant.
Il existe aussi une documentation du programme sous la forme d'une énorme boîte de dialogue, qui est malheureusement inexploitable (pas lisible).

Le programme génère des grilles de niveaux différents. Elle peut ouvrir et enregistrer des grilles mais ouvre et lit seulement un fichier, c'est bien dommage ! L'intérêt de la fonctionnalité se trouve fortement réduit.

La fenêtre préférences propose des options originales et les sauvegarde dans un fichier. Il aurait peut-être été plus judicieux de recourir à QSettings qui est fait pour cela, plutôt que de faire du traitement de fichier à bas niveau.


Finalement, Phonon n'est utilisé que pour la vidéo de fin de partie qui n'a pas vraiment d'utilité. Cela revient en quelque sorte à utiliser un moteur d'avion dans une voiture : c'est puissant mais un peu lourd, et surtout on s'en serait très bien passé.

Détail des notes

Critère M@teo21 Moyenne
Total 25
Interface graphique 7 7
Vérification de la grille 5 5
Lisibilité du code 2 2
Aide à l'utilisateur 2 2
Lecture de la grille dans un fichier 1 1
Génération aléatoire de la grille 4 4
Résolution automatique de la grille 4 4