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 :

Afficher liste sur Prolog


Sujet :

Prolog

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Portugal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Afficher liste sur Prolog
    Salut à tous,
    J'ai un projet à réaliser sur Prolog qui consiste à créer le fameux puzzle de 8. Je suis nouveau avec ce langage du coup j'ai beaucoup de doutes c'est pourquoi je suis venu ici espérant que vous puissiez m'en résoudre un. Je bloque sur l'affichage du puzzle à l'écran, qui devrait envoyer 3 éléments par ligne.

    Voici mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Puzzle([1, 2, 3, 4, 5, 6, 7, 8, 0]).
    printe([]).
    printe([H|Puzzle]) :- write(H), nl, printe(Puzzle).
    Je vous serais reconnaissant si vous pouviez m'aider !

  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
    Une erreur : Les initiales des noms de prédicats sont en lettres minuscules !
    Attention ensuite, puzzle n'est pas une liste, c'est un prédicat, dans ce cas un fait, qui donne une liste.
    voici un code qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    puzzle([1, 2, 3, 4, 5, 6, 7, 8, 0]).
     
    affiche_puzzle :-
    	puzzle(Puzzle),
    	printe(Puzzle).
     
     
    printe([]).
    printe([H1,H2,H3|Puzzle]) :-
    	format('~w ~w ~w~n', [H1, H2, H3]),
    	printe(Puzzle).
    "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
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Portugal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci pour la réponse!! Cependant quand je test printe([H1,H2,H3|Puzzle]). ça me envoi ceci en résultat "_G4527 _G4530 _G4533
    Puzzle = [] ;". Je suppose que c'est pcq il n'associe pas les H aux valeurs des pièces du puzzle... mais puzzle ou Puzzle?

    Je vous serais reconnaissant si vous pouviez continuer à m'aider !

  4. #4
    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
    puzzle sous cette forme est un atome, qui dans l'expression puzzle([1,2,3]) devient un foncteur d'arité 1 (on note puzzle/1).
    Puzzle avec un p majuscule est une variable qui peut être unifiée avec n'importe quelle valeur.
    Cependant quand je test printe([H1,H2,H3|Puzzle]). ça me envoi ceci en résultat "_G4527 _G4530 _G4533
    Puzzle = [] ;". Je suppose que c'est pcq il n'associe pas les H aux valeurs des pièces du puzzle
    exact !
    "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

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Portugal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Ok jusque là mais l'erreur je ne la trouve pas...
    Pourquoi lorsque je fais appel à printe([H1, H2, H3|Puzzle]) il me renvoi ceci:
    "_G4716 _G4719 _G4722
    Puzzle = [] ;
    _G4843 _G4846 _G4849
    Puzzle = [_G4843, _G4846, _G4849]..." et pas les nombres?

    Je vous serais reconnaissant si vous continué à m'aider

  6. #6
    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
    Si vous faites
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ?  Puzzle = [1,2,3,4,5,6,7,8,0], printe(Puzzle) .
    vous aurez ce que vous voulez.
    "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

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/03/2008, 08h51
  2. afficher une liste sur plusieurs pages
    Par bigbathie dans le forum Struts 1
    Réponses: 1
    Dernier message: 28/12/2007, 09h47
  3. Réponses: 5
    Dernier message: 12/06/2006, 10h27
  4. [PHP-JS] Afficher une liste sur la page ?
    Par bzoler dans le forum Langage
    Réponses: 7
    Dernier message: 27/01/2006, 09h41
  5. [Struts]Affiche d'une liste sur plusieurs pages
    Par guillaume_85 dans le forum Struts 1
    Réponses: 3
    Dernier message: 24/06/2005, 20h23

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