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

Prolog Discussion :

SUDOKU projet PROLOG


Sujet :

Prolog

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut SUDOKU projet PROLOG
    Bonjour à tous,
    je dois réaliser un programme Prolog capable de résoudre des grilles de sudoku.
    tout d'abord on me demande de générer une grille 9x9 vide de cette forme:

    [[9,9,0],[9,8,0],.....[9,1,0],[8,9,0],[8,8,0]....[8,1,0],[7,9,0],[7,8,0],...[7,1,0],[6,9,0].....[6,1,0],....[1,1,0]]


    (j'ai abrégé la liste car trop long à écrire).

    Mon problème est que je ne vois pas comment construire une liste de taille 81 éléments, dont chaque élément est lui même une liste mais cette fois de 3 chiffres.
    J'ai essayé de construire des listes puis de faire un append mais je n'arrive pas au bon résultat, de plus mes listes n'étaient pas constituées des chiffres comme indiqué ci-dessus car j'utilisais length (donc attribution de _G0238 et autres)

    Merci de votre aide, j'en ai grandement besoin

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Mes réponses sont valables en SWI-Prolog. Pour les autres Prolog, je ne sais pas.

    Générer une liste de 81 éléments se fait en faisant tout simplement Ensuite, etudie le prédicat maplist qui te permettra de transformer chaque élément de ta liste en ce que tu veux.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse, je connaissais maplist mais peut être que je l'ai mal utilisé.
    J'essaye à nouveau avec la documentation que tu ma donnée et je donne des nouvelles bientôt.
    (ps: c'est bien SWI-prolog)

  4. #4
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Citation Envoyé par -queen- Voir le message
    Bonjour à tous,
    je dois réaliser un programme Prolog capable de résoudre des grilles de sudoku.
    tout d'abord on me demande de générer une grille 9x9 vide de cette forme:

    [[9,9,0],[9,8,0],.....[9,1,0],[8,9,0],[8,8,0]....[8,1,0],[7,9,0],[7,8,0],...[7,1,0],[6,9,0].....[6,1,0],....[1,1,0]]


    (j'ai abrégé la liste car trop long à écrire).

    Mon problème est que je ne vois pas comment construire une liste de taille 81 éléments, dont chaque élément est lui même une liste mais cette fois de 3 chiffres.
    J'ai essayé de construire des listes puis de faire un append mais je n'arrive pas au bon résultat, de plus mes listes n'étaient pas constituées des chiffres comme indiqué ci-dessus car j'utilisais length (donc attribution de _G0238 et autres)

    Merci de votre aide, j'en ai grandement besoin
    As-tu consulté le cours à ce sujet présent sur prolog.developpez.com ?

  5. #5
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Je n'ai pas parlé de cet article car c'est un peu trop "évolué" pour une débutante.
    Une précision maplist n'est utile que pour générer une liste vide de 81 listes vides, pas pour autre chose.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Voilà mon prédicat qui a l'air de bien fonctionner:

    creer_liste(0,[]).
    creer_liste(T,[X|L]):- T>0, Tm1 is T-1, creer_liste(Tm1,L),length(X,3).

    En effet:
    creer_liste(4,L).
    L = [[_G31884, _G31887, _G31890], [_G31875, _G31878, _G31881], [_G31866, _G31869, _G31872], [_G31857, _G31860, _G31863]]

    Il ne me reste plus qu'à remplacer les valeurs au hasard par les valeurs fixées dont je vous ai parlé plus haut...
    Je retourne au travail

Discussions similaires

  1. projet prolog Transport en commun
    Par diasgo dans le forum PCU
    Réponses: 0
    Dernier message: 30/04/2013, 02h03
  2. 2ème projet Prolog
    Par xeron33 dans le forum Prolog
    Réponses: 21
    Dernier message: 07/09/2009, 23h31
  3. petit projet Prolog
    Par xeron33 dans le forum Prolog
    Réponses: 12
    Dernier message: 27/08/2009, 11h04
  4. [Projet Sudoku] Retour à l'algo
    Par Rolf-IV dans le forum C
    Réponses: 3
    Dernier message: 08/03/2007, 14h14
  5. projet sudoku
    Par masterix59 dans le forum C
    Réponses: 8
    Dernier message: 06/12/2006, 08h02

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