IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

[Défi] Le Défi Delphi n°5 : Le Sudoku solver


Sujet :

Delphi

  1. #441
    Inactif
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 182
    Par défaut Attention a la confusion
    Il ne faut pas confondre mal voyant et non voyant
    la problématique n'est pas la même et leur nombre non plus

    Ma cible est tout ces gens qui arrêtent de lire le journal parce qu'il est devenu trop petit à lire et qui éventuellement refusent de porter de lunettes

    Combien de gens arrêtent de faire les mots croisés du Parisien dans
    le métro parce qu'ils voient mal ?
    Je n'ai pas trouver comment changer la tailles des bitmaps dans les menus
    alors je cherche une autre solution


    Boris Malvoyant
    Le zoom integre de windows est vraiment remarquable...Merci

  2. #442
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Bonjour Papy,

    Je n'ai pas trouver comment changer la tailles des bitmaps dans les menus alors je cherche une autre solution
    ... Suggestion : utiliser une loupe logicielle indépendante de toutes les applis : un loupe grossit aussi bien du texte que des bitMap's.

    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  3. #443
    Inactif
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 182
    Par défaut Loupe
    En realite mon logiciel est pour les handicapes qui ont comme moi des
    problemes de coordination et de curseur; pas pour les voir mais pour les mettre ou l'on veut

    La loupe ne va pas dans ce cas la car en realite la 'hauteur' de l'item reste proportionnelle : 16 alors qu'en mettant une bitmap de 32 j'espère que cela me facilitera la vie et aux autres aussi
    Mais l'idée d'une loupe hors l'excellente de windows est une idee interessante car je pense Linux et Mac OS j'ai plus de chance de trouver un composant multiplateforme que de voir tous les OS faire pareil
    Je rassure les modérateurs mon logiciel utilise le solveur objet du défis
    C'est en l'écrivant et en voyant mes propres difficulté que l'idée m'est veu(mais n'a rien d'extraordinaire seulement confortable je l'espère.
    Papy

  4. #444
    Inactif
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 182
    Par défaut AI escargot
    Dans l'indifférence la plus complète et uniquement pour la gloire
    mon solveur (non brute force ) vient de résoudre la grille
    en 290 micro secondes (pas milli micro) Après c'est les nanos et les nanos c'est l'unité pour les cycles des instructions 1 Giga = 1 Milliard
    Si vous permettez un commentaire: entièrement en Pascal et pas une ligne d'ASM Ce qui est important ce n'est pas l'outil mais sa maitrise.

    Ma mère qui était une fine mathématicienne et amoureuse des chifres apprécierait: du combinatoire simple. Les chiffres font le reste...
    Je te dédies ce record aussi vain que le reste.

    Papy

  5. #445
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    Quelles configurations materielles as tu?

  6. #446
    Inactif
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 182
    Par défaut Config
    Citation Envoyé par darrylsite Voir le message
    Quelles configurations materielles as tu?
    C'est étrange j'ai déjà répondu a ce message....
    Xp pack 2
    Delphi 6
    Core deux duo a 2,4

    2 giigas de mémoire
    Pas de treading ou d'usage de multi coeur

    (Je n'ai toujours pas reussi a compiler avec LAZARUS)

  7. #447
    Inactif
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 182
    Par défaut Grilles
    @mick
    Tu trouveras les éléments promis dans le zip
    Pour éviter d'éventuels curieux il y a un mot de passe sur l'archive...

    Par une nouvelle opération du Saint esprit j'ai un message qui a disparu du forum. N'ayant pas reçu de messsages de moderarion je soupconnes les Goules que j'ai vaincu au niveau 17 de se venger...
    En réalite dans ce message je remerciais ceuw qui m'avait aide dans sa réalisation et son ajout dans la signatuire(desol" s'il nb'y a pas de modérateurs dans le tas: mais c'est pas une obligation?

    Il s'agit en réalité de ce que l'on appelle un carre parfait
    Vous trouverez un certain nombre de sites expliquant dont il me semble celui de Christian Boyer spécialiste de renom


    Cet ancêtre du Sudoku a des caractéristique precise
    toutes les rangées, colonnes,diagonales, diagonales brisées on lr mrmr yotal Mais en plus chaque demi ensembles aussi

    On ne connaissait qu'un seul carre parfait
    J'ai réussi a modeliser le principe et j'ai pu déterminer qu'il n'existait
    en réalité que 8 carres parfaits (toutes taille confondues)et a les calcules. Cela ne sert à rien si ce n'est a faire avancer la connaissance humaine

    Boris

    PS Il existe quelques défis rémunérer (100 euros) sur lle site multimagique
    PS2 je vais surveiller si les Goules sont parties autrement cela va saigner

  8. #448
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Bon, j'ai codé cette méthode de XWing, SwordFish, etc ... Mais bon, ca résoud pas plus de grille (comme je me doutais)

  9. #449
    Inactif
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 182
    Par défaut XWing
    Il est certain que ces techniques sont marginales
    le gros du travail est la gestion au niveau 'paires'
    Même les trio sont rares et quand tu es rendu a ce genre de methodes
    l'hypothèse n'est pas loin.
    Boris

  10. #450
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    Citation Envoyé par mick605 Voir le message
    Bon, j'ai codé cette méthode de XWing, SwordFish, etc ... Mais bon, ca résoud pas plus de grille (comme je me doutais)
    J'ai remarqué aussi que les xwing, xchain, forced chain n'apporte rien de special. Ce qu'ils apportent c'est plutot un temps d'execution beaucoup elevé.

  11. #451
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Citation Envoyé par darrylsite Voir le message
    J'ai remarqué aussi que les xwing, xchain, forced chain n'apporte rien de special. Ce qu'ils apportent c'est plutot un temps d'execution beaucoup elevé.
    C'est vrai ... Quoi que cette technique de X-Wing, etc est plus rapide chez moi que l'interaction il me semble ...

  12. #452
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    Citation Envoyé par mick605 Voir le message
    C'est vrai ... Quoi que cette technique de X-Wing, etc est plus rapide chez moi que l'interaction il me semble ...
    Chez moi aussi, le xwing est bien plus rapide. Seulement comme trouver ces configurations sont quelque fois bien rare, l'ajouter à la liste des traitements fait croitre le cout total de calcul.

    Le truc c'est que si on pouvais choisir les bonnes methodes à utiliser, on aurait sans doute de meilleurs chronos, seulement il y a des taitrements qui parfois pour une grille donnée sont inutiles ou ralentissent la resolution. Et c'est souvent le cas des xswing, et autres. Par exemple pour la grille 1, si j'utilise le candidat unique et la recherches des paires sue les colonnes uniquement, je fais un chrono de 80 microseconde.

  13. #453
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    C'est vrai ... Mais moi j'ai une autre maniere de proceder : J'ai une liste de techniques a la suite, et si la premiere ne trouve rien, la deuxieme s'y met, puis la troisieme etc. Si une technique trouve quelque chose, on recommence a la premiere. Ce qui fait que pour la premiere grille, meme si le X-Wing est codé, la résolution ne l'utilisera jamais, et donc ne changera pas le temps ...

    Cette technique a par contre des inconvénients : si une grille a besoin plusieurs fois du X-Wing pour continuer, ben le programme va passer la liste des techniques plusieurs fois ... Enfin, ca serait possible d'optimiser, mais bon ...

    Sinon, tu parles de chronos .... T'en as alors ? Vas y poste les


    Enfin, ce qui m'embete, c'est de coder des méthodes telles que le x-wing, les chaines, etc alors que la majorité des grilles ne s'en serviront pas ... Enfin , faut bien ca !

  14. #454
    Membre Expert

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Par défaut Fin du Défi le 30 septembre 2009
    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.

  15. #455
    Membre éclairé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Par défaut
    Salut à tou(te)s

    Je viens de récupérer internet après un déménagement qui m'a valu 4 semaines d'interruption... Je commence à me poser des questions sur le sérieux de mon fournisseur d'accès, que je ne nommerai pas

    Juste une question avant d'envoyer ma solution
    Dans la description du défi, je lis
    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)
    Il faut donc que le solveur affiche le temps calculé pour la résolution
    Avec quelle précision ?
    Autre chose, vu que les chronomètres ne seront pas tous codés à l'identique, est-ce que ça ne risque pas de fausser les comparaisons

    Désolé si ces questions ont déjà été posées ici, je n'ai pas relu toute la discussion

  16. #456
    Membre Expert

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Par défaut
    Citation Envoyé par OutOfRange Voir le message
    Il faut donc que le solveur affiche le temps calculé pour la résolution
    Avec quelle précision ?
    Autre chose, vu que les chronomètres ne seront pas tous codés à l'identique, est-ce que ça ne risque pas de fausser les comparaisons
    Tu dois prévoir une précision suffisante pour mesurer les temps de résolution de ton solveur.
    Si ce dernier met plusieurs secondes pour résoudre une grille, tu peux te contenter de mesurer le temps en ms avec des GetTickCount.
    Si le temps de résolution est inférieur à 20 ms, il va falloir quelque chose de plus précis, comme par exemple QueryPerformanceCounter, qui a déjà été expliqué précédemment dans cette discussion.

    Ensuite, de toute façon on vérifiera ce qui est chronométré, si le chronomètre est fiable...

  17. #457
    Membre éclairé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Par défaut
    Citation Envoyé par Franck SORIANO
    Si le temps de résolution est inférieur à 20 ms, il va falloir quelque chose de plus précis, comme par exemple QueryPerformanceCounter
    OK Franck mais je parlais uniquement de l'affichage via un formatfloat par ex
    Est-ce que le temps affiché doit permettre des comparaisons précises pour les seuls besoins du défi ?
    D'un point de vue IHM pur, je ne vois pas d'intérêt à afficher les temps en millisecondesx10^-3...

    Citation Envoyé par Franck SORIANO
    Si ce dernier met plusieurs secondes pour résoudre une grille
    Bon d'accord, les temps que j'avais annoncés jusqu'ici n'étaient pas terribles, mais quand même
    Pour la petite histoire, j'avais laissé traîner une commande du genre TStringGrid.Repaint au beau milieu de mes boucles de résolution, qui me plombait mes temps bien comme il faut...

  18. #458
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    OutOfRange > Ca arrive, moi j'avais laissé un affichage de mémo au début ...
    T'es descendu en dessous de la milliseconde ?

    Bon, j'ai une question : J'ai un bouton et un MenuItem qui doivent se comporter exactement pareil. Est ce qu'il existe un moyen (simple) d'arriver a ce résultat ? Par exemple, ils doivent avoir les memes évenements (facile), et que quand un des deux a sa propriété Enabled a false, l'autre l'ait aussi ?

  19. #459
    Membre Expert

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Par défaut
    Citation Envoyé par mick605 Voir le message
    Bon, j'ai une question : J'ai un bouton et un MenuItem qui doivent se comporter exactement pareil. Est ce qu'il existe un moyen (simple) d'arriver a ce résultat ? Par exemple, ils doivent avoir les memes évenements (facile), et que quand un des deux a sa propriété Enabled a false, l'autre l'ait aussi ?
    Le composant TActionList(et bien sur TAction) est fait pour ça !


    Citation Envoyé par OutOfRange
    D'un point de vue IHM pur, je ne vois pas d'intérêt à afficher les temps en millisecondesx10^-3...
    C'est à toi de voir ce qui est le plus claire et le plus lisible. Il faut qu'on comprenne.

  20. #460
    Membre éclairé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Par défaut
    Citation Envoyé par Franck SORIANO
    C'est à toi de voir ce qui est le plus claire et le plus lisible. Il faut qu'on comprenne.
    Désolé Franck mais là c'est moi qui ne comprends pas

    Est-ce que le temps affiché doit permettre des comparaisons précises pour les seuls besoins du défi ?

    Apparemment la réponse est non...

    Citation Envoyé par mick605
    T'es descendu en dessous de la milliseconde ?
    Uniquement pour les grilles les + faciles. Je n'ai pas modifié mes choix chronovores du départ : utilisation des set of et résolution logique avec hypothèses (pas de "brute force")

Discussions similaires

  1. Défi Migration de delphi 3 à delphi 8
    Par sitalebs dans le forum EDI
    Réponses: 8
    Dernier message: 03/01/2008, 14h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo