Bonjour,
L'équipe d'Animation vous propose son 5ème défi !
I. Le sujet de ce cinquième défi
Le défi nous est lancé par Félix Guillemot. Il s’agit de réaliser un solveur de grilles de Sudoku.
Merci à Félix Guillemot de nous avoir proposé ce défi !
I-A. Le Sudoku
Est-il encore nécessaire de présenter le Sudoku ?
Le jeu se déroule sur une grille de 9x9, elle-même divisée en 9 sous-grilles de 3x3.
Le but est de remplir la grille avec des nombres de 1 à 9, tout en respectant les contraintes suivantes :
- Chaque nombre doit figurer une et une seule fois par ligne.
- Chaque nombre doit figurer une et une seule fois par colonne.
- Chaque nombre doit figurer une et une seule fois par sous-grille.
I-B. Pré-requis
Pour réaliser ce défi, une simple édition personnelle de Delphi suffit. Pas besoin d'avoir les bibliothèques spécifiques aux versions Pro/Entreprise/Architecte !
Certaines versions personnelles de DELPHI sont disponibles au téléchargement dans la page téléchargement de la rubrique DELPHI de www.developpez.com !
Il peut être nécessaire de savoir farfouiller sur le site de www.developpez.com dans la rubrique DELPHI et plus particulièrement dans la F.A.Q. DELPHI, dans les SOURCES DELPHI, dans les tutoriels DELPHI et dans les [ame="http://www.developpez.net/forums/forumdisplay.php?f=8"]forums DELPHI[/ame].
I-C. Les objectifs du défi
Votre solution devra offrir les fonctionnalités suivantes :
- une IHM qui montre la grille de Sudoku et qui permet à l'utilisateur de saisir les chiffres de départ,
- un élément de l'interface (Bouton, menu item,...) qui permet de déclencher la résolution de la grille.
Après la résolution, la solution doit s'afficher dans la grille, évidemmment
De plus, afin de faciliter les tests, votre solution devra permettre de charger une grille pré-définie à partir d'un fichier txt.
Le fichier aura le format suivant :
- Une ligne pour chaque ligne de la grille (donc 9 lignes en tout)090871340
410903080
386245910
048090100
601500498
950184000
509030071
074600030
820019654
- Les chiffres des colonnes collés les uns aux autres, avec des 0 pour les cases vides.
Pour info, en cherchant un peu, vous trouverez AI Escargot, la grille annoncée comme la plus difficile à résoudre au monde : elle a été fabriquée par Arto Inkala, un mathématicien finlandais, et fut un chantier de trois mois de modélisation à l’aide d’un ordinateur et l’examen de trois milliards de possibilités.
Et bien sûr, le défi ne consiste pas à résoudre AI Escargot, c'est juste un point de repère, une référence. Il faut commencer par des plus simples et résoudre AI Escargot n'est pas le seul but à atteindre, ce n'est pas LE défi à relever, un challenge tout au plus.
Les participant doivent respecter les règles du défi, et le déroulement du défi et plus précisément que "l'utilisation de composantes ou bibliothèques autres que celles fournies en standard par CodeGear sont interdites, qu'elles soient commerciales, freewares, open-source etc. ..."
I-D. La notation
Les critères déterminants pour le Jury qui devra désigner le meilleur "Sudoku Solver" sont les suivants :
- performance du Solver : temps mis pour résoudre une grille, capacité à résoudre les grilles dites "difficiles", (pensez à prévoir un chronomètre)
- Ergonomie et présentation de l'interface,
- Propreté du code: documentation (commentaires), indentation, modularité, enfin bref : on enlève les moufles
.
- Fonctionnalités originales et/ou pertinentes (laissez libre court à votre imagination et soyez créatifs !)
EDIT 06/09/2009 :
EDIT 01/02/2010 :ATTENTION :
Le défi se terminera le 30 septembre 2009 à minuit.
Vous avez donc jusqu'au 30 septembre minuit pour envoyer votre solution par mail à cette adresse.
N'oubliez pas d'indiquer votre pseudo Dvp dans le mail.
Les résultats du défi sont arrivés
Nous avons un vainqueur ! Il s'agit de Andnotor.
Toutes nos félicitations et un grand bravo au vainqueur, ainsi qu'à tous les participants.
Retrouvez l'intégralité des résultats, les solutions de chaque participants, et bien sûr celle du défieur !
Partager