Kurzusok
/
Prolog
Prolog
/
Feladatok
/
Lakodalmi gondok
Lakodalmi gondok

Lakodalmi gondok

Könnyű

Bevezetés

A legjobb barátod éppen házasodik, és megkért, hogy legyél te az esküvőszervezője. Elvállaltad, pedig minden, amit erről tudsz, egy filmből származik... Minden simán ment, amíg el nem kezdtél foglalkozni az ülésrenddel.

Öt vendég érkezik, akik egy nagy, kerek asztal körül foglalnak helyet. Íme a vendéglista:

  • Esteban, Gustavo, Jaime, Malena és Valeria.

A célod, hogy olyan ülésrendet találj, ahol mindenki elégedett a szomszédaival. Nem ismered mindenkit annyira, amennyire szeretnéd, de amit tudsz, az a következő:

  • Gustavo beszédes
  • Valeria beszédes
  • Esteban kedveli Malenát
  • Malena kedveli Estebant
  • Gustavo kedveli Valeriát (de ez fordítva nem igaz!)

Azok, akik kedvelik egymást, egymás mellé ülhetnek, de csak akkor, ha mindketten így éreznek. A beszédes emberek könnyen szót értenek egymással, ezért bárki mellé leülhetnek.

Ha ezeket a részleteket ismered, itt az idő, hogy felvázolj egy ülésrendet!

Utasítások

A feladatod, hogy megtaláld a tökéletes ülésrendet az asztalnál. Ezt úgy éred el, hogy tényeket (mindig igaz dolgokat) és szabályokat (feltételesen igaz dolgokat) deklarálsz.

1. Sorold fel a beszédes embereket

Definiáld a chatty tényt, amely a beszédes embereket jelöli. A chatty tény egyetlen argumentumot vár: a beszédes ember kisbetűs nevét.

chatty(gustavo).
true.

2. Sorold fel, hogy ki kit kedvel

Definiáld a likes tényt, amely azt jelöli, hogy ki kit kedvel. A likes tény két argumentumot vár:

  1. Annak a személynek a kisbetűs neve, aki a másikat kedveli
  2. A kedvelt személy kisbetűs neve
likes(esteban, malena).
true.

3. Az egymást kedvelő emberek jó párost alkotnak

Definiáld a pairing szabályt úgy, hogy az igaz legyen, ha a két ember kölcsönösen kedveli egymást. A pairing szabály két argumentumot vár:

  1. Az első személy kisbetűs neve
  2. A második személy kisbetűs neve
pairing(malena, esteban).
true.

4. A beszédes emberek bárkivel alkotnak párost

Definiáld a pairing szabályt úgy, hogy az igaz legyen, ha a párosított két ember közül (legalább) az egyik beszédes.

pairing(valeria, jaime).
true.

5. Ellenőrizd az ülésrendet

Definiáld a seating szabályt úgy, hogy az igaz legyen, ha mind az öt pár jó párosítás.

A pairing szabály öt argumentumot vár:

  1. Az első személy kisbetűs neve
  2. A második személy kisbetűs neve
  3. A harmadik személy kisbetűs neve
  4. A negyedik személy kisbetűs neve
  5. Az ötödik személy kisbetűs neve

Az imént definiált tényekkel és szabályokkal ellenőrizd az ülésrendet.

seating(esteban, jaime, gustavo, malena, valeria).
false.
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Prolog Exercism

Készen állsz elkezdeni a(z) Lakodalmi gondok feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Prolog nyelvet 109 feladat segítségével, valódi emberi mentorálással, mindez ingyen.