Well...
Et bien un grand merci à tous les Dave du jury
Je me suis bien marré en programmant ce petit "jeux" (et principalement en imaginant vos têtes à la première déflagration ), mais ne pensais pas avoir un solveur suffisamment performant pour me retrouver en tête de liste.
Un clin d'oeil à Sub0 que j'ai oublié de cité dans mon ReadMe. Ces explications sur le format WAV m'ont permis de trouver rapidement une alternative à BASS sans laquelle j'étais hors concours .
Et puisque pas de défi sans participants, je salue toutes les personnes qui ont investi du temps et des neurones dans ce concours; et bien sûr les membres du jury d'avoir pris le temps de nous relire (même s'ils ont dû par moment s'arracher quelques cheveux).
end transmission¤
Félicitations AndNotOr !
C'est juste magnifique !
Moi dépassé MsPaint, pour le graphisme, je suis perdu ...
En tout cas, je suis content, j'ai au moins un bon score, pour un truc fait en une petite vingtaine d'heure (j'ai passé plus de temps à poster sur le sujet qu'à développer ), je suis bien content
Sinon, le nombre de concurrent n'était pas si élevé ...
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Bj
Félicitation à Andnotor, pour ta victoire , mais aussi pour ta solution. Merci egalement aux organisateurs, jurys sans qui rien n'aurait été possible.
Amicalement
Pascal
Félicitation à tous...par contre les exe sont ils quelque part ?
Because avec mon malheureux D7...
(désolé si la réponse a déjà été donnée !)
A part un ou 2 projets a compiler, les exe sont dans les dossiers zippés. (souvent dans un dossier Bin)
Articles :
Création d'un système de chat en Pascal
Programmes :
Défi Pascal 2011 - Mon Tetris
Défi Pascal 2010 - Mon système de chat
Défi Delphi 2009 - Mon Sudoku Solver
Retrouvez mes différents projets sur ma page personnelle.
C’est un régal de découvrir les solutions proposées, et leurs trésors d’inventivité. J’en ai (nous en avons) pour des heures à tenter d’assimiler toutes les ruses… et les routines…
Mais stop à la béatitude, voyons les faits.
Et là, consternation générale.
Je ne suis pas informaticien, plutôt un bricoleur, donc j’ai le droit de me taire…
Mais je suis un joueur de Sudoku, et là je peux, je dois parler et protester.
Mes observations porteront sur le respect des règles, l’évaluation et la création d’une grille. Accessoirement sur l’esthétique, la vitesse et l’ergonomie.
- Respect des règles
Un distrait peut confondre les conditions «*et*» et «*ou*». En informatique, c’est l’erreur fatale. Un citoyen peut confondre «*peut*» et «*doit*». Et là, sa vie devient rapidement insupportable. Pour une grille de Sudoku, un chiffre prend sa place parce que aucun autre chiffre ne peut s’y placer.
Tel chiffre doit être dans cette case, et non peut l’être.
C’est là toute la différence entre un Sudoku et une grille quelconque*: il y a une réponse et une seule*!
Qu’est –ce que l’on constate dans les logiciels proposés*? Il n’existe aucun contrôle, et la première solution trouvée est présentée comme valable…
Le test le plus cruel à ce sujet est celui de la grille vide*: demandez à chacun de ces logiciels de résoudre une grille vide de tout chiffre, et vous aurez la réponse presque instantanément (durée de quelques micro ou millisecondes affichée fièrement…*!) alors que cette réponse n’a aucun sens*!
D’autres tests sont possibles, avec des grilles à solutions multiples*: Franck Soriano, auteur d’un remarquable tuto (je suis sincère) sur son Solver, s’est pris les pieds dans le tapis en appuyant sa démo sur une grille qui n’est pas un vrai Sudoku…
Pour information, notre ami Ludelphi7 a présenté une solution sous Lazarus qui a recours à la récurrence et informe directement du nombre de solutions... Un must.
- Evaluation d’une grille
Silence général sur le sujet. Pourtant, je lis ici ou là «*grille du commerce*». Ok, mais dans le commerce, on prend la peine –en général- de préciser la difficulté du problème pour ne pas que le débutant soit découragé s’il attaque une grille difficile, ou inversement pour que le joueur confirmé y trouve un certain plaisir…
Donc, sur cette planète, quand on présente un Sudoku, on précise le niveau, la difficulté de la grille envisagée. C’est une question de… bienséance…
Soit, mais alors comment accoler le niveau à la solution d’une grille*?
Je ne veux pas ici déflorer le sujet, qui est très intéressant, et je le laisse pour l’instant à votre réflexion.
- Création d’une grille
Ces grilles du commerce, qui les fabrique, de quelle manière*? Voilà encore une question intéressante que nos logiciels, lauréat ou non, ont soigneusement évitée, à l’exception de Bahmani, sauf erreur de ma part.
Notre ami a introduit une fonction qui crée une grille affichant le nombre de cases vides de son choix. Et là, on peut ainsi générer des grilles avec 16 ou 15 révélés, ou moins encore, alors que personne au monde n’a réussi –pour l’instant- à créer une grille 9x9 avec moins de 17 révélés…
Pourquoi*? Absence de contrôle d’unicité…donc règles non respectées.
- Esthétique, vitesse, ergonomie
Le gagnant a fait très fort, mais reconnaissons que c’est plutôt comique. Un comique réussi, mais qui n’a rien à voir avec le Sudoku*: la mise en scène s’applique parfaitement à n’importe quelle tâche, et brillamment. Chapeau… D’autant que je suis également un fan de l’Odyssée et de Hal…
La vitesse… C’est … le critère des faibles… En quoi cela présente la moindre importance pour un joueur de Sudoku, que la solution soit obtenue en 10 ms ou en 10 µs*? Je comprends que pour un informaticien, qui travaille sur des opérations répétées des millions de fois, ce soit une préoccupation majeure, mais cela ne doit pas occulter la finalité du logiciel*: la richesse des fonctions, l’ergonomie des accès.
Et là,il y a beaucoup à dire*: sur une grille, il m’a fallu plusieurs minutes pour saisir un nouveau problème, ce qui est parfaitement rédhibitoire…
- Conclusion
Quels talents, mais aussi quel gaspillage… Il ne faudrait pas grand-chose, me semble-t-il pour que les solutions présentées deviennent satisfaisantes, et c’est pourquoi je propose au Jury de relancer la consultation avec cette fois pour critères d’analyse*:
1. Respect des règles
2. Évaluation de la difficulté
3. Génération de grilles
4. Ergonomie
5. Esthétique
6. Vitesse d’exécution
7. Propreté du code et divers à préciser
Il me semble que trois mois suffiraient pour que chacun puisse remanier son projet et présenter une solution valable, ce qui nous conduirait à une remise des plis le 15 mai 2010 par exemple.
Mais, certains s’interrogeront sur les codes déjà divulgués, susceptibles d’aider un concurrent. Soit…Cela fera simplement partie des règles de la nouvelle compète*: chacun pourra utiliser le code librement mis à sa disposition. Ce qui n’empêchera pas chacun de signaler les emprunts qu’il aura pu faire et de remercier leur auteur…
Ok, mais dans quel intérêt ? Le fun, c'est vrai... mais aussi... un coup de torchon sur le désastre et à l'arrivée un logiciel libre qui tient vraiment la route.
Le journal de gauche a titré:
« La Deuche a encore gagné ! »
Celui de droite:
« La Rolls dépose protêt pour non respect de la déontologie du Sudoku »
La Gazetta dello Sport, elle:
« Après Alinghi-Oracle, Deuche-Rolle Royce »
Je te conseille de relire les objectifs du défi
Waaaaooooh
C'est marrant, tu sembles avoir lu ma signature mais tu as décidé de poursuivre !
C'est vrai que tu arrives juste 4 mois après la publication du Défi, il fallait proposer tes idées au début, pas quand cela était fini ?
Je pense qu'effectivement tu n'a pas compris l'objectif du Défi :développer juste pour le fun
C'est un solver, cela n'a aucune utilité !
On s'en fout totalement que cela servent, quel est l'intérêt d'avoir la solution d'un sudoku, seul l'exercice est intéressant en tant stimulation du cerveau, avoir la réponse n'a aucun intérêt !
En plus, Delphi je ne suis pas sur qu'il soit particulièrement compatabile avec une licence libre!
En tout cas pas mon Delphi 6 Entreprise sur lequel j'ai développé mon Solver !
Et tu l'as dit, tu es un joueur de Sudoku, donc quelque part dans ton cerveau, Dieu y a codé un Solver !
Dis-moi, tu critiques parce que tu es frusté de ne pas avoir réussi de développer ton propre solver ?
En plus, tu dois être un mauvais utilisateur, un des critères était l'importation de grille en mode texte, la partie saisie n'est la que pour décorer ! Tu crois que les Jury n'avait que cela à faire de passer leur temps à saisir ! Il y a des secrétaires pour ça !
Tu sais, moi je n'ai fait qu'une douzaine de grille, j'ai mis je crois moins de temps à programmer mon solver qu'à résoudre les grilles à la main !
Alors, au lieu de critiquer à postériori, reviens avec une IDEE NEUVE de Défi !
Propose le ! Enonce les Critères de Jugement !
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Salut,
J'ai voulu tester le solver de AndNotor mais j'ai un soucis au niveau de l'affichage. Est ce que je dois activer un truc?
Akim Merabet
Les défis Delphi suivent une règle :
- C'est le défieur qui fixe les règles et le cahier des charges.
Le défieur a voulu proposer un exercice de résolution de grilles, tester les capacités de chaque candidats, en particulier sur les performances. C'est ce qui a été fait.
Son cahier des charges n'est pas celui que tu aurais voulu ? ben ça ne regarde que toi. Tu étais libre de ne pas participer (tien d'ailleurs c'est ce que tu as fait).
Ce que tu demandes, ce n'est pas un défi, c'est qu'on te développe gratuitement ton logiciel de Sudoku sur mesure et qui répondra parfaitement a tes exigences.
Ca s'appelle un développement spécifique, et ça se paie...
Si tu veux lancer ton projet Open source, libre a toi, mais ne compte pas sur moi pour organiser ton projet.
Celà étant dit, je vais qu'en même répondre à quelques points :
Euh, et tu peux me dire dans quels cas, si tu arrives à remplir toute la grille en respectant les contraintes du Sudoku, et les révélés du départ, la solution ne serait pas valable ?Tel chiffre doit être dans cette case, et non peut l’être.
C’est là toute la différence entre un Sudoku et une grille quelconque*: il y a une réponse et une seule*!
Qu’est –ce que l’on constate dans les logiciels proposés*? Il n’existe aucun contrôle, et la première solution trouvée est présentée comme valable…
Certaines solutions autorisent effectivement a saisir des valeurs qui ne respectent pas les règles du Sudoku (genre plusieurs fois la même valeur sur la même ligne). Et il en a été tenu compte dans la notation.
Tout mon article s'appuie sur AI-Escargot, à l'exception de la réflexion "naïve" du départ, qui n'est la que pour présenter la méthode de résolution sur un cas trivial.Franck Soriano, auteur d’un remarquable tuto (je suis sincère) sur son Solver, s’est pris les pieds dans le tapis en appuyant sa démo sur une grille qui n’est pas un vrai Sudoku…
Pour le reste, l'article n'est qu'un exercice d'optimisation.
Ces grilles du commerce, qui les fabrique, de quelle manière*? Voilà encore une question intéressante que nos logiciels, lauréat ou non, ont soigneusement évitée, à l’exception de Bahmani, sauf erreur de ma part.Et bien justement, as tu seulement essaié de te poser la question de savoir comment s'y prend un "logiciel du commerce" pour créer une nouvelle grille ?La vitesse… C’est … le critère des faibles… En quoi cela présente la moindre importance pour un joueur de Sudoku, que la solution soit obtenue en 10 ms ou en 10 µs*? Je comprends que pour un informaticien, qui travaille sur des opérations répétées des millions de fois, ce soit une préoccupation majeure, mais cela ne doit pas occulter la finalité du logiciel*: la richesse des fonctions, l’ergonomie des accès.
La plupart des logiciels procèdent de la même manière :
- Ils essaient de placer un certain nombre de révélés au hasard, en fonction du niveau de difficultés demandée, puis vérifient l'existence d'une solution ET son unicité en tentant de résoudre la grille.
- Si la grille obtenue aléatoirement ne convient pas, ils recommencent jusqu'à réussir à trouver une solution satisfaisante.
Pour résoudre ce genre de problème, il te faut un solveur capable de résoudre une grille à solutions multiples (ne serait-ce que pour prouver que la grille possède effectivement plusieurs solutions), et qui soit performant !
Exactement le sujet du défi proposé.
dimanche2003> Premierement, tu dis que un solveur digne de ce nom ne doit pas résoudre un faux Sudoku, or : la grille d'exemple possede plusieurs solutions ...
Tu dis que c'est utile pour quelqu'un qui essayes de résoudre les grilles sur des magazines ou autres, mais elles n'ont pas forcément qu'une seule solution ...
On se heurte a un autre probleme : comment déterminer la difficulté d'une grille ? Meme des personnes qui étudient le sudoku n'y arrivent pas !on prend la peine –en général- de préciser la difficulté du problème pour ne pas que le débutant soit découragé s’il attaque une grille difficile, ou inversement pour que le joueur confirmé y trouve un certain plaisir…
Tres bonne question. Bien sur que pour un utilisateur normal, ca ne sert a rien ! Mais pour le défi, c'était un point tres important. Apres tout, un défi, ce n'est pas forcément l'élaboration d'un logiciel destiné au grand public. Certains arrivent a concilier les 2, mais le but d'un défi réside a mon avis dans l'algorithme...En quoi cela présente la moindre importance pour un joueur de Sudoku, que la solution soit obtenue en 10 ms ou en 10 µs*?
En plus, si quelqu'un veut par exemple résoudre toutes les grilles 17 (environ 40 000), il n'aura qu'a reprendre l'algo de résolution et faire sa propre interface !!
C'est illogique ! C'est comme si tu disais : Maintenant, on va voir quel solveur peut résoudre des mots croisés ! Le solveur n'est pas concu pour ca. Nouvelles regles, nouveau solveur.c’est pourquoi je propose au Jury de relancer la consultation avec cette fois pour critères d’analyse*:
1. Respect des règles
2. Évaluation de la difficulté
3. Génération de grilles
4. Ergonomie
5. Esthétique
6. Vitesse d’exécution
7. Propreté du code et divers à préciser
Mais bon, j'espere surtout que le prochain défi sera différent, et non une simple copie du précédent !
Kafeine > Ce bug arrive souvent quand ta fenetre perd ou prend le focus. Mais dans ton cas, c'est bizarre !
Articles :
Création d'un système de chat en Pascal
Programmes :
Défi Pascal 2011 - Mon Tetris
Défi Pascal 2010 - Mon système de chat
Défi Delphi 2009 - Mon Sudoku Solver
Retrouvez mes différents projets sur ma page personnelle.
Normalement, ça ne devrait pas, ou en tout cas pas un rendu partiel comme chez Kafeine. J'ai en effet constaté parfois que l'empilement était inversé (malgré le StayOnTop !), mais systématiquement lorsque mon PC était surchargé.
Là j'ai testé le dessin sur plusieurs fenêtres (autant joindre l'utile à l'agréable ), mais d'habitude, je me contente d'une seule fenêtre de dessin sur laquelle je reporte l'ensemble des images.
Articles :
Création d'un système de chat en Pascal
Programmes :
Défi Pascal 2011 - Mon Tetris
Défi Pascal 2010 - Mon système de chat
Défi Delphi 2009 - Mon Sudoku Solver
Retrouvez mes différents projets sur ma page personnelle.
Trés bon diagnostique.Envoyé par Andnotor
En effet en modifiant ce paramètre, l'application fonctionne nickel.
Félicitation pour ce boulot! j'adore
Akim Merabet
Oui, mais là c'est NormalizeToMosts qui ne fonctionne pas correctement. Les fiches StayOnTop restent dessus alors que la fiche principale (normale) passe dessous. J'ai bidouillé quelque chose avec OnActivate/OnDeactivate, mais c'est pas encore suffisant. J'aurais peut être dû encore ajouté un SendToBack .
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager