Premier défi Qt : les résultats du Buddhabrot

Image non disponible

Les défis Qt sont des petits exercices à faire soi-même ou en équipe sur un sujet précis. Le sujet de ce premier défi était le dessin de fractales, précisément de Buddhabrot. Le défi étant terminé, nous vous présentons les résultats ainsi que le gagnant !

Retrouvez ce défi sur le forum.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Présentation

L'équipe Qt vous souhaite la bienvenue sur la page du premier défi Qt.

Les défis Qt sont des petits exercices à faire soi-même ou en équipe sur un sujet précis, à la manière des examens ou des exercices de livres. Ces codes à écrire sont étudiés de sorte que tous y trouvent leur compte : parfois de l'algorithmique, mais pas uniquement, car Qt ne fait pas que dans ce domaine spécifique. Il s'agit d'un framework complet : les défis essayent d'exploiter cette richesse. Ceci ne signifie pas qu'aucune réflexion n'est nécessaire : il faut connaître Qt, il ne s'agit pas d'écrire quelques lignes sans y réfléchir.

Retrouvez ce défi sur le forum.

Les membres du jury avaient à leur disposition une grille afin de les aider dans la cotation des programmes rendus. Elle leur laissait un certain degré de liberté, notamment dans la sévérité de certains éléments : chaque juré a fait selon ses critères personnels, ce qui peut donner des résultats complètement différents d'un juré à l'autre pour une même application. La voici pour rappel.

Certains critères étaient obligatoires : tous les points cités compteront dans la note finale. D'autres étaient optionnels : seul la meilleure cote des deux sera retenue. Les derniers, enfin, étaient supplémentaires : des bonus en cas de dépassement de nos demandes, ou des malus en cas de régression profonde (avertissements à la compilation, par exemple).

Vous trouverez ce tableau complété pour chaque participant et pour chaque juré ayant évalué le programme, avec ses commentaires. Les noms des jurés n'apparaîtront jamais à proximité de leurs commentaires, pour des raisons d'anonymat (personne ne saura qui a corrigé qui, qui a fait quels commentaires : personne ne pourra juger de la partialité de tel juge, cela évitera les MP excessifs si un juge a mis une cote trop basse aux yeux du participant, par exemple ; cependant, chaque juré a un numéro, qu'il gardera tout au long de la page, afin que chaque candidat puisse se comparer face à un seul juré pour tous les critères aux autres membres et voir ses forces et faiblesses). Les participants sont invités à regarder les commentaires afin de s'améliorer : il s'agit d'un regard externe sur la participation rendue, qui peut vous faire remarquer vos points faibles et vos points forts. Ils sont utiles à tous aussi : que faut-il faire, que faut-il éviter ? Les programmes sont présentés en fonction de l'ordre alphabétique des participants. Bonne consultation.

Critère Points à accumuler
(40 au total)
Fonctionnement minimal du programme Total : 19
Affichage de la fractale Buddhabrot 8
Changement des paramètres de génération 4
Internationalisation 3
Efficacité de l'optimisation du générateur 4
Qualité du code Total : 13
Qualité d'un point de vue C++ 4
Qualité d'un point de vue Qt 4
Gestion de la mémoire 4
Documentation minimale 1
Interface graphique (critère optionnel) Total : 4
Ergonomie (4)
Design (4)
Optimisation du générateur (critère optionnel) Total : 4
Multithreading (4)
Calcul distribué (4)
Autre méthode de rendu, de calcul (4)
Autre type d'optimisation (4)
Bonus (critères facultatifs) Total : +24
Génération d'autres fractales (supportées par le module) 1
Génération d'autres fractales (non supportées par le module) 2
Documentation en suffisance 3
Animation de la génération 4
Colorisation de la (des) fractale(s) 4
Changement des paramètres en temps réel 4
Surprenez-nous ! 6
Malus Total : -16
Utilisation d'un autre langage (C, Fortran, assembleur...) -4
Utilisation d'une autre bibliothèque non utilisée par Qt (GMP, Qwt...) -4
Application peu robuste -2
Application semblant plantée -2
Erreurs à la compilation -2
Avertissements à la compilation (sauf si justification dans le README) -1
Fichiers inutiles dans l'archive -1

Toutes les sources des candidats sont disponibles !

II. 0x4e84

II-A. Juré 1

Critère Points à accumuler : 40 Points accumulés : 29.5
Fonctionnement minimal du programme Maximum : 19 Total : 14
Affichage de la fractale Buddhabrot 8 6
Changement des paramètres de génération 4 3
Internationalisation 3 2
Efficacité de l'optimisation du générateur 4 3
Qualité du code Maximum : 13 Total : 8.5
Qualité d'un point de vue C++ 4 2.5
Qualité d'un point de vue Qt 4 3
Gestion de la mémoire 4 3
Documentation minimale 1 0
Interface graphique (critère optionnel) Maximum : 4 Total : 3
Ergonomie (4) 3
Design (4) 2
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 3
Multithreading (4)  
Bonus (critères facultatifs) Maximum : +24 Total : +2.5
Génération d'autres fractales (supportées par le module) 1 0.5
Surprenez-nous ! 6 2
Malus Maximum : -16 Total : -1.5
Erreurs à la compilation -2 -1
Avertissements à la compilation (sauf si justification dans le README) -1 -0.5

II-B. Juré 4

Critère Points à accumuler : 40 Points accumulés : 33.5 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 15  
Affichage du Buddhabrot 8 6  
Changement des paramètres de génération 4 3  
Internationalisation 3 2  
Efficacité de l'optimisation du générateur 4 4  
Qualité du code Maximum : 13 Total : 9  
Qualité d'un point de vue C++ 4 3  
Qualité d'un point de vue Qt 4 3  
Gestion de la mémoire 4 3  
Documentation minimale 1 0  
Interface graphique (critère optionnel) Maximum : 4 Total : 4  
Ergonomie (4) 3 Un grand soin au niveau de l'ergonomie (très rapide à prendre en main) et le design.
Design (4) 4
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 4  
Multithreading (4) 4 Utilisation des concurrents de la bonne manière :D. La meilleure et la plus intéréssante implémentation multithread du défi !
Bonus (critères facultatifs) Maximum : +24 Total : +3.5  
Génération d'autres fractales (supportées par le module) 1 0.5 Dommage qu'il manque des choses sur la coloration et que l'on ne peut générer plus de fractales.
Surprenez-nous ! 6 3  
Malus Maximum : -16 Total : -1  
Erreurs à la compilation -2 -0.5 Juste deux petits problèmes sur les fonction math. Mais quelques warnings non dangereux qui auraient pu rapidement être enlevés.
Avertissements à la compilation (sauf si justification dans le README) -1 -0.5
Autres commentaires
Des petit problèmes de fonctionnement, voir ce qu'a constaté le juré 6

II-C. Juré 5

Critère Points à accumuler : 36 Points accumulés : 20.5 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 11  
Affichage du Buddhabrot 8 6  
Changement des paramètres de génération 4 3  
Internationalisation 3 2 Internationalisation faite mais pas d'options pour changer de langue
Efficacité de l'optimisation du générateur 4 0 Pas d'optimisation du générateur, il s'agit juste d'une visualisation des fractales de Yan (buddhabrot et mandelbrot uniquement)
Qualité du code Maximum : 13 Total : 9  
Qualité d'un point de vue C++ 4 3  
Qualité d'un point de vue Qt 4 3  
Gestion de la mémoire 4 3  
Documentation minimale 1 0  
Interface graphique (critère optionnel) Maximum : 4 Total : 3.5  
Ergonomie (4) 3  
Design (4) 3.5  
Malus Maximum : -16 Total : -3  
Utilisation d'un autre langage (C, Fortran, assembleur...) -4 -1 Utilisation de structures, qui, pour moi, font plus partie du langage C
Erreurs à la compilation -2 -1  
Avertissements -1 -1  
Autres commentaires
Deux images manquantes rajoutés sur le forum des le lendemain. Pas de malus pour si peu. Cependant, aucune indication sur la plateforme, le compilateur ou la version de Qt utilisé... Erreur de compilation sous windows avec VS2008 (4.6.2) et MinGW (4.6.0) sur une ambiguité de la fonction pow. Aucun problème sur Ubuntu GCC (4.6.1), à l'exeption de quelques warnings unused.

II-D. Juré 6

Critère Points à accumuler : 40 Points accumulés : 28 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 13.5  
Affichage du Buddhabrot 8 6  
Changement des paramètres de génération 4 3 En suffisance, mais durs à mettre vu la fenêtre dédiée
Internationalisation 3 2 Uniquement par la ligne de commande, mais fonctionnelle ; pas de changement en live ou d'option pour en changer
Efficacité de l'optimisation du générateur 4 2.5 Avec deux threads, la génération prend 17 secondes, soit la 4e place dans mon classement par temps
Qualité du code Maximum : 13 Total : 9  
Qualité d'un point de vue C++ 4 3 Indentation parfois folklorique
Qualité d'un point de vue Qt 4 3 Rien à signaler, mais je ne peux pas mettre le maximum pour ce genre de critère
Gestion de la mémoire 4 3 Rien à signaler, mais je ne peux pas mettre le maximum pour ce genre de critère
Documentation minimale 1 0 Il y a une doc, c'est déjà ça. Mais, une doc, c'est plus que ce que peut générer Doxygen sans autres entrées ; un peu de texte n'eut pas fait de mal ; beaucoup de fichiers mentionnés dans la doc ne se retrouvent pas dans l'archive
Interface graphique (critère optionnel) Maximum : 4 Total : 3.5  
Ergonomie (4) 2 Il faut le temps de comprendre l'interface ; une fois l'étape passée, elle est fonctionnelle ; grand regret : pas trouvé la colo dans la GUI, les paramètres se mettent dans une petite fenêtre
Design (4) 3.5 Interface moderne, épurée, même si la fenêtre de paramètres n'entre pas du tout dans la charte graphique du reste de l'application
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 3.5  
Multithreading (4) 3.5  
Bonus (critères facultatifs) Maximum : +24 Total : +0.5  
Génération d'autres fractales (supportées par le module) 1 +0.5 Quelques autres fractales supportées, pas toutes (pourtant, utilise le module de Yan)
Malus Maximum : -16 Total : -2  
Application peu robuste -2 -1 Quand deux fractales sont en génération, ça se plante... Quand on annule la génération d'une fractale dans la fenêtre, elle est quand même générée...
Avertissements -1 -0.5  
Fichiers inutiles dans l'archive -1 -0.5  
Autres commentaires
Pas de note indicant la non-compatibilité avec VS résultant en erreurs ; warnings avec MinGW 3.4.5 ; compilation parfaite avec MinGW 4.4. Deux fichiers manquants, même si fournis sur le forum.

II-E. Résumé

Critère Points à accumuler : 40 Points accumulés : 29.4375
Fonctionnement minimal du programme Maximum : 19 Total : 13.375
Affichage de la fractale Buddhabrot 8 6
Changement des paramètres de génération 4 3
Internationalisation 3 2
Efficacité de l'optimisation du générateur 4 2.375
Qualité du code Maximum : 13 Total : 8.875
Qualité d'un point de vue C++ 4 2.875
Qualité d'un point de vue Qt 4 3
Gestion de la mémoire 4 3
Documentation minimale 1 0
Interface graphique (critère optionnel) Maximum : 4 Total : 3.25
Ergonomie (4) 2.75
Design (4) 3.25
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 3.5
Multithreading (4) 3.5
Bonus (critères facultatifs) Maximum : +24 Total : 1.75
Génération d'autres fractales (supportées par le module) 1 0.5
Surprenez-nous ! 6 1.25
Malus Maximum : -16 Total : -1.3125
Application peu robuste -2 -0.25
Erreurs à la compilation -2 -0.3125
Avertissements à la compilation (sauf si justification dans le README) -1 -0.625
Fichiers inutiles dans l'archive -1 -0.125

III. Amnell

III-A. Juré 1

Critère Points à accumuler : 40 Points accumulés : 20
Fonctionnement minimal du programme Maximum : 19 Total : 6
Affichage de la fractale Buddhabrot 8 2.5
Changement des paramètres de génération 4 0.5
Internationalisation 3 0
Efficacité de l'optimisation du générateur 4 2.5
Qualité du code Maximum : 13 Total : 8
Qualité d'un point de vue C++ 4 1.5
Qualité d'un point de vue Qt 4 3.5
Gestion de la mémoire 4 3
Documentation minimale 1 1
Interface graphique (critère optionnel) Maximum : 4 Total : 3
Ergonomie (4) 3
Design (4) 3
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 0
Bonus (critères facultatifs) Maximum : +24 Total : +5
Génération d'autres fractales (non supportées par le module) 2 0.5
Documentation en suffisance 3 2.5
Colorisation de la (des) fractale(s) 4 2
Malus Maximum : -16 Total : -2
Application peu robuste -2 -2

III-B. Juré 2

Critère Points à accumuler : 21 Points accumulés : 12 Commentaires
Qualité du code Maximum : 13 Total : 9  
Qualité d'un point de vue C++ 4 2 Problèmes d'encapsulation (comme ToolsArea::_effect)
Pas d'indentation après le for(int i = 0; i < list.size(); i++)
Les conventions de codage sont bizarres, mais cohérentes donc pourquoi pas
Getter du générateur non constant.
Generator::buddhabrot() et Generator::mandelbrot() devrait être private, et pas inline.
Qualité d'un point de vue Qt 4 3 QTimer::singleShot(250, &window, SLOT(generate())); : pourquoi 250ms de délai ?
Fuite de mémoire sur les effets de ToolsArea.
Le constructeur de ToolsArea devrait appeler le constructeur parent avec MainWindow comme paramètre.
GraphicsScene::parent public ?
Le constructeur de GraphicsScene n'appelle pas le constructeur de son parent avec le paramètre. Cela pourrait être correct avec du multi-view mais ici la scène a clairement un parent.
Dans GraphicsScene::showMandelbrot(), on fait quoi du renderItem précédent ?
Pourquoi pratiquement toutes les fonctions du générateur sont-elles des slots ?
Gestion de la mémoire 4 3  
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 3  
Ergonomie (4) 3  
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 0  
Multithreading (4) 0 0 pour le multithreading comme optimisation. Par contre le thread est utile pour l'ergonomie de l'interface ici, donc j'ai mis les points dans ergonomie

III-C. Juré 4

Critère Points à accumuler : 36 Points accumulés : 19 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 6  
Affichage du Buddhabrot 8 2.5 J'y ai cru jusqu'à la fin ; dommage, il ne manquait pas grand chose.
Changement des paramètres de génération 4 0.5  
Internationalisation 3 1 tr() en place, mais pas de fichier de traduction
Efficacité de l'optimisation du générateur 4 2  
Qualité du code Maximum : 13 Total : 8  
Qualité d'un point de vue C++ 4 2 Pas mal de petits problèmes, à revoir, en particulier les pointeurs. Tu devrais regarder les pointeurs intelligents.
Gestion de la mémoire 4 2
Qualité d'un point de vue Qt 4 3 Rien à signaler
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 3  
Ergonomie (4) 3  
Design (4) 2.5  
Bonus (critères facultatifs) Maximum : +24 Total : +4  
Génération d'autres fractales (non supportées par le module) 1 0.5  
Documentation en suffisance 3 1.5  
Colorisation de la (des) fractale(s) 4 2  
Malus Maximum : -16 Total : -2  
Application peu robuste -2 -2  
Erreurs de compilation -2 0 Différences d'implémentation de la STL, donc pas de malus

III-D. Juré 5

Critère Points à accumuler : 36 Points accumulés : 25 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 7  
Affichage du Buddhabrot 8 4 Pas de Buddhabrot parfait
Changement des paramètres de génération 4 1 Peu de paramétrage, rien de surprenant selon moi...
Internationalisation 3 0 Pas d'internationalisation
Efficacité de l'optimisation du générateur 4 2  
Qualité du code Maximum : 13 Total : 9  
Qualité d'un point de vue C++ 4 1.5 Respect d'un coding style. 250ms de délai ?
resizeEvent défini dans le .cpp et showEvent défini dans le .h ? Parfois séparation de l'entête du code et parfois non...
Aucun héritage commun, seulement des fonctions nommés mandelbrot() et buddhabrot(). Pas d'utilisation intelligente de l'orienté objet dans ce cas...
Qualité d'un point de vue Qt 4 3.5 GraphicsScene parent public alors que pour GraphicsView parent private ?
Bonne connaissance de Qt et de son utilisation
Gestion de la mémoire 4 3  
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 3  
Ergonomie (4) 3  
Design (4) 3  
Bonus (critères facultatifs) Maximum : +24 Total : +6  
Génération d'autres fractales (non supportées par le module) 2 1 Génération possible de Complex Map Buddhabrot, mais pas de gestion intelligente des fractales pour pouvoir en implémenter d'autres.
Documentation en suffisance 3 3 Documentation complète
Colorisation de la (des) fractale(s) 4 2  
Malus Maximum : -16 Total : -0  
Autres commentaires
Aucun plantage sur l'environnement cible (4.6.0 MinGW) cité dans le readme mais plante avec GCC au passage de la souris sur le QGraphics. Cependant, aucune indication sur la plateforme, le compilateur ou la version de Qt utilisé... Erreur de compilation sous windows avec VS2008 (4.6.2) et MinGW (4.6.0) sur une ambiguité de la fonction pow. Aucun problème sur Ubuntu GCC (4.6.1), à l'exeption de quelques warnings unused.

III-E. Juré 6

Critère Points à accumuler : 40 Points accumulés : 26 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 10  
Affichage du Buddhabrot 8 4 Buddhabrot loin de la perfection
Changement des paramètres de génération 4 1 Bof, pas grand chose
Internationalisation 3 1 Nope, rien d'utilisable mais prêt à l'être
Efficacité de l'optimisation du générateur 4 4 Avec un thread effectif, la génération prend 0.1 seconde, soit la toute première place dans mon classement par temps
Qualité du code Maximum : 13 Total : 9  
Qualité d'un point de vue C++ 4 2 Code C++ bien perfectible
Qualité d'un point de vue Qt 4 3 Bonne utilisation de Qt, pas d'erreur majeure
Gestion de la mémoire 4 3 Bonne gestion de la mémoire, pas d'erreur majeure
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 3  
Ergonomie (4) 3 On s'y retrouve sans (trop de) problèmes
Design (4) 3 Design comme j'aime !
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 1  
Multithreading (4) 1 Belle erreur (QObject::killTimers: timers cannot be stopped from another thread) dans la console ; utilisation effective d'un seul et unique thread, n'a jamais tenté le second, ni une seule autre méthode d'optimisation
Bonus (critères facultatifs) Maximum : +24 Total : +5  
Génération d'autres fractales (non supportées par le module) 1 1  
Documentation en suffisance 3 2 Suffisante, sans plus
Colorisation de la (des) fractale(s) 4 2 Simple, efficace, mais manque de sauvegarde, de paramètres prédéfinis ou d'autre chose du genre ; par contre, coloration de l'arrière plan : ça fonctionne quand ?
Malus Maximum : -16 Total : -2  
Application peu robuste -2 -2 Dès le lancement, l'application se plante quand on place le pointeur près du QGraphics

III-F. Résumé

Critère Points à accumuler : 40 Points accumulés : 22.5
Fonctionnement minimal du programme Maximum : 19 Total : 7.25
Affichage de la fractale Buddhabrot 8 3.375
Changement des paramètres de génération 4 0.75
Internationalisation 3 0.5
Efficacité de l'optimisation du générateur 4 2.625
Qualité du code Maximum : 13 Total : 8.5
Qualité d'un point de vue C++ 4 1.75
Qualité d'un point de vue Qt 4 3.25
Gestion de la mémoire 4 2.5
Documentation minimale 1 1
Interface graphique (critère optionnel) Maximum : 4 Total : 3
Ergonomie (4) 3
Design (4) 2.875
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 0.25
Multithreading (4) 0.25
Bonus (critères facultatifs) Maximum : +24 Total : +5
Génération d'autres fractales (non supportées par le module) 2 0.75
Documentation en suffisance 3 2.25
Colorisation de la (des) fractale(s) 4 2
Malus Maximum : -16 Total : -1.5
Application peu robuste -2 -1.5

IV. bobti89

IV-A. Juré 1

Critère Points à accumuler : 40 Points accumulés :
Fonctionnement minimal du programme Maximum : 19 Total : 18
Affichage de la fractale Buddhabrot 8 8
Changement des paramètres de génération 4 3
Internationalisation 3 3
Efficacité de l'optimisation du générateur 4 4
Qualité du code Maximum : 13 Total : 10
Qualité d'un point de vue C++ 4 3.5
Qualité d'un point de vue Qt 4 3
Gestion de la mémoire 4 2.5
Documentation minimale 1 1
Interface graphique (critère optionnel) Maximum : 4 Total : 4
Ergonomie (4) 4
Design (4) 2
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 3
Multithreading (4) 3
Autre méthode de rendu, de calcul (4) 2
Bonus (critères facultatifs) Maximum : +24 Total : +10
Génération d'autres fractales (supportées par le module) 1 1
Documentation en suffisance 3 3
Colorisation de la (des) fractale(s) 4 4
Surprenez-nous ! 6 2
Malus Maximum : -16 Total : 0

IV-B. Juré 4

Critère Points à accumuler : 40 Points accumulés : 47 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 18  
Affichage du Buddhabrot 8 8  
Changement des paramètres de génération 4 3  
Internationalisation 3 3 Traduction dynamique
Efficacité de l'optimisation du générateur 4 4  
Qualité du code Maximum : 13 Total : 11  
Qualité d'un point de vue C++ 4 4 Code très propre, facile à lire
Qualité d'un point de vue Qt 4 3  
Gestion de la mémoire 4 3  
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 4  
Ergonomie (4) 4 Palette et pixmap view superbes
Design (4) 2 On ne peut pas tout réussir
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 3  
Multithreading (4) 3  
Autre méthode de rendu, de calcul (4) 3  
Bonus (critères facultatifs) Maximum : +24 Total : +11  
Génération d'autres fractales (supportées par le module) 1 1  
Documentation en suffisance 3 3  
Colorisation de la (des) fractale(s) 4 4  
Surprenez-nous ! 6 3 Palette et génération OpenGl

IV-C. Juré 5

Critère Points à accumuler : 36 Points accumulés : 36.5 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 17  
Affichage du Buddhabrot 8 7  
Changement des paramètres de génération 4 3.5  
Internationalisation 3 3 Une vraie internationalisation avec changement en temps réel dans l'application, pas disponible chez les autres concurrents
Efficacité de l'optimisation du générateur 4 3.5 Gain conséquent (division par 2) avec le multithreading sur ma machine
Qualité du code Maximum : 13 Total : 9.5  
Qualité d'un point de vue C++ 4 3 Commentaires dans les 2 langues dans le code. Niveau de C++ : correct, ainsi que l'utilisation de Qt. Utilisation de règles de codage, de suffixes, etc.
Qualité d'un point de vue Qt 4 2.5  
Gestion de la mémoire 4 3  
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 3  
Ergonomie (4) 3 J'apprécie toujours la gestion de la zone de dessin à la souris (molette et clic)
Design (4) 2.5  
Bonus (critères facultatifs) Maximum : +24 Total : +7  
Génération d'autres fractales (supportées par le module) 1 1  
Documentation en suffisance 3 3  
Colorisation de la (des) fractale(s) 4 3 Possibilité de sauvegarder des palettes mais aucune par défaut
Autres commentaires
Affichage d'un message indiquant que mon PC ne gère pas les shaders (carte graphique intégrér oblige), pas de test de ce coté-là

IV-D. Juré 6

Critère Points à accumuler : 40 Points accumulés : 38.5 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 17  
Affichage du Buddhabrot 8 8  
Changement des paramètres de génération 4 3 J'aurais aimé en avoir plus (jamais satisfait !)
Internationalisation 3 3 Traductions dans le code en français : de préférence, en anglais, pour des raisons d'encodage ; mais belle traduction en live
Efficacité de l'optimisation du générateur 4 3 4 threads : 4,5s, soit la troisième position dans mon classement
Qualité du code Maximum : 13 Total : 10  
Qualité d'un point de vue C++ 4 3 Quelques commentaires en anglais au milieu de commentaires français (et quelques fautes d'orthographe, tant en anglais qu'en français, mais rien d'extrêmement grave)
pas de respect des 80 colonnes ou d'une norme plus récente, code impossible à voir en entier sur mon écran (de maximum 120 colonnes, ce qui est déjà suffisant)
Qualité d'un point de vue Qt 4 3  
Gestion de la mémoire 4 3  
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 3.5  
Ergonomie (4) 3.5 On s'y retrouve facilement, mais il manque le petit quelque chose des interfaces ergonomiques, longuement mûries et réfléchies par des professionnels aguerris
Design (4) 2 Interface moyenne, pas de recherche spéciale à ce niveau
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 3  
Multithreading (4) 3 Très bons résultats en passant d'un thread à deux
Autre méthode de rendu, de calcul (4) 2 Pour le Mandelbrot, résultats différents avec ou sans shaders.
Pas implémentés pour le Buddhabrot, bons résultats pour le Mandelbrot (1s pour 4096*4096 ; 45 secondes avec 2 threads sur le CPU) ; par contre, pas de possibilité de sauvegarde ou de chargement de fractales dans ce mode
Bonus (critères facultatifs) Maximum : +24 Total : +7  
Génération d'autres fractales (supportées par le module) 1 1  
Documentation en suffisance 3 3  
Colorisation de la (des) fractale(s) 4 3 Pas de palettes par défaut
Malus Maximum : -16 Total : -2  
Application peu robuste -2 -2 Plante *délibérément* lorsqu'il n'y a pas assez de mémoire disponible, j'aurais préféré un traitement adapté pour éviter ce plantage
Parfois, génère une image et ne l'affiche pas, pas de possibilité d'export ou de sauvegarde
Autres commentaires
Organisation générale : un projet VS, pas de solution ; deux parties bien distinctes dans l'application, j'aurais aimé les voir séparées dans les projets (une solution avec deux projets, par exemple)

IV-E. Résumé

Critère Points à accumuler : 40 Total : 42.5
Fonctionnement minimal du programme Maximum : 19 17.5
Affichage de la fractale Buddhabrot 8 7.75
Changement des paramètres de génération 4 3.125
Internationalisation 3 3
Efficacité de l'optimisation du générateur 4 3.625
Qualité du code Maximum : 13 10.125
Qualité d'un point de vue C++ 4 3.375
Qualité d'un point de vue Qt 4 2.875
Gestion de la mémoire 4 2.875
Documentation minimale 1 1
Interface graphique (critère optionnel) Maximum : 4 3.625
Ergonomie (4) 3.625
Design (4) 2.125
Optimisation du générateur (critère optionnel) Maximum : 4 3
Multithreading (4) 3
Autre méthode de rendu, de calcul (4) 2.33
Bonus (critères facultatifs) Maximum : +24 +8.75
Génération d'autres fractales (supportées par le module) 1 1
Documentation en suffisance 3 3
Colorisation de la (des) fractale(s) 4 3.5
Surprenez-nous ! 6 1.25
Malus Maximum : -16  
Application peu robuste -2 -0.5

V. CameleonTH

V-A. Juré 1

Critère Points à accumuler : 40 Points accumulés :
Fonctionnement minimal du programme Maximum : 19 Total : 15.5
Affichage de la fractale Buddhabrot 8 8
Changement des paramètres de génération 4 3
Internationalisation 3 2
Efficacité de l'optimisation du générateur 4 2.5
Qualité du code Maximum : 13 Total : 7.5
Qualité d'un point de vue C++ 4 2
Qualité d'un point de vue Qt 4 3
Gestion de la mémoire 4 2.5
Documentation minimale 1 0
Interface graphique (critère optionnel) Maximum : 4 Total : 3
Ergonomie (4) 3
Design (4) 2
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 2.5
Multithreading (4) 2.5
Autre méthode de rendu, de calcul (4) 2.5
Bonus (critères facultatifs) Maximum : +24 Total : +10.5
Génération d'autres fractales (supportées par le module) 1 1
Animation de la génération 4 4
Colorisation de la (des) fractale(s) 4 2.5
Changement des paramètres en temps réel 4 1
Surprenez-nous ! 6 2
Malus Maximum : -16 Total : -1
Application peu robuste -2 -1

V-B. Juré 4

Critère Points à accumuler : 40 Points accumulés : 41 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 16  
Affichage du Buddhabrot 8 8  
Changement des paramètres de génération 4 3  
Internationalisation 3 2  
Efficacité de l'optimisation du générateur 4 3  
Qualité du code Maximum : 13 Total : 9  
Qualité d'un point de vue C++ 4 3 Fonction de 100 000 lignes, beaucoup de pointeurs membres, il semble qu'il manque un gros découpage en classes
Qualité d'un point de vue Qt 4 3  
Gestion de la mémoire 4 3  
Documentation minimale 1 0  
Interface graphique (critère optionnel) Maximum : 4 Total : 3  
Ergonomie (4) 3  
Design (4) 2  
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 3  
Multithreading (4) 2.5 Beaucoup de problèmes de mutex. En debug, un message d'erreur Windows à cause des mutex à chaque coup.
Autre méthode de rendu, de calcul (4) 3  
Bonus (critères facultatifs) Maximum : +24 Total : +11  
Génération d'autres fractales (supportées par le module) 1 1  
Animation de la génération 4 4 Super !
Colorisation de la (des) fractale(s) 4 2 Dommage que la coloration n'est pas mise à jour avec la palette
Changement des paramètres en temps réel 4 1  
Surprenez-nous ! 6 3  
Malus Maximum : -16 Total : -1  
Application peu robuste -2 -1  

V-C. Juré 5

Critère Points à accumuler : 36 Points accumulés : 34 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 16.5  
Affichage du Buddhabrot 8 8  
Changement des paramètres de génération 4 3.5  
Internationalisation 3 2 Internationalisation de l'application mais le menu permettant de changer de langue ne fonctionne pas
Efficacité de l'optimisation du générateur 4 3 Fractale OpenGL disponible mais impossible à utiliser malgré des tests dans le code
Qualité du code Maximum : 13 Total : 7  
Qualité d'un point de vue C++ 4 2 Du code commenté… Le projet ne semble pas finalisé.
Pas d'orienté objet pour les fractales, des simples fonctions, pas d'ajout facile prévu.
Qualité d'un point de vue Qt 4 3  
Gestion de la mémoire 4 2  
Documentation minimale 1 0 Pas de documentation
Interface graphique (critère optionnel) Maximum : 4 Total : 3  
Ergonomie (4) 3  
Design (4) 2  
Bonus (critères facultatifs) Maximum : +24 Total : +8  
Génération d'autres fractales (supportées par le module) 1 1  
Animation de la génération 4 4 Très belle animation du Buddhabrot
Colorisation de la (des) fractale(s) 4 3  
Malus Maximum : -16 Total : -0.5  
Avertissements -1 -0.5 Petit warning à l'execution : QWidget::setLayout: Attempting to set QLayout "" on MainWindow "MainWindow", which already has a layout. Du QImage::pixel: coordinate (16384,0) out of range à tout va
Autres commentaires
Pas de crash chez moi malgré les problèmes soulevés dans le Readme

V-D. Juré 6

Critère Points à accumuler : 40 Points accumulés : 35 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 14.5  
Affichage du Buddhabrot 8 8  
Changement des paramètres de génération 4 3  
Internationalisation 3 2 Ça fonctionne, mais des fautes dans le français... J'aurais aussi aimé la sauvegarde de la langue quand l'application quitte ou se crashe
Efficacité de l'optimisation du générateur 4 1.5 2 threads et 104 secondes, ça donne 5e
Qualité du code Maximum : 13 Total : 7  
Qualité d'un point de vue C++ 4 2 Ça choque dès qu'on ouvre un fichier : inconsistent indent!
Commentaires dans le code : si on cherche, on trouve !
Liste d'initalisations : j'aurais préféré la voir continuée autant que possible, plutôt que de mettre du code dans le bloc quand il pouvait être mis autre part (et ne me dis pas que tu n'aimes pas ces listes, tu as bien mis du QObject(parent) dedans !). Un peu de cohérence.
Qualité d'un point de vue Qt 4 3  
Gestion de la mémoire 4 2  
Documentation minimale 1 0 La doc, ce n'est pas seulement des commentaires un tout petit peu adaptés dans le code, c'est aussi en dehors du code : on doit pouvoir comprendre ce qu'il fait sans jamais ouvrir un HPP ou un CPP
Interface graphique (critère optionnel) Maximum : 4 Total : 3  
Ergonomie (4) 3 On retrouve facilement ses jeunes, mais ça ne fonctionne pas tout seul, notamment pour l'OpenGL : j'ai cherché l'option pour en activer le rendu, pas une option différente dans la liste
Design (4) 2 Très moyen
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 3  
Multithreading (4) 3  
Autre méthode de rendu, de calcul (4) 3 Si on commence à demander vraiment quelque chose de consistent à la génération OpenGL, ça crashe le driver... mais j'en demandais beaucoup !
Bonus (critères facultatifs) Maximum : +24 Total : +8  
Génération d'autres fractales (supportées par le module) 1 1  
Animation de la génération 4 4  
Colorisation de la (des) fractale(s) 4 3 J'adore, mais j'aurais aimé, comme toujours, des colorations prédéfinies et aléatoires
Malus Maximum : -16 Total : -0.5  
Application peu robuste -2 -0.5  

V-E. Résumé

Critère Points à accumuler : 40 Total : 37.374
Fonctionnement minimal du programme Maximum : 19 15.625
Affichage de la fractale Buddhabrot 8 8
Changement des paramètres de génération 4 3.125
Internationalisation 3 2
Efficacité de l'optimisation du générateur 4 2.5
Qualité du code Maximum : 13 7.625
Qualité d'un point de vue C++ 4 2.25
Qualité d'un point de vue Qt 4 3
Gestion de la mémoire 4 2.375
Documentation minimale 1 0
Interface graphique (critère optionnel) Maximum : 4 3
Ergonomie (4) 3
Design (4) 2
Optimisation du générateur (critère optionnel) Maximum : 4 2.833
Multithreading (4) 2.663
Autre méthode de rendu, de calcul (4) 2.833
Bonus (critères facultatifs) Maximum : +24 +9.041
Génération d'autres fractales (supportées par le module) 1 1
Animation de la génération 4 4
Colorisation de la (des) fractale(s) 4 2.625
Changement des paramètres en temps réel 4 0.5
Surprenez-nous ! 6 1.666
Malus Maximum : -16 -0.75
Application peu robuste -2 -0.625
Avertissements à la compilation (sauf si justification dans le README) -1 -0.125

VI. khayyam90

VI-A. Juré 1

Critère Points à accumuler : 40 Points accumulés :
Fonctionnement minimal du programme Maximum : 19 Total : 14
Affichage de la fractale Buddhabrot 8 6
Changement des paramètres de génération 4 3
Internationalisation 3 2
Efficacité de l'optimisation du générateur 4 3
Qualité du code Maximum : 13 Total : 7.5
Qualité d'un point de vue C++ 4 2
Qualité d'un point de vue Qt 4 3
Gestion de la mémoire 4 2
Documentation minimale 1 0.5
Interface graphique (critère optionnel) Maximum : 4 Total : 3
Ergonomie (4) 3
Design (4) 2
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 2
Multithreading (4) 1
Autre type d'optimisation (4) 2
Bonus (critères facultatifs) Maximum : +24 Total : +9
Génération d'autres fractales (supportées par le module) 1 1
Génération d'autres fractales (non supportées par le module) 2 2
Colorisation de la (des) fractale(s) 4 2
Surprenez-nous ! 6 4
Malus Maximum : -16 Total : -3
Application peu robuste -2 -1
Application semblant plantée -2 -2
Commentaires
Dommage pour le multithreading peu robuste, car sinon le projet est assez sympa. Quelques regrets pour la documentation améliorable. Mais on a pas mal de features sympas en contrepartie.

VI-B. Juré 2

Critère Points à accumuler : 17 Points accumulés : 8 Commentaires
Fonctionnement minimal du programme Maximum : 3 Total : 2  
Internationalisation 3 2 Certains tr() manquent à l'appel : fractalType->addItem("Bateau en feu", 6);
Qualité du code Maximum : 9 Total : 5  
Qualité d'un point de vue C++ 4 2 Certains nom de classes commencent par une majuscule (comme App), d'autres par une minuscule (julia, fractale, etc.).
Aucune convention, style random.
bizarrerie dans le code : ~ZoomableImage(){};, pointeurs vers des classes implicitely shared, etc.
Il y a de sérieux problèmes d'encapsulation
Qualité d'un point de vue Qt 4 3 statusBarLabel->setText(""); devrait utiliser QString() pour éviter de passer par l'encodage
Documentation minimale 1 0

Documentation peu pertinente. Exemple :

 
Sélectionnez
/*!
 * \brief Constructeur.
 * vide la mémoire
 */
App::~App()

Constructeur aurait dû être Destructeur (inutile de le préciser de toute façon), "vide la mémoire" est une information inutile. Dans ce cas-ci, aucune documentation aurait été une bonne option.

Optimisation du générateur (critère optionnel) Maximum : 4 Total : 2  
Multithreading (4) 2  
Calcul distribué (4) 0  
Autre type d'optimisation (4) 2  
Malus Maximum : -16 Total : -1  
Fichiers inutiles dans l'archive -1 -1  
Autres commentaires
L'auteur devrait contribuer à un projet avec peer review (WebKit, Qt...). Le code n'est pas mauvais en soi mais manque de structure et de sérieux.

VI-C. Juré 4

Critère Points à accumuler : 36 Points accumulés : 32 Commentaires
Fonctionnement minimal du programme Maximum : 15 Total : 12  
Affichage du Buddhabrot 8 6  
Changement des paramètres de génération 4 3  
Internationalisation 3 3  
Qualité du code Maximum : 13 Total : 8  
Qualité d'un point de vue C++ 4 3  
Qualité d'un point de vue Qt 4 3  
Gestion de la mémoire 4 2
Gros problèmes :
  • Un tableau de tableau comme buffer image utilisé dans les tilers ;
  • Des new sur QImage...
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 3  
Ergonomie (4) 3  
Design (4) 2  
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 2  
Multithreading (4) 0
Multithreading faux :
  • Utilise run au lieu de start ;
  • Trop de traitement inutile dans le mode animation, d'où une IHM quasi figée et blocage de plusieurs secondes à la fin de la génération ;
  • Si on remplace les run par start, blocage de la boucle d'évènements par un wait ;
  • J'ai eu des problème de lock (un unlock par un thread qui n'a pas fait le lock :koi:) : QMutexLocker serait plus adpaté.
Calcul distribué (4) Trop de problèmes  
Autre type d'optimisation (4) 2  
Bonus (critères facultatifs) Maximum : +24 Total : +10  
Génération d'autres fractales (supportées par le module) 1 1  
Génération d'autres fractales (non supportées par le module) 2 2  
Animation de la génération 4 0
Grosses bogues :
  • Dans void ImageCalculator::sumImagesIntoDestination(), il y a destruction des tilers en cours, alors que la génération est en cours ;
  • Il y a une erreur dans le nombre de threads créés si on ajoute des networkAdresses.
Colorisation de la (des) fractale(s) 4 2 Lorsque l'on utilise une palette scriptée, il y a un temps d'attente à la fin de la colorisation : bug de Qt
Surprenez-nous ! 6 5  
Malus Maximum : -16 Total : -3  
Application peu robuste -2 -1  
Application semblant plantée -2 -2  
Autres commentaires
Erreur d'affichage lors des zoom :
  • À cause des approximations liées au flottants, il faut mettre le point de départ au centre du pixel ;
  • Problème sur la ligne des réels (peut se retrouver doublé en valeur) et sur les symétries (il manque parfois des morceau d'image).

VI-D. Juré 5

Critère Points à accumuler : 36 Points accumulés : 35.5 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 14  
Affichage du Buddhabrot 8 7  
Changement des paramètres de génération 4 3  
Internationalisation 3 2 Internationalisation bonne mais pas possible de choisir, obligé de mettre le fichier de traduction dans le répertoire d'exécution.
Efficacité de l'optimisation du générateur 4 2  
Qualité du code Maximum : 13 Total : 8.5  
Qualité d'un point de vue C++ 4 3 Plusieurs problèmes dans le C++.
Qualité d'un point de vue Qt 4 3 Des erreurs lors de générations : QObject::connect: Incompatible sender/receiver arguments. Utilisation de Qt très correcte pour un débutant !
Gestion de la mémoire 4 2  
Documentation minimale 1 0.5  
Interface graphique (critère optionnel) Maximum : 4 Total : 2  
Ergonomie (4) 2 En tout cas -1 pour l'ergonomie.
Design (4) 2  
Bonus (critères facultatifs) Maximum : +24 Total : +11  
Génération d'autres fractales (supportées par le module) 1 1 Génération de plusieurs fractales et possibilité d'ajouter ses propres fractales avec un plug-in
Génération d'autres fractales (non supportées par le module) 2 2  
Documentation en suffisance 3 1 Un début de documentation mais incomplète à mon goût. Beaucoup trop de fonctions non documentées. Ici, résumé en début de documentation et images.
Animation de la génération 4 1 Plantage lors de l'animation d'une génération.
Colorisation de la (des) fractale(s) 4 2 J'ai pas trouvé comment utiliser les palettes scriptées mais j'ai peut être craqué.
Surprenez-nous ! 6 4 Utilisation de la 3D.
Malus Maximum : -16 Total :  
Application peu robuste -2 -1  
Application semblant plantée -2 -2  
Fichiers inutiles dans l'archive -1 0 Répertoires Debug and Release vides non nécessaires dans l'archive mais pas de malus pour si peu.

VI-E. Juré 6

Critère Points à accumuler : 40 Points accumulés : 37.5 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 15.5  
Affichage du Buddhabrot 8 7  
Changement des paramètres de génération 4 3 Un peu léger, mais suffisant
Internationalisation 3 2 Quelques tr manquant
Efficacité de l'optimisation du générateur 4 3.5 Deux secondes de génération, deuxième dans mon classement
Qualité du code Maximum : 13 Total : 8  
Qualité d'un point de vue C++ 4 2 Coding rules? None! Fichiers avec majuscules, sans majuscules, classes idem, pas de style tout au long du dev ; parfois illisible : Networkimagetiler.cpp, que vient foutre là cette parenthèse ?
Qualité d'un point de vue Qt 4 3  
Gestion de la mémoire 4 2  
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 3  
Ergonomie (4) 3  
Design (4) 2  
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 3 (Pas la meilleure cote, vu que 3 types d'optimisation achevés)
Multithreading (4) 1 L'application n'utilise qu'un seul et unique thread pour ses calculs !
Calcul distribué (4) 2 Bons résultats, même si je n'ai pas plusieurs machines suffisamment puissantes pour pouvoir dire de tester correctement. Du PHP ? Un peu étonnant pour lancer ce genre de calcul (pas que le choix est mauvais, juste étonnant : j'aurais plutôt attendu Python, Perl... sûrement une habitude !)
Autre type d'optimisation (4) 2  
Bonus (critères facultatifs) Maximum : +24 Total : +11  
Génération d'autres fractales (supportées par le module) 1 1  
Génération d'autres fractales (non supportées par le module) 2 2 Dont fractales 3D
Documentation en suffisance 3 1 C'est si dur, de mettre la langue dans Doxygen ? Beaucoup de répétitions dans les descriptions des fonctions : permet de... permet de... permet de.... Je sais bien que ce n'est pas de la littérature, mais quand même, ça doit donner un tout petit peu une toute petite envie minuscule d'un jour oser pointer le bout de son nez jusque là sans vouloir courir à trois kilomètres ! (Voir à ce sujet la documentation de Qt, pas un modèle de littérature mais bien de répétition quand on n'a pas le choix : ici, on supprime le verbe et c'est plus léger).
Animation de la génération 4 1  
Colorisation de la (des) fractale(s) 4 2 C'est bien de mettre de la coloration automatique... Deux problèmes : un, ça plante avant la fin de la génération si on l'utilise ; deux, bien pire, on ne peut la voir que quand on a déjà demandé une génération. Uniquement par scripts, pas de possibilité d'en créer depuis l'application puis d'exporter en JavaScript (remarque inverse de l'habitude sur ce point !).
Surprenez-nous ! 6 4 Enregistrement auto, +2 seulement car 2 images enregistrées en tout (coloration et normal). Dont fractales 3D.
Malus Maximum : -16 Total : -3  
Application peu robuste -2 -1  
Application semblant plantée -2 -2 Quand on demande quelque chose de vraiment important, la fenêtre blanchit... quelque chose que Vista/Seven n'apprécient pas : pas de réponse de l'application !

VI-F. Résumé

Critère Points à accumuler : 40 Total : 34.33
Fonctionnement minimal du programme Maximum : 19 14.58
Affichage de la fractale Buddhabrot 8 6.5
Changement des paramètres de génération 4 3
Internationalisation 3 2.25
Efficacité de l'optimisation du générateur 4 2.83
Qualité du code Maximum : 13 8
Qualité d'un point de vue C++ 4 2.5
Qualité d'un point de vue Qt 4 2.75
Gestion de la mémoire 4 2
Documentation minimale 1 0.75
Interface graphique (critère optionnel) Maximum : 4 2.75
Ergonomie (4) 2.75
Design (4) 2
Optimisation du générateur (critère optionnel) Maximum : 4 2
Multithreading (4) 0.66
Calcul distribué (4) 1
Autre type d'optimisation (4) 2
Bonus (critères facultatifs) Maximum : +24 10.25
Génération d'autres fractales (supportées par le module) 1 1
Génération d'autres fractales (non supportées par le module) 2 2
Documentation en suffisance 3 0.5
Animation de la génération 4 0.5
Colorisation de la (des) fractale(s) 4 2
Surprenez-nous ! 6 4.25
Malus Maximum : -16 -3.25
Application peu robuste -2 -1
Application semblant plantée -2 -2
Fichiers inutiles dans l'archive -1 -0.25

VII. knopix77

VII-A. Juré 1

Critère Points à accumuler : 40 Points accumulés :
Fonctionnement minimal du programme Maximum : 19 Total : 11
Affichage de la fractale Buddhabrot 8 5
Changement des paramètres de génération 4 3
Internationalisation 3 1.5
Efficacité de l'optimisation du générateur 4 1.5
Qualité du code Maximum : 13 Total : 8
Qualité d'un point de vue C++ 4 2
Qualité d'un point de vue Qt 4 3
Gestion de la mémoire 4 2
Documentation minimale 1 1
Interface graphique (critère optionnel) Maximum : 4 Total : 2.5
Ergonomie (4) 2.5
Design (4) 2.5
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 2.5
Multithreading (4) 2.5
Bonus (critères facultatifs) Maximum : +24 Total : +12
Génération d'autres fractales (supportées par le module) 1 1
Génération d'autres fractales (non supportées par le module) 2 2
Documentation en suffisance 3 2
Animation de la génération 4 3
Colorisation de la (des) fractale(s) 4  
Changement des paramètres en temps réel 4 1
Surprenez-nous ! 6 1
Malus Maximum : -16 Total : -1
Avertissements à la compilation (sauf si justification dans le README) -1 -1
Autres commentaires
Il y a quelques choses à redire mais, globalement, c'est une proposition intéressante bien que le tout manque d'expérience (on n'utilise pas _foo pour les noms, la robustesse est améliorable, etc., mais, à côté de ça, on est content de voir une feature comme le changement de couleur en live).

VII-B. Juré 4

Critère Points à accumuler : 40 Points accumulés : 38.5 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 12.5  
Affichage du Buddhabrot 8 6  
Changement des paramètres de génération 4 3  
Internationalisation 3 1.5  
Efficacité de l'optimisation du générateur 4 2  
Qualité du code Maximum : 13 Total : 9.5  
Qualité d'un point de vue C++ 4 3 Utilisation de _ pour nommer les membres. Seulement, c'est réservé au compilateur.
Qualité d'un point de vue Qt 4 3 Utilisation d'un timer pour la mise à jour de l'image en cours de génération. Dommage que l'on ne peut pas modifier le temps.
Gestion de la mémoire 4 2.5  
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 3  
Ergonomie (4) 3 Simple mais efficace
Design (4) 2.5  
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 2.5  
Multithreading (4) 2.5 Très bonne idée mais beaucoup beacoup trop de verrous pour modifier l'image... La liste de points de départ est immense ! Un découpage par zone d'image aurait été beaucoup plus adapté.
Une fois la génération terminée, on part dans une boucle qui détruit de la mémoire longtemps. Je n'ai pas compris à quoi cela correspond. Peut être un truc lié à QtConcurrent (ressemble à la bogue de QtScript).
Bonus (critères facultatifs) Maximum : +24 Total : +11  
Génération d'autres fractales (supportées par le module) 1 1  
Génération d'autres fractales (non supportées par le module) 2 1  
Documentation en suffisance 2 2  
Animation de la génération 4 3  
Colorisation de la (des) fractale(s) 4 2  

VII-C. Juré 5

Critère Points à accumuler : 36 Points accumulés : 33.5 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 11.5  
Affichage du Buddhabrot 8 5  
Changement des paramètres de génération 4 3  
Internationalisation 3 1.5 Internationalisation possible mais aucune de faite. Aucun moyen de charger une autre langue, etc.
Efficacité de l'optimisation du générateur 4 2  
Qualité du code Maximum : 13 Total : 9  
Qualité d'un point de vue C++ 4 3 Utilisation des threads et du design pattern Factory. Code C++ et Qt globalement correct.
Qualité d'un point de vue Qt 4 3
Gestion de la mémoire 4 2  
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 2  
Ergonomie (4) 2  
Design (4) 2  
Bonus (critères facultatifs) Maximum : +24 Total : +12  
Génération d'autres fractales (supportées par le module) 1 1  
Génération d'autres fractales (non supportées par le module) 2 2  
Documentation en suffisance 3 2 Documentation très correcte.
Animation de la génération 4 3  
Colorisation de la (des) fractale(s) 4 1 Certaines colorisation ne fonctionnent pas : image noire ou pas la bonne fractale. +1 pour changement de la couleur en temps réel, autres paramètres bloqués.
Changement des paramètres en temps réel 4 1  
Surprenez-nous ! 6 2 +1 : garder les générations dans des onglets.
Malus Maximum : -16 Total : -1  
Avertissements -1 -1 Manque la plateforme et la version de Qt utilisé pour la compilation dans le Readme. Avertissements à la compilation sous Windows avec VS2008 et Qt 4.6.2. -1 car plateformes supportées non indiquées.

VII-D. Juré 6

Critère Points à accumuler : 40 Points accumulés : 34 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 11.5  
Affichage du Buddhabrot 8 6  
Changement des paramètres de génération 4 3  
Internationalisation 3 1.5 _drawHere = tr("Dessiner ici");... Pourquoi passer par des variables ? Tu peux directement mettre le tr dans l'appel de fonction.
Efficacité de l'optimisation du générateur 4 1 Sixième avec 113 secondes
Qualité du code Maximum : 13 Total : 9  
Qualité d'un point de vue C++ 4 3  
Qualité d'un point de vue Qt 4 3  
Gestion de la mémoire 4 2  
Documentation minimale 1 1 Problèmes d'encodage, présence de classes fantômes, un peu de texte n'aurait pas fait de mal dois-je dire
Interface graphique (critère optionnel) Maximum : 4 Total : 2.5  
Ergonomie (4) 2.5 Pas de travail énorme, on s'y retrouve, mais des efforts d'organisation auraient pu être faits
Design (4) 2 Pas vraiment d'effort, un design simple
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 2  
Multithreading (4) 2 Je me demande ce que ça aurait fait sans... Réponse : bien pire ! (Enfin, le MT a apporté le gain espéré)
Bonus (critères facultatifs) Maximum : +24 Total : +11  
Génération d'autres fractales (supportées par le module) 1 1  
Génération d'autres fractales (non supportées par le module) 2 2  
Animation de la génération 4 3 Problèmes de rafraîchissement
Colorisation de la (des) fractale(s) 4 3 En temps réel : nickel ! mais seulement les built-in...
Surprenez-nous ! 6 2  
Malus Maximum : -16 Total : -2  
Application peu robuste -2 -1 Tentative d'arrêt de la génération == gel de l'application, elle n'en sortira pas...
Avertissements -1 -1 Dès le début : une pelletée de warnings (23, sans demander d'en sortir trop...)

VII-E. Résumé

Critère Points à accumuler : 40 Total : 33.58
Fonctionnement minimal du programme Maximum : 19 11.625
Affichage de la fractale Buddhabrot 8 5.5
Changement des paramètres de génération 4 3
Internationalisation 3 1.5
Efficacité de l'optimisation du générateur 4 1.625
Qualité du code Maximum : 13 8.875
Qualité d'un point de vue C++ 4 2.75
Qualité d'un point de vue Qt 4 3
Gestion de la mémoire 4 2.125
Documentation minimale 1 1
Interface graphique (critère optionnel) Maximum : 4 2.5
Ergonomie (4) 2.5
Design (4) 2.25
Optimisation du générateur (critère optionnel) Maximum : 4 2.333
Multithreading (4) 2.333
Bonus (critères facultatifs) Maximum : +24 +9.25
Génération d'autres fractales (supportées par le module) 1 1
Génération d'autres fractales (non supportées par le module) 2 1.75
Documentation en suffisance 3 1.5
Animation de la génération 4 3
Colorisation de la (des) fractale(s) 4 2
Changement des paramètres en temps réel 4 0.75
Surprenez-nous ! 6 1.25
Malus Maximum : -16 -1
Application peu robuste -2 -0.25
Avertissements à la compilation (sauf si justification dans le README) -1 -0.75

VIII. LittleWhite

VIII-A. Juré 1

Critère Points à accumuler : 40 Points accumulés :
Fonctionnement minimal du programme Maximum : 19 Total : 12.5
Affichage de la fractale Buddhabrot 8 5
Changement des paramètres de génération 4 3
Internationalisation 3 2.5
Efficacité de l'optimisation du générateur 4 2
Qualité du code Maximum : 13 Total : 7.5
Qualité d'un point de vue C++ 4 1.5
Qualité d'un point de vue Qt 4 2
Gestion de la mémoire 4 3
Documentation minimale 1 1
Interface graphique (critère optionnel) Maximum : 4 Total : 2
Ergonomie (4) 2
Design (4) 2
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 2.5
Multithreading (4) 2.5
Bonus (critères facultatifs) Maximum : +24 Total : +7
Génération d'autres fractales (supportées par le module) 1 1
Documentation en suffisance 3 2
Colorisation de la (des) fractale(s) 4 3
Surprenez-nous ! 6 1
Malus Maximum : -16 Total : -3
Application peu robuste -2 -0.5
Application semblant plantée -2 -0.5
Erreurs à la compilation -2 -1
Avertissements à la compilation (sauf si justification dans le README) -1 -1

VIII-B. Juré 4

Critère Points à accumuler : 40 Points accumulés : 31.5 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 12  
Affichage du Buddhabrot 8 4 Bug sur la séquence aléatoire : trop de points (temps de génération encore très long avec la correction du wait). Dommage.
Changement des paramètres de génération 4 3 On ne peut pas modifier le nombre de points aléatoires.
Internationalisation 3 3 Il y a ce qu'il faut pour traduire. Version anglaise et française. Dommage qu'il n'y ait pas la possibilité de modifier dynamiquement la langue, de la choisir nous-mêmes.
Efficacité de l'optimisation du générateur 4 2  
Qualité du code Maximum : 13 Total : 8.5  
Qualité d'un point de vue C++ 4 2 Beaucoup de new et de delete là où il aurait pu avoir smart pointer. Beaucoup d'influence C mais code correct. Parfois, les infos sont un peu trop dispersées : une énumération pour les fractale et un tableau contenant les infos de la fractale (taille dépendant de l'énumération)
Qualité d'un point de vue Qt 4 2.5 Plusieurs manques mais, dans l'ensemble, il y a une recherche de compréhension et une bonne utilisation. Dommage de ne pas avoir utilisé qDebug() au lieu de std::cout et de faire des déconnections inutiles (faites avec la destruction de la classe). La progress bar fait des choses bizzares parfois...
Gestion de la mémoire 4 3  
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 3  
Ergonomie (4) 2.5 Sobre mais difficile de trouver comment générer un Buddhabrot. Ok ne fait pas Appliquer. L'affichage des images et le zoom sont super.
Design (4) 3 Simple, donne l'impression que c'est facile à utiliser
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 2.5  
Multithreading (4) 2.5 Utilisation du multithreading mais manière d'attendre la fin d'un thread fausse. Il faut utiliser wait... Consome tout le CPU pour rien et les perfs sont mauvaises. Par contre, bonne architecture multithread.
Bonus (critères facultatifs) Maximum : +24 Total : +6  
Génération d'autres fractales (supportées par le module) 1 1  
Documentation en suffisance 3 2 Effort pour la faire en suffisance
Colorisation de la (des) fractale(s) 4 3 Coloration très variée, de petites choses simples pour personnaliser la LUT
Malus Maximum : -16 Total : -0.5  
Application semblant plantée -2 -0.5 Parfois, on ne sait pas trop ce qui se passe (problème de wait non utilisé), en particulier la progressbar (calcul du pourcentage faux).
Autres commentaires
La version utilisée du compilateur et de Qt sont dans le répertoire documentation

VIII-C. Juré 5

Critère Points à accumuler : 36 Points accumulés : 28.5 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 13.5  
Affichage du Buddhabrot 8 6  
Changement des paramètres de génération 4 3  
Internationalisation 3 2.5 Internationalisation en place mais aucun moyen de changer en temps réel dans l'application : dommage !
Efficacité de l'optimisation du générateur 4 2  
Qualité du code Maximum : 13 Total : 9  
Qualité d'un point de vue C++ 4 2
Les 2 premières lignes sont intéressantes mais l'utilité m'échappe :
Sélectionnez
int* p = 0; delete p;

Beaucoup d'utilisation des pointeurs où ce n'est pas toujours nécessaire, proche du C.

Qualité d'un point de vue Qt 4 3 Barre de progression mal pensée, pas du tout uniforme dans le temps. Lente au début et très rapide à partir d'une trentaine de pourcents... Pas de grosse lacune, code globalement bon, bien que certaines parties ne soient pas toujours utiles, je pense notamment au disconnect.
Gestion de la mémoire 4 3  
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 2.5  
Ergonomie (4) 2.5 Rien de surprenant par rapport aux consignes de bases. Ergonomie très moyenne, uniquement l'utilisation des onglets est un plus. Design tout ce qu'il y a de plus basique, aucune effort de recherche et pas moyen rapide de faire une fractale, obliger de passer par un menu et une pop up. Rien de surprenant ou d'innovant...
Design (4) 1.5
Bonus (critères facultatifs) Maximum : +24 Total : +6.5  
Génération d'autres fractales (supportées par le module) 1 1  
Documentation en suffisance 3 2.5  
Colorisation de la (des) fractale(s) 4 3  
Surprenez-nous ! 6 0  
Malus Maximum : -16 Total : -3  
Erreurs à la compilation -2 -2 Erreur de compilation sur la ligne 78 du fichier types.hpp : const curveDefaultValues curveFCTString[lgfctENDOFLIST], nécessité de remplacer lgfctENDOFLIST par lcfctENDOFLIST
Avertissements -1 -1  

VIII-D. Juré 6

Critère Points à accumuler : 40 Points accumulés : 31.5 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 12  
Affichage du Buddhabrot 8 5 Ça marche pô, en points aléatoires (ça reste quelques minutes à 0…), problème le long des réels dans l'autre mode
Changement des paramètres de génération 4 3 Plus que suffisant, mais il faut trouver comment faire le bouddha… un peu austère, tout ça !
Internationalisation 3 2 Pas toutes les chaînes traduites
Efficacité de l'optimisation du générateur 4 2 2 threads pour 18 secondes, ça fait cinquième si mes calculs sont exacts
Qualité du code Maximum : 13 Total : 8  
Qualité d'un point de vue C++ 4 2 Ancien C-fan ?
Qualité d'un point de vue Qt 4 2 Un peu de documentation sur ce que tu fais de ta qprogressbar, ce n'aurait pas été du luxe : ça monte, ça redescend… oh, ça remonte ! Oh, c'est fini, mais ça m'en génère trois ! Oh, ça passe de 10% à fini !
Gestion de la mémoire 4 3  
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 3  
Ergonomie (4) 3 On s'y retrouve assez, malgré l'absence d'option directe buddha
Design (4) 2 Boh, une application normale, quoi : pas d'excès, juste ce qu'il faut, sans donner d'impression d'usine à gaz ou de truc qui tombe du ciel
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 3  
Multithreading (4) 3 Ça apporte les gains espérés, aux alentours de 45%
Bonus (critères facultatifs) Maximum : +24 Total : +8  
Génération d'autres fractales (supportées par le module) 1 1  
Documentation en suffisance 3 2 Mettre doxygen en français quand la doc est en français, c'est pas dur, mais ça donne bien mieux ; un constructeur avec et sans paramètres a la même description !
Colorisation de la (des) fractale(s) 4 3 Tiens, des paramètres prédéfinis, des aléatoires, des personnalisés… mais pas de palette perso, juste une couleur
Surprenez-nous ! 6 2 Fractales en onglet : bonne idée, ça permet de les garder !
Malus Maximum : -16 Total : -2.5  
Application peu robuste -2 -0.5  
Erreurs à la compilation -2 -1 Corrections à apporter au code avant compilation
Avertissements -1 -1 Avertissements dès la compilation : ../Fractale/GAccumulateur.hpp(46) : warning C4099: 'Fractale::GAccumulateur' : type name first seen using 'class' now seen using 'struct'
calculation\CFractale.hpp(38) : see declaration of 'Fractale::GAccumulateur'

VIII-E. Résumé

Critère Points à accumuler : 40 Total : 30.535
Fonctionnement minimal du programme Maximum : 19 12.5
Affichage de la fractale Buddhabrot 8 5
Changement des paramètres de génération 4 3
Internationalisation 3 2.5
Efficacité de l'optimisation du générateur 4 2
Qualité du code Maximum : 13 8.375
Qualité d'un point de vue C++ 4 1.875
Qualité d'un point de vue Qt 4 2.5
Gestion de la mémoire 4 3
Documentation minimale 1 1
Interface graphique (critère optionnel) Maximum : 4 2.5
Ergonomie (4) 2.5
Design (4) 2.125
Optimisation du générateur (critère optionnel) Maximum : 4 2.66
Multithreading (4) 2.66
Bonus (critères facultatifs) Maximum : +24 +6.875
Génération d'autres fractales (supportées par le module) 1 1
Documentation en suffisance 3 2.125
Colorisation de la (des) fractale(s) 4 3
Surprenez-nous ! 6 0.75
Malus Maximum : -16 -2.375
Application peu robuste -2 -0.25
Application semblant plantée -2 -0.25
Erreurs à la compilation -2 -1
Avertissements à la compilation (sauf si justification dans le README) -1 -0.875

IX. Z3vil

IX-A. Juré 1

Critère Points à accumuler : 40 Points accumulés :
Fonctionnement minimal du programme Maximum : 19 Total : 12
Affichage de la fractale Buddhabrot 8 6
Changement des paramètres de génération 4 3
Internationalisation 3 2
Efficacité de l'optimisation du générateur 4 1
Qualité du code Maximum : 13 Total : 9
Qualité d'un point de vue C++ 4 2.5
Qualité d'un point de vue Qt 4 3
Gestion de la mémoire 4 2.5
Documentation minimale 1 1
Interface graphique (critère optionnel) Maximum : 4 Total : 3
Ergonomie (4) 3
Design (4) 2
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 2
Multithreading (4) 2
Bonus (critères facultatifs) Maximum : +24 Total : +9
Génération d'autres fractales (supportées par le module) 1 1
Génération d'autres fractales (non supportées par le module) 2 1
Documentation en suffisance 3 3
Surprenez-nous ! 6 4
Malus Maximum : -16 Total : -1.5
Avertissements à la compilation (sauf si justification dans le README) -1 -0.5
Fichiers inutiles dans l'archive -1 -1

IX-B. Juré 4

Critère Points à accumuler : 40 Points accumulés : 36 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 13.5  
Affichage du Buddhabrot 8 5.5  
Changement des paramètres de génération 4 3 Bon, mais il y a des bogues. La zone complexe n'est pas mise à jour quand on a selectionné une zone. Si on a sélectionné une zone, les modifications dans la zone complexe ne sont pas prises en compte.
Internationalisation 3 2 Dommage que ce ne soit pas dynamique
Efficacité de l'optimisation du générateur 4 3  
Qualité du code Maximum : 13 Total : 10.5  
Qualité d'un point de vue C++ 4 3.5 Très correct, code facile à lire. Beaucoup de this->, je ne sais pas trop pourquoi.
Qualité d'un point de vue Qt 4 3 Rien à signaler
Gestion de la mémoire 4 3  
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 3  
Ergonomie (4) 3  
Design (4) 3  
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 3  
Multithreading 4 3 L'utilisation de scripts rend la génération un peu lente (attention à voir si c'est lié à une bogue de Qt, comme pour khayyam90), mais exploitation du multithreading pour accélérer tout cela. Peut-être trop de retours entre le script et l'IHM de l'image en cours de génération, ce qui ralentit la génération.
Bonus (critères facultatifs) Maximum : +24 Total : +7  
Génération d'autres fractales (supportées par le module) 1 1  
Génération d'autres fractales (non supportées par le module) 2 1  
Documentation en suffisance 3 2.5  
Surprenez-nous ! 6 6 J'adore l'intégration du débugeur de script. Beaucoup de recherche sur l'utilisation de QtScript pour générer des fractales.
Malus Maximum : -16 Total : -1  
Fichiers inutiles dans l'archive -1 -1  
Autres commentaires
Dommage que la coloration ne soit pas décorrélée de la génération.

IX-C. Juré 5

Critère Points à accumuler : 36 Points accumulés : 31 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 13  
Affichage du Buddhabrot 8 6  
Changement des paramètres de génération 4 3  
Internationalisation 3 2 Internationalisation mais pas possible de changer la langue dans l'application
Efficacité de l'optimisation du générateur 4 2  
Qualité du code Maximum : 13 Total : 8  
Qualité d'un point de vue C++ 4 3 Code C++ correct et homogène.
Qualité d'un point de vue Qt 4 2  
Gestion de la mémoire 4 2  
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 3.5  
Ergonomie (4) 3.5  
Design (4) 3  
Bonus (critères facultatifs) Maximum : +24 Total : +8  
Génération d'autres fractales (supportées par le module) 1 1  
Génération d'autres fractales (non supportées par le module) 2 2  
Documentation en suffisance 3 3 Documentation très bien et intégré à l'application (+1)
Surprenez-nous ! 6 2 Bonus pour l'utilisation possible du debuger de script (+1)
Malus Maximum : -16 Total : -1.5  
Utilisation d'un autre langage (C, Fortran, assembleur...) -4 0 Je me demande si certaines utilisations ne sont pas du C... Je ne suis pas un expert pour différencier le C du C++ malheureusement...
Avertissements -1 -0.5 Pas d'indication sur le compilateur utilisé. Des warnings à la compilation liés à des paramètres non utilisés (-0.5).
Fichiers inutiles dans l'archive -1 -1 De nombreux fichiers inutiles dans l'archive, notamment les binaires compilés sur une plateforme spécifique (-1).
Autres commentaires
Besoin de déplacer les scripts dans un répertoire script à coté de l'exécutable

IX-D. Juré 6

Critère Points à accumuler : 40 Points accumulés : 34.5 Commentaires
Fonctionnement minimal du programme Maximum : 19 Total : 11.5  
Affichage du Buddhabrot 8 6 Après quelques minutes, ce qui était disponible ressemblait à un Bouddhabrot
Changement des paramètres de génération 4 3 C'est bien d'en mettre plein, c'est bien de guider l'utilisateur dans la jungle pour éviter sa perte
Internationalisation 3 2 Toutes les chaînes ne sont pas traduites, il reste de l'anglais dans la traduction française ; par contre, il faut remarquer que les chaînes d'origine sont en anglais !
Efficacité de l'optimisation du générateur 4 0.5 Dernier, plus de cinq minutes
Qualité du code Maximum : 13 Total : 10  
Qualité d'un point de vue C++ 4 3 Architecture des sources : arg. Les dossiers, c'est bien. Un dossier par classe, c'est trop, beaucoup trop ! Un dossier par partie du programme (GUI, calcul...), oui ; un par classe, non. Surtout pour y ranger deux fichiers.
Qualité d'un point de vue Qt 4 3  
Gestion de la mémoire 4 3  
Documentation minimale 1 1  
Interface graphique (critère optionnel) Maximum : 4 Total : 3.5  
Ergonomie (4) 1 3 minutes pour comprendre où on commence à générer les fractales ! J'ai pas du tout pu retrouver mes jeunes là-dedans... pas de possibilité de paramètres prédéfinis, on se lance dedans au pif, en espérant voir la lumière au bout du tunnel. Pas de chance, elle ne vient pas toute seule !
Design (4) 3.5 Sur papier millimetré, ça convient bien aux fractales ! Il faut remarquer que ce n'est pas désagréable à regarder, mais bien des améliorations sont possibles
Optimisation du générateur (critère optionnel) Maximum : 4 Total : 0 Y a-t-il eu tentative ? Par contre, ça donne une application très facilement modulable pour les fractales !
J'ai arrêté systématiquement toutes mes tentatives de génération, je jette l'éponge après 5 minutes avec des paramètres plus light que pour les autres ; déjà que le Mandelbrot est bien trois fois plus lent que les autres... ; nota bene : après 5 minutes, je n'étais pas au quart... avec deux threads ! Avec un, c'est encore plus lent... et comme ça ralentit, comme d'habitude, quand ça avance...
Bonus (critères facultatifs) Maximum : +24 Total : +11  
Génération d'autres fractales (supportées par le module) 1 1  
Génération d'autres fractales (non supportées par le module) 2 2 J'aime bien l'adrabi ! Fractale perso, je suppose
Documentation en suffisance 3 2 Rédigée en anglais, résident quelques fautes ; parfois inutile, parfois il manque quelques éléments (si tu documentes 95% de tes variables membres, que font les 5% restant ? tu n'as pas compris leur utilité ?).
À quoi ça sert, d'avoir la doc des sources dans l'application ?
Surprenez-nous ! 6 6 L'utilisation des scripts, avec le débogueur, juste comme on l'aime.
On sent bien qu'il a voulu utiliser un max de Qt, déjà à voir le nombre de modules utilisés : 9 !
On peut un peu modifier l'image par après (rotations)
Zoom : c'eût été bien, si ça zoomait autant que ça dézoomait à chaque clic ! Au deuxième zoom sur une zone, ça rame pendant un certain temps...
Malus Maximum : -16 Total : -1.5  
Application non robuste -2 -0.5 À partir d'un certain moment, ne génère plus que du mauve et ses dérivés... plus de fractales !
Avertissements -1 -0.5 Warnings à la compilation
Fichiers inutiles dans l'archive -1 -0.5 Pourquoi un binaire ??? Pourquoi un binaire ??? Pourquoi un binaire ??? Pourquoi un binaire ??? Pourquoi un binaire ??? Tu veux ma mort ? Un petit Nettoyer la solution n'aurait fait de mal à personne (et bien du bien pour toi : un point non perdu !)
Autres commentaires
La liste des fractales doit être chargée manuellement...

IX-E. Résumé

Critère Points à accumuler : 40 Total : 35.5
Fonctionnement minimal du programme Maximum : 19 12.5
Affichage de la fractale Buddhabrot 8 5.875
Changement des paramètres de génération 4 3
Internationalisation 3 2
Efficacité de l'optimisation du générateur 4 1.625
Qualité du code Maximum : 13 9.375
Qualité d'un point de vue C++ 4 3
Qualité d'un point de vue Qt 4 2.75
Gestion de la mémoire 4 2.625
Documentation minimale 1 1
Interface graphique (critère optionnel) Maximum : 4 2.875
Ergonomie (4) 2.625
Design (4) 2.875
Optimisation du générateur (critère optionnel) Maximum : 4 2.5
Multithreading (4) 2.5
Bonus (critères facultatifs) Maximum : +24 9.625
Génération d'autres fractales (supportées par le module) 1 1
Génération d'autres fractales (non supportées par le module) 2 1.5
Documentation en suffisance 3 2.625
Surprenez-nous ! 6 4.5
Malus Maximum : -16 -1.375
Application semblant plantée -2 -0.125
Avertissements à la compilation (sauf si justification dans le README) -1 -0.375
Fichiers inutiles dans l'archive -1 -0.875
Les défis Qt, page générales
La page d'accueil
Les règles
Dépôt des projets
Le forum des défis
Le premier défi Qt : le Buddhabrot
Le sujet
Les résultats
Le Buddhabrot sur le forum
Le deuxième défi Qt : l'application mobile pour hôpital
Le sujet
Les résultats
L'application mobile sur le forum
Le troisième défi Qt : un jeu d'échecs
Le sujet
Un jeu d'échecs sur le forum
Les résultats
  

Copyright © 2010 Developpez.com. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.