Quand j'ai vue ce concours, je me suis tout de suis dit : "Mais c'est parfait ! C'est l'occasion idéal pour me lancer dans l'apprentissage du C/C++ (et par la même occasion d'utiliser la bibliothèque Qt)".
C'est comme ça qu'a débuté mon aventure avec vous ^^. Je me suis mis à lire les cours, tout en m'imaginant plein d'interfaces possibles pour un Sudoku. (bon je vais pas vous mentir, j'ai un peut trop déliré sur certaine
), mais une chose était sur, je voulais que mon programme soit original, Qu'il ait une interface qui change radicalement avec celles que l'on trouve habituellement. Mais entre 'vouloir' et 'réussir' il y a un grand chemin, et je ne suis pas totalement satisfait de ce que j'ai réussi à produire sur ce point.
Pour faire simple l'affichage des chiffres de mon Sudoku est devenu facultatif, j'ai décidé de le rendre plus visuel pour permettre de mieux se repérer. Deuxième modification majeur, le contrôle de mon programme peut entièrement se réaliser à l'aide de la souris et/ou de cinq touches du clavier (directionnelles + entrer).
e0008006090630020e700f59c00052000f3i860905a7207i00f85d000460e03005007406f40e20000
29/06/08 :
-Début de la lecture du tutoriel 'langage C/C++' de m@theo21. Ce langage m'est pour l'instant totalement inconnu, mais comme je devrai l'apprendre un jour, autant commencer avec un projet motivant. (quoi de mieux qu'un concours ^^)
02/07/08 :
-Premiers pas dans Qt. C'est vrai que cette bibliothèque a vraiment l'air puissante et simple d'utilisation. (mais bon je ne connais aucune autre bibliothèques du C++, je ne vais donc pas faire de comparaison du genre : 'c'est la plus mieux'

)
-Je ne sais pas encore ce que je pourrai faire avec cette bibliothèque, mais les idées tourbillonnent dans ma tête, tout en restants très vague, il me faut finir de lire cette partie du tutoriel avant de vraiment pourvoir imaginer mon logiciel.
04/07/08 :
-Début de la création de mon projet qui se compose pour l'instant d'un fichier main.cpp et de 2 classe (Fenetre.cpp et Bouton.cpp).
-Orientation vers un design spécial, avec la découverte majeur de la fonction setStyleSheet() qui comble mes désir (même si je ne comprend pas tout et que j'enchaine les erreurs d'utilisations ;p )
05/07/08 :
-Ajout de la classe Choix. (qui affiche un QWidget pour choisir quel planètes je désire mettre dans une case)
-Blocage sur la modification du titre et de l'icône de mes fenêtres, après un bon moment de recherches, j'ai en partie résolu mes problèmes (mais je n'ai toujours pas réussi à supprimer l'icône)
-Création du design du sudoku. Ce que est, entre nous, loin d'être mon point fort. Mais après plusieurs longues heures de travail j'ai enfin réussi à obtenir 9 planètes acceptables (le premier qui critique je l'achève hein ^^).
06/07/08 :
-Résolution des nombreux problèmes de design dus à ma connaissance encore trop vague des possibilités de Qt.
-La règle 'Réalisation d'une interface graphique permettant de saisir des chiffres dans une grille, un seul chiffre par case.' me laisse penser que mon Sudoku doit obligatoirement utiliser des chiffres. Mais comme le projet est surtout basé sur le réalisation d'une interface, je veux qu'elle soit le plus original possible, d'où mon idée de les remplacer par des planètes. Mais pour des soucis de respect des règles je vais quand même rendre l'affichage des chiffres optionnel (sur les planètes).
-Sudoku opérationnel (J'entend par là que l'on peut y jouer, bien que ce soit pour l'instant toujours sur la même grille ^^')
-Recherche d'algorithme sur la création de grilles, sans grand succès à mon gout. Mais ce n'est pas très grave, cette partie risque d'être difficile, je la remet donc à plus tard.
-Nettoyage du code, et croyez moi, il en à besoin, c'est effroyable toute les variable que j'ai crée et qui n'ont pas de réel utilité (je n'ai pas encore fini mais je terminerai demain si j'ai le temps).
07/07/08
-Fin du nettoyage du code, j'en ai profité pour remplacer quelques fonctions par celles que je viens de découvrir et qui sont plus appropriées. (comme pour la suppression de l'icône de ma fenêtre)
-Je viens de modifier quelques propriétés et images pour que le joueur puisse modifier la taille de mon jeux.
-Modification de la fenêtre Choix (au lieu de la recrée à chaque fois que je voulais l'afficher, je la cache, la modifie et la re-affiche).
-Création du menu, qui comporte 2 boutons (Oo) 'Quitter' et 'Vérifier la grille'. J'en ai profité pour commencer l'algorithme de vérification que je finirais surement demain.
08/07/08
-J'ai fini d'incorporer le menu de vérification à mon jeux, tout les boutons qu'il possède ne sont pas encore tous opérationnels et l'algorithme loin d'être fini, il ne peut pour l'instant que repérer si plusieurs planètes sont placées sur la même ligne.
09/07/08
-Ajout du bouton 'filtrer les planètes' qui active/désactive le filtrage de planètes dans la fenêtre Choix.
-Ajout de deux boutons 'About' et 'About Qt'
10/07/08
-Ajout d'un menu 'Options' qui contient 4 sous-boutons : 'Marquer les planètes fixes' 'Afficher le numéro des planètes' 'vider la grille' et 'Afficher les règles', et toutes les fonctions associées à ces boutons fonctionnent correctement.
-Je viens de commencer mes recherche sur une algorithme de résolution performant, et j'ai trouver des choses intéressantes, et j'ai donc commencer à écrire mon cette fonction.
11/07/08
-Mon algo marche pour la plupart des sudoku, mais je sais quoi faire pour qu'il puisse tous les resoudre, je verai ça un peut plus tard.
-Je ne sais pas trop pourquoi mais je veux arriver à supprimer tout les appel à la fonction setStyleSheet().
12/07/08
-J'ai totalement revue l'ordonnancement des mes widgets, visuellement rien ne change, mais ils deviennent beaucoup plus simples à manipuler.
-Voila, j'ai réglé tout les problèmes de styleSheet (merci la doc), maintenant je n'utilise cette fonction que pour gérer l'arrière plan de mes fenêtres.
-Ajout d'une toolbar qui récapitule le nombre de planètes pressentes sur la grille.
13/07/08
-J'ai enfin fini mon algorithme de résolution, il marche avec tout les grilles que j'ai eu à tester et pour chacune d'elle, il a mis moins de 1ms, mais bon je manque de grille pour pouvoir le tester plus en détails. (j'en ai profité pour lire le Tp zeroClassGenerator et celui des boites de dialogues)
-J'ai enfin mis en service la fonction Ouvrir, cela m'a parmi de découvrir la classe QFile ainsi que la classe QRegExp (qui me sert a vérifier si le contenu de mon fichier est valide).
-Ajout des icônes et raccourcis du menu 'Partie'. (Nouveau, Ouvrir, Enregistrer, Imprimer, Quitter)
14/07/08
-Mise en service de la fonction Enregistrer.
-A là, je suis content, c'est une mise à jour que j'avais en tête depuis longtemps, avant pour jouer à mon jeux, la souris suffisait, elle était même indispensable. Mais maintenant j'ai ajouté tout un mode de jeu au clavier :p, ça m'a permis d'apprendre beaucoup de choses sur la gestion des évènements avec Qt. (à savoir que l'on peut utiliser les 2mode de jeux en même temps, ils sont parfaitement compatibles ;p)
17/07/08
-Création de l'option 'Révéler une planète', pour donner une aide sans afficher tout la solution.
18/07/08
-Implémentation de l'algorithme qui génère aléatoirement les grilles.
19/07/08
-Ajout d'une horloge dans la barre de titre de ma fenetre.
-Modification de l'enregistrement et de l'ouverture de grille, il fait maintenant la différence entre les cases fixes et les autres. (on peut donc enregistrer une partie en cours)
-Avant de quitter, une fenêtre demande si l'on veux enregistrer.
22/07/08
-Création du menu Imprimer, qui permet d'imprimer une page de 6 grilles.
-Découverte de ma méthode sender(), que j'utilise pour simuler le fonctionnement des QAction checkable. (C'est le seul moyen que j'ai trouver pour pouvoir supprimer mes problèmes pour personnaliser l'icône de ce genre de boutons)
25/07/08
-Modification de l'option imprimer, avec la création de la classe Imprimer, cela me permet de rajouter des options, comme imprimer la grille actuelle, ou bien d'ajouter des petites cases d'aide si l'utilisateur le désire.
-Ajout de quelque icônes.