Version 8, last updated by mykeys at Jul 01 11:50 2008 UTC

QtSudoku rev. 4

QtSudoku (Cute Sudoku)

QtSudoku (Cute Sudoku) est le Sudoku que je suis en train de créer pour le Site du Zéro.

QtSudoku, vous l'aurez deviné, utilise la version Open Source de l'excellente bibliothèque Qt de TrollTech.

Je travaille en local avec Visual Studio 2008 (vous verrez, d'ailleurs, les fichiers .sln et .vcproj lorsque vous récupérerez le projet), mais, puisque le projet utilise Qt, vous pouvez utiliser MinGW (ou, bien sûr, le compilateur supportant Qt de votre plate-forme, si celle-ci n'est pas Windows) sans problème.

Le seul problème que vous pouvez avoir, c'est si votre compilateur ne supporte pas les en-têtes précompilés. Je ne sais pas comment Qt fonctionne, mais vous devez absolument vous assurer, dans le fichier .pro, que USING_PCH ne soit pas défini. QtSudoku incluera alors le fichier d'en-tête stdafx.h comme si c'était un fichier normal. L'utilité des PCH, c'est que le temps de compilation est au minimum réduit de 70% sur Visual Studio !

Les plus du programme

Fonctionnalités

  • Indicateurs [28.06]: Ce sont les petits nombres que vous voyez dans les cases vides. L'utilisateur peut les remplir pour mieux voir ses possibilités. Ces indicateurs peuvent avoir beaucoup d'autres utilités, pas encore implémentées, et servent beaucoup quand les grilles sont plus difficiles;
  • Commentaires personnels [28.06]: L'utilisateur peut saisir des notes dans le programme, pour mieux retenir ce à quoi il pense;
  • Time machine [29.06]: Le programme retient absolument toutes les modifications faites dans un Sudoku, et permet de restaurer la grille à un état antérieur. L'état des indicateurs peut aussi être géré, on retrouve donc la grille que l'on avait lors d'un état précis. Utile lorsqu'on essaie quelque chose. Quelques fonctionnalités à venir pourraient utiliser Time Machine.
  • Navigation facilitée au clavier [30.06]: On peut naviguer de case en case par le clavier. De plus, on peut maintenant assigner un indicateur en faisant Alt+Nombre (en plus de clic-droit). Cette fonctionnalité, j'y pensais depuis assez longtemps, parce que je trouvais ça long à la souris.

Architecture

  • Widget QSudokuView: la grille de Sudoku est implémentée comme étant un widget, ce qui permet de la réutiliser aisément. De plus, ce widget respecte le design pattern modèle/vue simplifié de Qt.
  • Format QSK: le format !QSK, en cours d'implémentation, est un format ouvert et libre. La spécification de ce format peut être trouvée sur mon site (attention, c'est moche). Un dérivé du QSK, c'est le QSK-S.

Prérequis

  • La bibliothèque Qt 4.4. Les versions précédentes peuvent fonctionner, mais elles n'ont pas été testées;
  • Un compilateur supportant la compilation de programmes avec Qt, et, optionnellement, supportant les en-têtes précompilés; QtSudoku utilise les modules QtCore et QtGui.

Il s'agit de mon premier programme utilisant Qt (mais j'ai déjà travaillé avec C#, wxWidgets, l'API Windows, et Swing).

Remerciements

  • Au Site du Zéro, pour m'avoir donné le goût de me dépasser et de faire le Sudoku que j'aurais voulu faire il y a deux ans (j'en ai fait un, mais il était assez moche; c'est d'ailleurs là que j'ai transcrit 124 grilles à l'ordinateur);
  • Au créateur du pack d'icônes Crystal Clear, qui a fait un travail remarquable donnant des résultats professionels (pack sous licence LGPL);
  • À vous, si vous voulez tester le programme et que vous voulez soumettre vos propositions sur le serveur Trac mis à votre disposition (New Ticket pour une soumission)