Developpez.com - Rubrique Pascal

Le Club des Développeurs et IT Pro

Défi n° 2 : un résolveur de grilles de Sudoku

Avec Lazarus

Le 2009-06-20 11:01:42, par Alcatîz, Responsable Pascal, Lazarus et Assembleur
Bonjour à toutes et à tous,

L'équipe Delphi vient de lancer son 5ème défi : un résolveur de grilles de Sudoku.

L'équipe Pascal vous propose cette année de lancer un défi... à Delphi, en participant également à ce défi mais en allant encore plus loin grâce à l'atout majeur de Lazarus : la compilation multi-plateforme.

Le but du défi sera donc de réaliser un résolveur de grilles de Sudoku pouvant compiler indifféremment pour Linux et Windows, voire même d'autres plateformes.

Le défi est ouvert à tous les membres du forum (si vous n'êtes pas encore membre et souhaitez participer, enregistrez-vous gratuitement).

Eventuellement, pour ceux qui ne maîtriseraient pas les règles du jeu, les voici brièvement : la grille de Sudoku est un carré de neuf cases de côté, subdivisé en autant de sous-grilles carrées identiques, appelées régions. Chaque ligne, colonne et région ne doit contenir qu’une seule fois tous les chiffres de 1 à 9. Formulé autrement, chacun de ces ensembles doit contenir tous les chiffres de 1 à 9. Précision : une vraie grille de Sudoku ne possède qu'une et une seule solution.


(image provenant de Wikipedia)

Vous disposez d'un peu plus de quatre mois pour peaufiner votre programme, soit jusqu'au 31 décembre 2009.
La cotation prendra en compte tous les aspects : le respect du cahier des charges, le look du logiciel, l'originalité, mais aussi la qualité du code (élégance des solutions choisies, découpage en modules, choix des algorithmes, optimisation, etc), la qualité du source (indentation, choix des identificateurs, qualité des commentaires, etc).

Un classement sera réalisé sur base des cotations. Le vainqueur pourra faire partie du jury du défi suivant (sauf, bien sûr, s'il décide de concourir) !
Les sources des meilleurs candidats seront publiés dans la rubrique Sources.

Voici le règlement complet du défi :

Cahier des charges :
  • Réaliser un résolveur de grilles de Sudoku, qui charge une grille stockée dans un fichier ou composée par l'utilisateur, l'affiche et la résoud à la demande de l'utilisateur (et affiche bien entendu le résultat );
  • Compilable pour Windows et Linux au minimum;
  • Avec Lazarus;
  • Sans restriction de choix des composants.

Une grille stockée dans un fichier texte aura le format suivant :
Code :
1
2
3
4
5
6
7
8
9
160000009
000008005
007050600
020903000
009060400
000504090
004070900
500800000
900000063
(une ligne de la grille = une ligne du fichier, les 0 étant des cases vides).

Dates :

Les sources pourront être envoyés à Alcatîz jusqu'au 31-12-2009.
Au fur et à mesure de la réception des sources, la liste des participants sera mise à jour à la suite de ce message.
Surtout ne postez pas vos sources sur le forum.

Cotation :
  • Respect du cahier des charges : 5 points;
  • Qualité du code exécutable (principalement la performance du solveur : rapidité, capacité à résoudre des grilles difficiles) : 7 points;
  • Qualité du source : 4 points;
  • Look, ergonomie, originalité, créativité : 4 points.

Publication des résultats :

Dans le courant du mois de janvier 2010.

Bonne chance à tous les participants !

Liste des participants inscrits :

(dans l'ordre d'inscription)

darrylsite
Le Seynois
dimanche2003
Ludelphi7

Résultats :

Allez, faisons encore durer un peu le suspense le temps d'un clic de souris !
Les résultats sont ici : http://www.developpez.net/forums/m4934763-84/

Félicitations au vainqueur !
  Discussion forum
97 commentaires
  • darrylsite
    Rédacteur
    Salut,

    Avant de me lancer dans la programmation de mon résolveur de grille de sudoku, j'aimerais savoir si on doit faire une application GUI ou console vu que c'est pas spécifier dans le post.
    Si le choix appartient au participant, j'opterais pour le GUI; mais la question est si une application console sera jugée sur la meme base qu'une application GUI.
    Aussi, j'aimerais bien savoir si, on peut programmer en multithread ou doit-on faire seulement du mono-thread.

    Voilà quelques eclaircissement que j'aimerais avoir avant de commencer à coder ce résolveur de grille de sudoku que je trouve déjà passionnant
  • Alcatîz
    Responsable Pascal, Lazarus et Assembleur
    Bonjour,

    Pour rivaliser avec les Delphistes, à performances égales une application GUI aura de meilleures chances. Monothread, multithread... tu peux t'éclater, il n'y a pas de restriction de composants du moment que le source puisse compiler pour au moins deux plateformes. Et vu ton projet du 1er défi, nous savons déjà que nous pouvons nous attendre à ce que tu sortes des sentiers battus !
  • darrylsite
    Rédacteur
    J'annonce donc officiellement ma participation à ce défi.
    J'espère que nous serions nombreux, à faire cette course de vitesse; Qui sera plus rapide que la lumière?
  • Alcatîz
    Responsable Pascal, Lazarus et Assembleur
    Envoyé par darrylsite
    J'annonce donc officiellement ma participation à ce défi.
    Eh bien bonne chance à toi !
  • darrylsite
    Rédacteur
    J'ai fait un tour chez nos amis les delphistes, je trouve qu'ils sont bien dynamique et en avance
    En fait il y a d'intéressantes ressources dans leurs postes, des liens vers des méthodes de résolution, des conseils et pleins d'autres trucs.

    Pour ceux qui veulent participer à ce concours se sera bien d'y jeter un œil.
    le lien :delphi.
  • mick605
    Membre chevronné
    Salut !

    Je suis un Delphiste aussi ! Je m'étonne du peu de gens qui participent au defi pascal ... En effet, sur le defi delphi, ya bcp de monde et de posts ! Je vous invite donc a aller faire un tour du cote de ce forum ... Combien de personne participent a ce défi chez vous ??

    Mick605
  • Alcatîz
    Responsable Pascal, Lazarus et Assembleur
    Il faut prendre en compte le fait que le délai pour le présent défi court jusqu'au 31 octobre, les candidats ont encore tout le temps de se manifester.
  • FullSpeed
    Inactif
    Bonjour a mes amis Pascalien

    Je participe au defit N° 5 pour un solveur Sudoku

    Depuis pas mal de temps je m'interroge sur Lazarus:
    Je viens et suis toujours un fana des Mac
    Alors j'ai des démangeaisons
    Peut-on s'inscrire aux deux defits:
    une version Delphi et une Pascal?
    L'esprit sur Delphi est tres 'compétition': on garde pour soi
    Je viendrais sur Lazarus seulement si on supporte un peu le débutant sans avoir peur qu'il vous pille vos idees.
    J'aime bien le barème: on sait où on va...
    Jérôme
  • Alcatîz
    Responsable Pascal, Lazarus et Assembleur
    Rien n'empêche bien sûr de participer aux deux défis !

    Le portage de Delphi vers Lazarus est tout-à-fait possible moyennant quelques adaptations.
  • darrylsite
    Rédacteur
    Envoyé par FullSpeed
    Bonjour a mes amis Pascalien

    L'esprit sur Delphi est tres 'compétition': on garde pour soi
    Oui, j'ai remarqué ça

    Je viendrais sur Lazarus seulement si on supporte un peu le débutant sans avoir peur qu'il vous pille vos idees.
    J'aime bien le barème: on sait où on va...
    Bienvenu alors nous voila dejà deux participants