Parcours
/
Prolog
Prolog
/
Exercices
/
Les malheurs du mariage
Les malheurs du mariage

Les malheurs du mariage

Facile

Introduction

Ton meilleur ami se marie et t'a demandé d'être son organisateur de mariage. Tu as accepté, même si tout ce que tu sais sur le sujet vient d'un film... Tout se passait bien, jusqu'à ce que tu t'attaques au plan de table.

Cinq invités seront présents, assis autour d'une grande table ronde. Voici la liste des invités :

  • Esteban, Gustavo, Jaime, Malena et Valeria.

Ton objectif est de trouver une disposition des places où chacun est content de ses voisins. Tu ne connais pas tout le monde aussi bien que tu le voudrais, mais voici ce que tu sais :

  • Gustavo est bavard
  • Valeria est bavarde
  • Esteban apprécie Malena
  • Malena apprécie Esteban
  • Gustavo apprécie Valeria (mais ce n'est pas réciproque !)

Les personnes qui s'apprécient peuvent être assises l'une à côté de l'autre, mais seulement si c'est réciproque. Les personnes bavardes s'intègrent facilement et peuvent être assises à côté de n'importe qui.

Maintenant que tu as tous ces détails, il est temps d'esquisser un plan de table !

Instructions

Ta tâche consiste à trouver la disposition idéale des places à table. Pour cela, tu vas déclarer des faits (des choses qui sont toujours vraies) et des règles (des choses qui sont vraies sous certaines conditions).

1. Liste les personnes bavardes

Définis le fait chatty pour représenter les personnes bavardes. Le fait chatty prend un seul argument : le nom en minuscules de la personne bavarde.

chatty(gustavo).
true.

2. Liste qui aime bien qui

Définis le fait likes pour représenter qui aime bien qui. Le fait likes prend deux arguments :

  1. Le nom en minuscules de la personne qui aime bien l'autre
  2. Le nom en minuscules de la personne qui est aimée
likes(esteban, malena).
true.

3. Deux personnes qui s'aiment bien forment une bonne paire

Définis la règle pairing comme vraie lorsque chacune des deux personnes aime bien l'autre. La règle pairing prend deux arguments :

  1. Le nom en minuscules de la première personne
  2. Le nom en minuscules de la seconde personne
pairing(malena, esteban).
true.

4. Les personnes bavardes forment une paire avec n'importe qui

Définis la règle pairing comme vraie lorsqu'au moins une des deux personnes mises en paire est bavarde.

pairing(valeria, jaime).
true.

5. Vérifie la disposition des places

Définis la règle seating comme vraie lorsque les cinq paires sont de bonnes paires.

La règle pairing prend cinq arguments :

  1. Le nom en minuscules de la première personne
  2. Le nom en minuscules de la seconde personne
  3. Le nom en minuscules de la troisième personne
  4. Le nom en minuscules de la quatrième personne
  5. Le nom en minuscules de la cinquième personne

Utilise les faits et les règles que tu viens de définir pour vérifier la disposition des places.

seating(esteban, jaime, gustavo, malena, valeria).
false.
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Prolog Exercism

Prêt à commencer Les malheurs du mariage ?

Inscris-toi sur Exercism pour apprendre et maîtriser Prolog avec 109 exercices, et un vrai mentorat humain, le tout gratuitement.