Διαδρομές
/
Prolog
Prolog
/
Ασκήσεις
/
Γαμήλια βάσανα
Γαμήλια βάσανα

Γαμήλια βάσανα

Εύκολο

Εισαγωγή

Ο καλύτερός σου φίλος παντρεύεται και σου ζήτησε να αναλάβεις τη διοργάνωση του γάμου του. Δέχτηκες, αν και το μόνο που ξέρεις γι' αυτό το προηγούμενο είναι από μια ταινία... Όλα κυλούσαν ομαλά, ώσπου άρχισες να δουλεύεις τη διάταξη των θέσεων στο τραπέζι.

Πέντε καλεσμένοι θα παρευρεθούν, καθισμένοι γύρω από ένα μεγάλο, στρογγυλό τραπέζι. Ορίστε η λίστα των καλεσμένων:

  • Esteban, Gustavo, Jaime, Malena και Valeria.

Ο στόχος σου είναι να βρεις μια διάταξη θέσεων όπου όλοι θα είναι ευχαριστημένοι με τους διπλανούς τους. Δεν ξέρεις όλους όσο καλά θα ήθελες, αλλά να τι ξέρεις:

  • Ο Gustavo είναι ομιλητικός
  • Η Valeria είναι ομιλητική
  • Ο Esteban συμπαθεί τη Malena
  • Η Malena συμπαθεί τον Esteban
  • Ο Gustavo συμπαθεί τη Valeria (αλλά όχι το αντίστροφο!)

Όσοι συμπαθιούνται μπορούν να καθίσουν ο ένας δίπλα στον άλλο, αλλά μόνο όταν το νιώθουν και οι δύο. Τα ομιλητικά άτομα συνεννοούνται εύκολα και μπορούν να καθίσουν δίπλα σε οποιονδήποτε.

Με αυτές τις λεπτομέρειες στο χέρι, ήρθε η ώρα να σχεδιάσεις τη διάταξη των θέσεων!

Οδηγίες

Η αποστολή σου είναι να βρεις την τέλεια διάταξη θέσεων στο τραπέζι. Θα το κάνεις αυτό δηλώνοντας γεγονότα (πράγματα που είναι πάντα αληθή) και κανόνες (πράγματα που είναι αληθή υπό προϋποθέσεις).

1. Κατέγραψε τα άτομα που μιλάνε πολύ

Όρισε το γεγονός chatty ώστε να αναπαριστά τα άτομα που μιλάνε πολύ. Το γεγονός chatty παίρνει ένα μόνο όρισμα: το πεζό όνομα του ατόμου που μιλάει πολύ.

chatty(gustavo).
true.

2. Κατέγραψε ποιος συμπαθεί ποιον

Όρισε το γεγονός likes ώστε να αναπαριστά ποιος συμπαθεί ποιον. Το γεγονός likes παίρνει δύο ορίσματα:

  1. Το πεζό όνομα του ατόμου που συμπαθεί το άλλο άτομο
  2. Το πεζό όνομα του ατόμου που συμπαθείται
likes(esteban, malena).
true.

3. Άτομα που συμπαθεί το ένα το άλλο αποτελούν καλό ταίριασμα

Όρισε τον κανόνα pairing ώστε να είναι αληθής όταν και τα δύο άτομα συμπαθούν το ένα το άλλο. Ο κανόνας pairing παίρνει δύο ορίσματα:

  1. Το πεζό όνομα του πρώτου ατόμου
  2. Το πεζό όνομα του δεύτερου ατόμου
pairing(malena, esteban).
true.

4. Τα άτομα που μιλάνε πολύ ταιριάζουν με τον καθένα

Όρισε τον κανόνα pairing ώστε να είναι αληθής όταν (τουλάχιστον) ένα από τα δύο άτομα που ταιριάζουν μιλάει πολύ.

pairing(valeria, jaime).
true.

5. Έλεγξε τη διάταξη θέσεων

Όρισε τον κανόνα seating ώστε να είναι αληθής όταν και τα πέντε ζευγάρια είναι καλά ταιριάσματα.

Ο κανόνας pairing παίρνει πέντε ορίσματα:

  1. Το πεζό όνομα του πρώτου ατόμου
  2. Το πεζό όνομα του δεύτερου ατόμου
  3. Το πεζό όνομα του τρίτου ατόμου
  4. Το πεζό όνομα του τέταρτου ατόμου
  5. Το πεζό όνομα του πέμπτου ατόμου

Χρησιμοποίησε τα γεγονότα και τους κανόνες που μόλις όρισες για να ελέγξεις τη διάταξη θέσεων.

seating(esteban, jaime, gustavo, malena, valeria).
false.
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Prolog Exercism

Έτοιμος να ξεκινήσεις την άσκηση Γαμήλια βάσανα;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Prolog με 109 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.