2 Συγκέντρωση αγαθών

(1-4 άτομα)

 

Περιγραφή

Δύο αντίπαλες ομάδες ευφυών εικονικών πρακτόρων με διαφορετικές ικανότητες προσπαθούν να συγκεντρώσουν συγκεκριμένα αγαθά από το κοινό περιβάλλον τους.

Ανάλυση

 Ο εικονικός κόσμος είναι επίπεδος και αποτελείται από wx hτετράγωνες θέσεις.

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

 Σε κάθε χρονική στιγμή, σε κάθε θέση μπορεί να υπάρχει (α) ένα μέρος συγκεκριμένου πόρου, (β) ένα μέρος συγκεκριμένου χωριού, ή (γ) τίποτα (κενός χώρος).

 Κάθε ομάδα προσπαθεί να συγκεντρώσει στο χωριό της συγκεκριμένο αριθμό από συγκεκριμένα αγαθά (π.χ., 2xχρυσό, 3xσίδηρο, 10xσιτηρά).

 Κάθε πράκτορας μπορεί να μεταφέρει μία μονάδα από κάποιο αγαθό.

 Ο κάθε πράκτορας της πρώτης ομάδας αναζητά αγαθά από κάποιο συγκεκριμένο πόρο.

 Οι πράκτορες της δεύτερης ομάδας δεν έχουν προκαθορισμένους ρόλους. Έτσι, μεταφέρουν στο χωριό τους μονάδες αγαθών από οποιοδήποτε πόρο τύχει να συναντήσουν κατά την περιπλάνησή τους.

 Η κάθε ομάδααποτελείται από έναν έως nπράκτορες.

 Οι πράκτορες έχουν δυνατότητες αντίληψης του περιβάλλοντα χώρου τους: πιο συγκεκριμένα, μπορούν να αντιληφθούν αν οι γειτονικές τους θέσεις είναι κενές ή περιέχουν κάποιον άλλο πράκτορα ήτμήμα συγκεκριμένου πόρου.

 Οι πράκτορες της πρώτης ομάδας έχουν δύο ικανότητες:

1. Μετακίνηση σε γειτονική θέση

2. Ανταλλαγή γνώσης με πράκτορες σε γειτονικές θέσεις

 Οι πράκτορες της δεύτερης ομάδας έχουν μόνο την ικανότητα μετακίνησης σε γειτονικές θέσεις, αλλά με τη διπλάσια ταχύτητα.

 Αρχικά οι πράκτορες δεν γνωρίζουν τη δομή της πεδιάδας, δηλαδή ποιές θέσεις ανήκουν σε πόρους ή χωριά.

 Νικήτρια θεωρείται όποια ομάδα συγκεντρώσει πρώτη τα απαιτούμενα αγαθά.

 

Εκτέλεση

 Κάθε πράκτορας ξεκινά από το χωριό του και κινείται προσπαθώντας να εντοπίσει είτε συγκεκριμένο είτε οποιοδήποτε πόρο, ανάλογα με το σε ποιά ομάδα ανήκει. Κατά την κίνησή τους, οι πράκτορες επιλέγουν τυχαίες κατευθύνσεις αλλά δεν προσπαθούν να επισκεφθούν μέρη της πεδιάδας τα οποία έχουν ήδη επισκεφθεί.

 

 

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

 Όταν κάποιος πράκτορας αποκτήσει γνώση σχετικά με τη θέση κάποιου πόρου ο οποίος τον ενδιαφέρει κινείται προσπαθώντας να φτάσει σε αυτόν.

 Αν ένας πράκτορας που δε μεταφέρει τίποτα μετακινηθεί σε θέση η οποία ανήκει σε κάποιο πόρο θεωρείται ότι αρχίζει να μεταφέρει μία μονάδα από το αγαθό που παράγει ο συγκεκριμένος πόρος.

 Ένας πράκτορας ο οποίος αρχίζει να μεταφέρει μία μονάδα από οποιαδήποτε αγαθό σταματάει να αναζητά πόρους και αρχίζει να κινείται προς το χωριό του.

 Αν ένας πράκτορας που μεταφέρει μία μονάδα από κάποιο αγαθό μετακινηθεί σε θέση η οποία ανήκει στο χωριό του θεωρείται ότι η μονάδα προστίθεται στα συσσωρευμένα αγαθά του χωριού ενώ ο πράκτορας σταματά να μεταφέρει οτιδήποτε και ξεκινά πάλι να αναζητά πόρους.

 Η εκτέλεση ολοκληρώνεται μόλις κάποια ομάδα συγκεντρώσει τουλάχιστον τα απαιτούμενα αγαθά.

 

Προδιαγραφές

 Ο εικονικός κόσμος θα περιγράφεται σε αρχείο κειμένου στον οποίο οι θέσεις που ανήκουν σε πόρους θα σημειώνονται με ένα χαρακτήρα που θα προσδιορίζει μοναδικά τον κάθε πόρο (π.χ., “W” για “Wood”, “G” για “Gold”, κ.τ.λ.), οι θέσεις που ανήκουν σε χωριά με τα ψηφία “1” ή “2” και οι κενές θέσεις με κενό.

 Η διεπαφή της εφαρμογής θα είναι παραθυρική.

 Η διεπαφή της εφαρμογής θα εμφανίζει μία κάτοψη του εικονικού κόσμου σε κάθε χρονική στιγμή, στην οποία θα εμφανίζονται τα χωριά, οι πόροι και οι πράκτορες.

 Η διεπαφή της εφαρμογής θα παρέχει κατάλληλα μέσα για την επιλογή (και αποεπιλογή) ενός πράκτορα (π.χ. μέσω λίστας) και την οπτική απεικόνιση των μερών της πεδιάδας για τα οποία ο επιλεγμένος πράκτορας έχει γνώση (π.χ.,  μέσω σκίασης περιοχών της κάτοψης ή τμηματικής απεικόνισής της και εμφάνισης χαρακτήρων για πόρους τη θέση των οποίων γνωρίζει). Επίσης, η διεπαφή θα παρουσιάζει το τι μεταφέρει κάθε πράκτορας ο οποίος μεταφέρει κάτι καθώς και τα συσσωρευμένα αγαθά του κάθε χωριού.

 Η διεπαφή της εφαρμογής θα παρέχει κατάλληλα μέσα για την φόρτωση αρχείου περιγραφής, τον καθορισμό των απαιτούμενων αγαθών ανά χωριό καθώς επίσης και την έναρξη, την παύση και τη ματαίωση της εκτέλεσης. Επιπλέον, η εφαρμογή θα επιτρέπει την επανέναρξη της εκτέλεσης μετά από ματαίωση χωρίς να είναι αναγκαία η εκ νέου φόρτωση αρχείου περιγραφής.

 Η εφαρμογή θα καταγράφει σε αρχείο κειμένου διάφορα στατιστικά στοιχεία για την κάθε εκτέλεση, τα οποία θα περιέχουν τουλάχιστον το χρόνο εκτέλεσης, τον αριθμό των βημάτων του κάθε πράκτορα, τον αριθμό των ανταλλαγών γνώσης στις οποίες ο κάθε πράκτορας έλαβε μέρος και τη νικήτρια ομάδα.

 

Τεκμηρίωση

 

Η τεκμηρίωση της εφαρμογής θα περιλαμβάνει τα εξής:

 

1. Περιγραφή του προβλήματος

2. Περιγραφή της θεωρητικής βάσης της εφαρμογής, συμπεριλαμβανομένων των δομών δεδομένων και αναπαράστασης γνώσης που υιοθετήθηκαν, των αλγορίθμων και

 

 

μεθοδολογιών που χρησιμοποιήθηκαν, καθώς και των προσαρμογών και μεταβολών που έγιναν στα παραπάνω προκειμένου να είναι δυνατή η εφαρμογή τους στο συγκεκριμένο πρόβλημα

3. Περιγραφή σημαντικών σχεδιαστικών αποφάσεων και στοιχείων υλοποίησης

4. Ολοκληρωμένη περιγραφή μίας παραδειγματικής εκτέλεσης και των αποτελεσμάτων της

5. Αναλυτική περιγραφή της διαδικασίας εγκατάστασης

6. Περιγραφή πρόσθετων δυνατοτήτων της εφαρμογής, εάν υπάρχουν

7. Αναλυτική περιγραφή της συμβολής του κάθε μέλους της ομάδας

8. Αναλυτική περιγραφή ανοικτών θεμάτων, ανεπίλυτων προβλημάτων και πιθανοτήτων εμφάνισης σφαλμάτων κατά την εκτέλεση

 

Είναι σημαντικό να υπάρχουν αναλυτικά και επεξηγημένα screenshots από την εκτέλεση της εφαρμογής

 

Παραδοτέα

1. Η εφαρμογή σε εκτελέσιμη μορφή

2. Πηγαίος κώδικας για το σύνολο της εφαρμογής

3. Τεκμηρίωση

4. Τουλάχιστον ένα παράδειγμα το οποίο θα συνοδεύεται από αντίστοιχο αρχείο στατιστικών για συγκεκριμένα απαιτούμενα αγαθά ανά χωριό.

 

 

 

ΣΗΜΕΙΩΣΗ :

Η επιλογή γλωσσών και πλατφόρμας υλοποποίησης είναι ελεύθερη.

Σε περίπτωση υλοποίησης με Unity ή με άλλη ολοκληρωμένη πλατφόρμα, οι προδιαγραφές προσαρμόζονται ανάλογα (π.χ., αρχείο περιγραφής, διεπαφή, κ.τ.λ.)