Projets en développement

Résolveur de sudoku

Il s'agit en fait ici d'un projet que j'ai dû rendre lorsque j'ai préparé l'UE NFP136 du CNAM en 2009 (seconde valeur d'accueil et de reconversion que je devais passer pour intégrer la licence d'informatique que je visais). Ce programme est, comme son nom l'indique, conçu pour résoudre des grilles de sudoku. Lorsque qu'une grille n'a pas une solution unique, le programme est en outre capable d'afficher au moins une solution. L'exécution s'effectue uniquement à travers un terminal.

Langage - Java

Licence - GPLv2

Trace type

~/workspace/monSudoku/bin$ java MonSudoku ../grillesAResoudre/diabolique1.txt 
. 5 4   . 7 .   . . . 
. . 1   . 9 .   3 . . 
. 6 .   5 . .   2 . . 

. . .   3 6 .   1 . 4 
. . .   . . 8   6 . . 
. . .   4 . .   . 3 . 

. 8 .   9 . .   . . 6 
. 3 6   . . .   . . 1 
. . 5   2 . .   4 . . 

--------------------------------------------------
--------------------------------------

3 5 4   6 7 2   8 1 9 
2 7 1   8 9 4   3 6 5 
8 6 9   5 3 1   2 4 7 

5 2 8   3 6 7   1 9 4 
9 4 3   1 5 8   6 7 2 
6 1 7   4 2 9   5 3 8 

1 8 2   9 4 3   7 5 6 
4 3 6   7 8 5   9 2 1 
7 9 5   2 1 6   4 8 3 

~/workspace/monSudoku/bin$
				

Télechargement - monSudoku.zip

Tetris

Ce petit projet n'avait d'autre but que de m'essayer à un projet en C++/SDL. L'impératif étant de la faire et surtout de le finir.

Langage - C++/SDL

Licence - GPLv3

Téléchargement - TetrisLike.tar.gz

GNU-Diabolo

Les siteswaps permettent de représenter les temps de lancé des objets que manipule le ou les jongleur(s). C'est le point de rencontre entre la jonglerie et les mathématiques. Les siteswaps sont habituellement utilisés avec des objets tels que les balles ou les massues car le nombre d'objets jonglés est généralement de 3 ou plus. De ce fait, plusieurs logiciels existent déjà pour représenter ces séquences de chiffres ou de lettres avec ces objets. Le niveau technique de jongleurs au diabolo ayant progressé en quelques années, il est devenu utile de vouloir proposer un tel logiciel. Un autre logiciel existe déjà (DSSS, de Priam Pierret) mais à ma connaissance ses sources ne sont pas disponible. J'ai donc décidé d'en proposer un, à savoir GNU Diabolo Simulator.

Langage - C++/Qt

Licence - GPLv3

Téléchargement - gnu-ds.tar.gz

Action RPG

Le jeu Zelda 3 est un action RPG sorti sur SNES en 1991/1992 selon que vous soyez japonais, ou européen. J'ai adoré ce jeu étant jeune et je me suis lancé le défi d'en faire un clone. Les images et les sons proviennent du jeu original car malgré mes efforts, je ne suis ni bon graphiste, ni bon compositeur. Ce projet m'occupe par intermittence depuis avril 2011. Après une mise en pause fin 2011 (le code n'était vraiment pas propre), je l'ai entièrement recommencé quelques mois plus tard (en m'essayant cette fois à l'UML, ce qui s'est révélé très utile pour un code de cette taille). Ce développement est de nouveau en pause (pause toute relative quand même) car je travaille sur un autre projet lui aussi très intéressant et que je ne veux pas en faire deux en même temps. Je profite quand même des temps morts sur l'autre projet pour continuer à travailler sur celui là.

Langage - C++/SDL

Licence - GPLv3 (concerne uniquement le code source, et non les ressources du jeu original que j'utilise).



Téléchargement -
ActionRPG-2014-03-01-DEMO-Linux-v2
ActionRPG-2014-03-01-DEMO-Windows-v2

note : le jeu étant toujours en développement, le contenu de cette archive est à considérer comme une simple démo jouable. Toutes les fonctionnalités du jeu ne sont pas encore implémentées dans cette démo et tout les bugs identifiés n'ont pas forcement encore été corrigés. Merci de me contacter si vous désirez me faire un retour sur cette démo (voir mail en haut de cette page).

Résolveur de Rubik's Cube 3x3x3

Ce projet a démarré suite à ma rencontre avec Mathieu. Nous désirions tout deux monter une structure de type hackerspace ou fablab sur Quimper. Afin de présenter conrètement ce qu'on pouvait réaliser dans une telle structure, nous avons décidé de démarrer un projet collaboratif lui et moi. Après une petite recherche, nous nous sommes mis d'accord sur le choix du projet, à savoir la réalisation d'une machine capable de résoudre complètement un Rubik's Cube 3x3x3. L'idée étant que les seules actions de l'utilisateur sont de poser le cube mélangé dans la machine, de demander sa résolution, et de le reprendre une fois sa résolution achevée. La problématique est simple à comprendre mais la recherche d'une solution implique nécessairement que l'on touche à plusieurs domaines (informatique, électronique et mécanique principalement). Sur ce projet, j'ai donc pris en charge la partie informatique et électronique, tandis que Mathieu se charge de construire les pinces et la structure de la machine. Note importante, nous favorisons autant que possible la récup et l'open source/libre pour construire notre solution.

En parallèle, j'ai commencé à travailler sur une version alternative. Plutôt qu'une solution basée sur deux pinces, j'ai opté pour une version plus simple nécessitant juste trois moteurs. C'est cette version que je viens de terminer. Cette machine est encore perfectible mais elle réussi déjà à résoudre les cubes que je lui donne. Le temps de résolution d'un cube se situe entre 3 et 4 minutes. Ce temps est obtenu alors que l'algo de résolution est loin de trouver une solution optimale.

La dernière évolution du logiciel permet maintenant de choisir entre la méthode de résolution que j'ai implémenté (non optimale - 120 rotations de faces en moyenne) et une méthode de résolution optimale (20 rotations de face) fournie dans un package Java disponible sur internet. En utilisant la méthode optimale, la résolution d'un cube prend alors moins de 40s.

Langage - C++/Qt - Arduino

Licence - GPLv3

Téléchargement - ResolveurDeCube-2014-04-29

Jeu de la vie

Une nouvelle fois, je me suis lancé dans un petit projet. Pour ceux qui ne le connaissent pas, le jeu de la vie est un automate cellulaire inventé en 1970 par John Horton Conway. Ici, cela a été un prétexte pour me mettre au python (python3).

Langage - Python3

Licence - GPLv3

Téléchargement - JeuDeLaVie.tar.gz

Extension Firefox "Clean search"

Il semble normal de dire à un moteur de recherche ce que l'on veut (rien que pour obtenir une réponse). Il est par contre moins utile pour l'utilisateur de dire en retour laquelle des réponses il a ensuite sélectionné (ou pas).

Pourtant, cette pratique est courante. Les réponses données par certains moteurs de recherche ne sont pas des liens directs mais un catalogue de réponses qu'il "peut" vous fournir. En cliquant sur un lien dans la page de résultats, on demande en fait au moteur de recherche de nous mettre en relation avec une ressource donnée, ce qui lui permet au passage de récupérer cette information.

L'extension que je propose ici est vraiment rudimentaire (allez voir les sources pour vous en convaincre) mais permet déjà de réécrire à la volée les liens fournis par la page de résultats de Google et de Yahoo!. Ainsi, vous devriez en dire un peu moins à ces moteurs lorsque vous utilisez leurs services et préserver un peu plus votre vie privée.

Pour le moment, cette extension est en version bêta (le 21/06/2015 - V0.1). Je suis en train d'étendre progressivement ses fonctionnalités à d'autres moteurs de recherche.

Langage - Javascript

Licence - GPLv3

Téléchargement / Installation - cleansearch.xpi