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 |
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
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 :
|
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 :
|
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 :
|
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 :
|
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
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 |