Le Sudoku est le jeu idéal pour un programmeur débutant dans un langage de programmation comme Java.

Ce n'est pas trop compliqué et on est vite content du résultat. En préparant cet article en 2017, j'ai cherché une référence du Sudoku sur Wikipedia, et découvert plein de choses sur les méthodes de résolution, méthodes que je ne connaissais pas, quand j'ai écrit, en 2005, un programme en Java pour déterminer les solutions intermédiaires et finales.

En 2005, j'avais choisi Netbeans comme outil de développement Java, car il m'a permis d'écrire rapidement une interface graphique permettant de lire des fichiers grilles, de les éditer et de jouer moi-même ou de demander au programme de m'aider dans la recherche suivant certains algorithmes.

Début 2017, il m'est venu à l'idée de reprendre ce programme pour non seulement le corriger pour le présenter ici, l'améliorer, nettoyer le code source pour qu'il soit présentable et importable dans Netbeans, mais principalement y implémenter un mode textuel d'apprentissage.


Je ne suis pas trop mauvais dans la résolution de grille, mais il m'arrive d'être bloqué. Je ne retrouve plus l'algorithme qui me permet de continuer. Je dois absolument m'améliorer. C'est donc le but que je me suis fixé: entrer la grille ou je suis bloqué et recevoir du programme une indication simple, textuel, sans donner de solution, pour pouvoir continuer.

Mon projet Netbeans de 2005 a été réimporté sans difficulté dans la dernière version de Netbeans. J'ai choisi la version Java EE, car il m'arrive de coder de l'HTML5 et du Javascript. Ma première surprise a été de constater que mes classes et méthodes Java n'étaient pas si mal écrites afin d'y intégrer ce mode particulier.

Le premier gros travail a été de récolter le maximum de partie en cours, dans des fichiers, afin de me préparer pour l'analyse des différentes solutions.
Je me suis aussi amusé à utiliser un API de Java pour l'OCR à partir de photos prises par mon Smartphone et en découpant l'image préalablement cadrée en la morcellant en 9*9 images, sans les bords de la grille, pour la reconnaissance des chiffres entre 1 et 9! Il faut juste monté au max l'intensité et le contraste. Le code de l'API Tess4J a pu être intégré à Netbeans en un clique de souris. 

A suivre ....