ΗΥ-252 Αντικειμενοστρεφής Προγραμματισμός Προγραμματιστική Εργασία Χειμερινού Εξαµήνου 2005



Σχετικά έγγραφα
Ένα διασκεδαστικό παιχνίδι με αγορές, ενοικιάσεις και πωλήσεις ιδιοκτησιών σε όλη την Ελλάδα!

ΗΥ 252 Αντικειμενοστρεφής Προγραμματισμός Προγραμματιστική Εργασία Χειμερινού Εξαμήνου Σκάκι

Ιεραρχία Οργανισµών Οι οργανισµοί που ζουν στο οικοσύστηµά µας κατατάσσονται σύµφωνα µε την παρακάτω ιεραρχία: Organisms

2.2 Ειδικά Φύλλα Mahjong Phoenix - Φοίνικας Hund - Σκυλάκια Drache - Δράκος... 5

Οντοκεντρικός Προγραμματισμός II C++ Project Xειμερινό Εξάμηνο Organisms

ΗΥ252 - Οντοκεντρικός Προγραµµατισµός Προγραµµατιστική Εργασία Εαρινού Εξαµήνου 2004 Περιγραφή Παραδοτέων

ΠΕΡΙΕΧΟΜΕΝΑ ΤΟΥ ΠΑΙΧΝΙΔΙΟΥ

ΠΡΟΕΤΟΙΜΑΣΙΑ ΠΑΡΑΔΕΙΓΜΑ ΠΡΟΕΤΟΙΜΑΣΙΑΣ ΓΙΑ 4 ΠΑΙΚΤΕΣ: 1. ΠΡΟΕΤΟΙΜΑΣΙΑ ΤΩΝ ΝΗΣΙΩΝ

ΚΤΙΡΙΑ. Τι γίνεται εάν κανένας δεν θέλει να αγοράσει; Δεν υπάρχει πρόβλημα. Κανείς δεν πληρώνει τίποτα.

32 κάρτες-πόλης 9 κάρτες-χαρακτήρων 5 κάρτες-αστυνομίας

Περιεχόμενα. Σύμβολα Καρτών. Πόροι Ζώα Χωρικοί

Περιεχόμενα 1 Scriptorium (Ταμπλό Αξίας Κατηγορίας) 5 εξάπλευρα ζάρια 87 κάρτες

Ένα παιχνίδι του Stefan Feld ΣΧΕΤΙΚΑ ΜΕ ΤΟ ΠΑΙΧΝΙΔΙ ΠΕΡΙΕΧΟΜΕΝΑ

Περιεχόμενα. Πέτρα. Χρυσός. Βιβλίο. Τροφή. Πόντοι Νίκης. Ρίξιμο ξανά. Ανάλυση ενός πλακιδίου. Ονομασία Κόστος ( ή

Εισαγωγή. Περιεχόμενα

8. Οι κάρτες Πολιτισμού ανακατεύονται και τοποθετούνται

Το Μπαούλο του κυρ Γιάννη

Περιεχόμενα του Παιχνιδιού

Εισαγωγή. Περιεχόμενα. Μέσα στο Κουτί. Εισαγωγή Στόχος Μέσα στο Κουτί Οι Κάρτες Περιγραφή των Καρτών Επιβίβαση!...

ΣΤΑΘΜΟΣ ΕΘΝΙΚΟ ΣΤΑΔΙΟ ΣΤΑΔΙΟ KING BAUDOUIN ΒΡΥΞΕΛΛΕΣ ΒΕΛΓΙΟ ΑΜΣΤΕΡΝΤΑΜ ΑΡΕΝΑ ΑΜΣΤΕΡΝΤΑΜ ΟΛΛΑΝΔΙΑ MANCINI ROME ΡΟΥΜΑΝΙΑΣ ΒΟΥΚΟΥΡΕΣΤΙ ΡΟΥΜΑΝΙΑ

2-5 Παίκτες - Ηλικία λεπτά

Ένα παιχνίδι για 2-4 εξερευνητές, ηλικίας 8 και άνω. Διάρκεια παιχνιδιού περίπου 60 λεπτά

Το Κ2 είναι ένα παιχνίδι για 1 έως 5 παίκτες, ηλικίας 8 ετών και άνω, με διάρκεια περίπου 60 λεπτά.

ΠΡΟΛΟΓΟΣ ΣΤΟΧΟΣ ΠΕΡΙΕΧΟΜΕΝΑ

Επέκταση παραλλαγών 4, 5 και 6 του Fresco, για 2-4 παίκτες ηλικίας 10 ετών και άνω

Λίστα περιεχομένων: 1 δείκτης Αρχικού Παίκτη. 4 παραπετάσματα παικτών. 4 καρτέλες Περίληψης Αγοράς. 1 ταμπλό Δημοπρασιών. 30 πλακίδια Δημοπρασιών

ΠPOΣOXH: ΣΗΜΑΝΤΙΚΟ: ΠΛΗΡΟΦΟΡΙΕΣ ΣΧΕΤΙΚΑ ΜΕ ΤΙΣ ΜΠΑΤΑΡΙΕΣ.

Πλειστηριασμός Για να πλειοδοτήσει κάποιος άξονας θα πρέπει να αναλάβει την υποχρέωση

Ασκήσεις μελέτης της 6 ης διάλεξης

Περιεχόμενα και προετοιμασία για τέσσερις παίκτες

ΠΕΡΙΛΗΨΗ ΤΟΥ ΠΑΙΧΝΙΔΙΟΥ ΠΕΡΙΕΧΟΜΕΝΑ ΤΟΥ ΠΑΙΧΝΙΔΙΟΥ ΛΙΒΑΔΙΑ, ΑΓΑΘΑ ΚΑΙ ΖΑΡΙΑ ΕΝΑ ΜΟΝΑΔΙΚΟ ΠΑΙΧΝΙΔΙ ΓΙΑ

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

ΠΟΡΕΙΑ ΤΟΥ ΠΑΙΧΝΙΔΙΟΥ Σε κάθε γύρο έχετε 2 ενέργειες. Στην κάθε ενέργεια μπορείτε να κάνετε ένα από τα εξής:

ΜΑΘΗΜΑΤΙΚΑ Ε ΔΗΜΟΤΙΚΟΥ ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΙΩΝ

Παραλλαγή 8: Η Καμπάνα σελίδες 2-4 Παραλλαγή 9: Η Παλιά Τοιχογραφία σελίδες 5-7 Παραλλαγή 10: Ο Γιατρός σελίδες 7-11

Αγαπητές φίλες, αγαπητοί φίλοι... καλώς ήλθατε στο Σπίτι του Παιχνιδιού!

ΚΑΝΟΝΕΣ ΤΟΥ ΠΑΙΧΝΙΔΙΟΥ

Μέση τιμή, διασπορά, τυπική απόκλιση. 1) Για την τυχαία διακριτή μεταβλητή Χ ισχύει Ρ(Χ=x i)=

Προετοιμασία του παιχνιδιού

Το παιχνίδι διαρκεί αρκετούς γύρους, με τον κάθε γύρο να αποτελείται από 4 φάσεις:

ΕΝΑ ΠΑΙΧΝΙΔΙ ΤΕΧΝΩΝ, ΚΑΛΛΙΤΕΧΝΩΝ ΚΑΙ ΛΟΓΙΩΝ!

Φύλλο με αυτοκόλλητα (μαζί με ανταλλακτικά για το βασικό παιχνίδι)

66 Κάρτες. 1 εξάπλευρο ζάρι 1 εγχειρίδιο κανόνων. φύλλα κίνησης μαθητευόμενων. το ταμπλό. 16 δείκτες θορύβου / εξαφάνισης. δείκτες σύλληψης & γύρου

Ένα έξυπνο παιχνίδι τοποθέτησης πλακιδίων για 2-5 παίκτες, 8 ετών και άνω από τον Klaus-Jurgen Wrede

Διαδρομών Μέρμηγκα Μερμηγκιών Τζίτζικα Τζίτζικα Επιλογής Επιλογής Φθινόπωρο Φθινόπωρο Προμηθειών Χειμώνα Δύναμης Χειμώνα Φθινόπωρο Χειμώ- νας

Περιεχόμενα. Σκοπός του παιχνιδιού. Ένα παιχνίδι του Dirk Henn για 2-6 παίκτες

Οι πιο τρελές καμηλοδρομίες έγιναν ακόμη πιο τρελές!

Λονδίνο, 17 Νοεμβρίου 1896

ΕΞΕΡΕΥΝΗΣΤΕ ΤΗ ΜΥΣΤΗΡΙΩΔΗ ΝΗΣΟ

ΚΕΦ. 10 ΤΑΜΕΙΟ Βιβλίου Ταμείου. Βιβλίο Μικρού Ταμείου. ΤΡΑΠΕΖΕΣ

Σχετικά με το Παιχνίδι. Περιεχόμενα. Ένα παιχνίδι στρατηγικών κατασκευών για 2 παίκτες ηλικίας 8 και άνω, από τον Arve D. Fuhler

Και όπως και στη ζωή, έτσι κι εδώ δεν υπάρχει δεύτερος...

ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΚΟΠΟΣ ΤΟΥ ΠΑΙΧΝΙΔΙΟΥ

ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML

Σουτ σε στόχο με ακρίβεια

ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΕΤΟΙΜΑΣΙΑ. 15 Δείκτες Δημάρχου. 30 Δείκτες Επιρροής. 15 Δείκτες Δωροδοκίας. 1 Πιόνι Εκτελεστή. 21 Κύβοι Αξίας.

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεωρία Παιγνίων και Αποφάσεων Διδάσκων: Ε. Μαρκάκης, Εαρινό εξάμηνο 2015

ΕΠΙΣΗΜΟΙ ΚΑΝΟΝΕΣ ΤΟΥ ΟΙ ΚΑΡΤΕΣ

Στεγαστικά δάνεια. Ενημερωτικό φυλλάδιο. Απρίλιος Πώς λειτουργούν τα στεγαστικά δάνεια;

Περιεχόμενα του Παιχνιδιού

Παιχνίδια. 2. Το σπίτι

περίπου 50 κρύσταλλοι (7 σε κάθε χρώμα) 20 δίσκοι (4 σε κάθε χρώμα) 36 νομίσματα των 5 και 10 των 10 5 Αρχικές κάρτες (1 σε κάθε χρώμα)

18 πλακίδια Ενεργειών (3 ανά χρώμα/παίκτη) 28 κάρτες Διαδικτυακής Πώλησης. 160 πλακίδια Αντικειμένων (σε 4 χρώματα ανά κατηγορία) 48 κάρτες Συλλεκτών

Ενότητα: ΠΑΡΑΔΟΣΙΑΚΑ ΠΑΙΧΝΙΔΙΑ

Εγχειρίδιο Φοιτητή. Course Management Platform. Εισαγωγή. for Universities Ομάδα Ασύγχρονης Τηλεκπαίδευσης Παν. Μακεδονίας Σεπτέμβριος 2004

ΣΥΜΒΟΛΑ ΠΕΡΙΕΧΟΜΕΝΑ. ΚΕΝΤΡΙΚΟ ΤΑΜΠΛΟ Λεπτομέρειες στην πίσω πλευρά. ΕΡΕΥΝΑ ΑΓΟΡΑΣ Επιτρέπει στους παίκτες να αγοράσουν Προόδους

Αυτόνομοι Πράκτορες. Εργασία εξαμήνου. Μάθηση του παιχνιδιού British square με χρήση Temporal Difference(TD) Κωνσταντάκης Γιώργος

Η μπάλα στο σημείο Δεξιότητες: Ρίξιμο κάτω από τον ώμο σε ύψος. Πιάσιμο της μπάλας στον αέρα ή μετά από μια αναπήδηση.

40 πιόνια 10 x κόκκινο, πορτοκαλί, μαύρο, μπλε. 7 ελέφαντες 3 λιοντάρια 6 κανονικοί 1 σούπερ κροκόδειλοι κροκόδειλος

1 ο ΔΙΔΑΚΤΙΚΟ ΦΥΛΛΟ «Jeu speech» ΠΩΣ ΕΙΣΑΙ;

Πίστας Αγώνα Αρχικών Στοιχημάτων Βοηθήματος Παικτών Πρώτου Παίκτη Τούρμπο Πρώτο στοίχημα: Κατασκευή της πίστας:

EMOJITO! 7 Δίσκοι Ψηφοφορίας. 100 Κάρτες Συναισθημάτων. 1 Ταμπλό. 7 Πιόνια παικτών. 2-7 Παίκτες

Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα

ΠΕΡΙΕΧΟΜΕΝΑ: 88 στόχοι 48 λεγεώνες 23 δείκτες ενεργοποίησης. Επτά λεγεώνες και. κατακτηθεί. Απόθεμα λεγεώνων. Στοίβα στόχων

Κεφάλαιο Ένα Ο ισολογισμός και η θεμελιώδης αρχή

ΕΙΣΑΓΩΓΗ ΠΕΡΙΕΧΟΜΕΝΑ. Κεντρικά Πλακίδια Νησιών. Πλακίδια Λιμανιών. Ένα παιχνίδι του Anthony Rubbio για 2-4 παίκτες, ηλικίας 14 και άνω.

HY-252 Αντικειμενοστραφής Προγραμματισμός. Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης. Ημερομηνία Παράδοσης: 16/11/2012

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεωρία Παιγνίων και Αποφάσεων Διδάσκων: Ε. Μαρκάκης, Εαρινό εξάμηνο 2015

Ο φύλακας του μαγικού κύκλου Δεξιότητες: Ρίξιμο σε στόχο. Πλάγια βήματα. Θέση ετοιμότητας θέση άμυνας.

γραμμάτια Ορισμοί Προεξόφληση Αντικατάσταση Μέση λήξη Ασκήσεις

Διάλεξη 6. Μονοπωλιακή Συμπεριφορά VA 25

1. Η αναδιανομή του εισοδήματος δεν είναι μία από τις βασικές οικονομικές λειτουργίες του κράτους.

1 Εισαγωγή στις Συνδυαστικές Δημοπρασίες - Combinatorial Auctions

Λίγα λόγια... Περιεχόμενα

1 κεντρικό ταμπλό. 1 εγχειρίδιο οδηγιών. Κύβοι μεταναστών. 25 Ιρλανδοί 25 Άγγλοι 25 Γερμανοί 25 Ιταλοί. Δείκτες πολιτικής εύνοιας

Monitor Games BOWLING

Αγώνες αυτοκινήτου Παιχνίδι για 2 παίκτες

Ενδιαφερόμενοι - Stakeholders. Πελάτης Ταμίας υπάλληλος Διαχειριστής Σύστημα εξουσιοδότησης πληρωμής

Οδηγίες. Θα το παίξεις... και θα πεις κι ένα τραγούδι!

Ο Προγραμματισμός στην Πράξη

ΠΕΡΙΕΧΟΜΕΝΑ ΤΟΥ ΠΑΙΧΝΔΙΟΥ ΠΕΡΙΛΗΨΗ ΠΡΟΕΤΟΙΜΑΣΙΑ. χαρτονένια κομμάτια 1 ταμπλό 2 ταμπλό αγροκτήματος (ένα για κάθε παίκτη)

Προετοιμασία κάρτες ξεκινήματος μένουν κλειστές. Κανόνες παιξίματος.

Τα Βασικά. Τι είναι όλα αυτά που βλέπω;

ΟΔΗΓΙΕΣ ΧΡΗΣΕΩΣ. Αυτό το βιβλίο είναι γεμάτο με δραστηριότητες για δύο φίλους.

Το προηγούμενο χωριό σας λεηλατήθηκε από βαρβάρους. Είχατε χρόνο να πάρετε μόνο τα παιδιά σας και το καλάμι ψαρέματος πριν το καταστρέψουν.

Περιεχόμενα. (γκρι) (1 για 5 παίκτες, διπλής όψεως για 2, 3, 4, 5 παίκτες για χρήση με την επέκταση) 1 νέο πλακίδιο χρονικού.

ΠΕΡΙΕΧΟΜΕΝΑ ΤΟΥ ΠΑΙΧΝΙΔΙΟΥ 10 ζάρια με 6 σύμβολα το κάθε ένα. 1 διπλής όψεως κεντρικό ταμπλό με 3 ή 4 φορτηγά. 1 μολύβι

PROJECT ΣΤΟ ΜΑΘΗΜΑ "ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ"

Transcript:

ΗΥ-252 Αντικειμενοστρεφής Προγραμματισμός Προγραμματιστική Εργασία Χειμερινού Εξαµήνου 2005 Η εργασία αφορά τον σχεδιασμό και την υλοποίηση σε Java του γνωστού παιχνιδιού «Μονοπώλιο» 1. Διαβάστε προσεκτικά τους κανόνες του παιχνιδιού στους οποίους βασίζεται η ζητούμενη λειτουργικότητα (με αστερίσκο σημειώνονται προαιρετικές λειτουργίες) του προγράμματος που θα αναπτύξετε, καθώς και τις διευκρινιστικές οδηγίες σχεδίασης που σας δίνονται. 1. Κανόνες του παιχνιδιού Σκοπός: Ο σκοπός του παιχνιδιού για κάθε παίχτη είναι να γίνει ο πιο πλούσιος (ή για την ακρίβεια να μη χρεοκοπήσει) μέσα από αγορές, ενοικιάσεις και πωλήσεις κινητής και ακίνητης περιουσίας. Το παιχνίδι παίζεται με 2-6 παίκτες. Εξοπλισμός: Ο εξοπλισμός αποτελείται από έναν πίνακα με αξίες γης και αγοράς ή ενοικίασης κτιρίων, 2 ζάρια, κατάλληλα σύμβολα (ένα για κάθε παίκτη), 32 σπίτια και 12 ξενοδοχεία. Υπάρχουν 16 κάρτες Εντολής και 16 κάρτες Απόφασης, 28 κάρτες τίτλων ιδιοκτησίας (εκ των οποίων οι 22 αφορούν οικόπεδα, 4 αφορούν σιδηροδρομικούς σταθμούς και 2 αφορούν επιχειρήσεις) καθώς και χρήματα. Προετοιμασία: Αφού ετοιμαστούν οι κάρτες Εντολής και Απόφασης κάθε παίχτης διαλέγει ένα σύμβολο (π.χ. ένα χρώμα που τον αντιπροσωπεύει). Σε κάθε παίχτη μοιράζονται 1500 ως εξής: 2 χαρτονομίσματα των 500, 2 των 100, 2 των 50, 6 των 20, 5 των 10, 5 των 5 και 5 του 1. Όλη η ακίνητη περιουσία και τα υπόλοιπα χρήματα ανήκουν αρχικά στην τράπεζα (το αρχικό κεφάλαιο της τράπεζας δεν χρειάζεται να προσδιοριστεί). Τράπεζα: Πέραν των χρημάτων, η τράπεζα έχει στην κατοχή της τους τίτλους ιδιοκτησίας γης και τα σπίτια και ξενοδοχεία που θα αγοραστούν κατά τη διάρκεια του παιχνιδιού από τους παίκτες. Η τράπεζα πληρώνει μισθούς στους παίκτες κάθε φορά που αυτοί περνούν από την εκκίνηση. Πουλά και δημοπρατεί οικόπεδα και παραδίδει τις κάρτες με τους τίτλους ιδιοκτησίας που αγοράζουν οι παίκτες. Επίσης πουλάει σπίτια και ξενοδοχεία και δανείζει χρήματα έναντι υποθήκης. Η τράπεζα μαζεύει όλους τους φόρους, τα πρόστιμα, τα δάνεια και τους τόκους καθώς και τα έσοδα από κάθε ιδιοκτησία που πουλά ή δημοπρατεί. Η τράπεζα δεν «φαλιρίζει» ποτέ. Αν τελειώσουν τα χρήματά της εκδίδει σε χαρτονομίσματα όποιο ποσό θέλει. Παιχνίδι: Όλοι οι παίκτες τοποθετούν το σύμβολο που έχουν διαλέξει στην Εκκίνηση του παιχνιδιού. Οι παίκτες ρίχνουν τα ζάρια στη διάρκεια του παιχνιδιού με βάση τη σειρά εισαγωγής τους στο παιχνίδι. Ο παίκτης που ρίχνει τα ζάρια προχωράει το σύμβολό του τόσες θέσεις όσο και το άθροισμα των δύο ζαριών. Αφού τελειώσει, παίζει ο επόμενος παίχτης. Σημειώστε ότι δύο ή περισσότεροι παίκτες μπορούν να 1 http://www.monopoly.com

βρίσκονται κάποια στιγμή στην ίδια θέση. Ανάλογα με τη θέση του ένας παίκτης, έχει την δυνατότητα να αγοράζει κινητή ή ακίνητη περιουσία, ή υποχρεούται να πληρώσει ενοίκιο, φόρους, ή ακόμα να πρέπει να σηκώσει μια κάρτα, ή να πάει φυλακή, κλπ. Αν ένας παίκτης φέρει διπλές, αφού παίξει κανονικά σύμφωνα με τους προαναφερθέντες κανόνες, ξαναρίχνει τα ζάρια και παίζει ακόμα μία φορά. Αν ένας παίχτης φέρει 3 συνεχόμενες διπλές τότε πηγαίνει υποχρεωτικά φυλακή. Εκκίνηση: Κάθε φορά που ένας παίκτης τοποθετείται ή περνά από την Εκκίνηση (είτε ρίχνοντας το ζάρι είτε τραβώντας μια κάρτα), η τράπεζα του πληρώνει μισθό 200. Τα 200 πληρώνονται μόνο μια φορά για κάθε γύρο του παιχνιδιού ενός παίκτη. Παρόλα αυτά, αν ένας παίκτης που έχει ήδη περάσει από την εκκίνηση, ρίχνει τα ζάρια και προωθείται σε μια θέση που τον υποχρεώνει να σηκώσει μια κάρτα «Πήγαινε στην εκκίνηση», τότε ο παίκτης παίρνει 200 για το πρώτο πέρασμά του από την εκκίνηση και άλλα 200 για το δεύτερο σύμφωνα με την εντολή της κάρτας. Αγορά Ιδιοκτησίας: Όποτε ένας παίκτης βρεθεί σε ένα οικόπεδο χωρίς ιδιοκτήτη τότε μπορεί να το αγοράσει από την τράπεζα στο προκαθορισμένο τίμημα και να λάβει την αντίστοιχη κάρτα με τον τίτλο ιδιοκτησίας. * Αν δε θέλει να προβεί σ αυτή την αγορά, η τράπεζα μπορεί να την πουλήσει μέσω δημοπρασίας. Ο παίκτης με τη μεγαλύτερη προσφορά πληρώνει την τράπεζα και παίρνει τον τίτλο ιδιοκτησίας. Όλοι οι παίκτες μπορούν να πλειοδοτήσουν, συμπεριλαμβανομένου και αυτού που αρνήθηκε αρχικά να αγοράσει. Η τράπεζα μπορεί να ξεκινήσει τη δημοπρασία σε οποιαδήποτε τιμή. Ενοίκιο: Όταν ένας παίκτης βρεθεί στην ιδιοκτησία ενός άλλου παίκτη, τότε ο ιδιοκτήτης του παίρνει ενοίκιο ίσο με το μίσθωμα που αναγράφεται στον αντίστοιχο τίτλο ιδιοκτησίας. Για μια περιουσία που είναι υποθηκευμένη, ο ιδιοκτήτης δεν δικαιούται ενοίκιο. Είναι συμφέρον για έναν παίκτη να έχει όλους τους τίτλους ιδιοκτησίας σε ένα οικοδομικό τετράγωνο (που συμβολίζεται με το ίδιο χρώμα), γιατί τότε μπορεί να χρεώσει διπλό ενοίκιο σε αναξιοποίητα οικόπεδα (δηλ. χωρίς σπίτια και ξενοδοχεία) που ανήκουν σ αυτό. Ακόμα και αν κάποιο άλλο οικόπεδο του ίδιου τετραγώνου είναι υποθηκευμένο, το παραπάνω εξακολουθεί να ισχύει για τα μηυποθηκευμένα οικόπεδα του τετραγώνου. Είναι ακόμα πιο συμφέρον για έναν παίκτη να έχει σπίτια ή ξενοδοχεία στα οικόπεδά του γιατί τότε τα ενοίκια είναι πολύ μεγαλύτερα (δηλαδή το άθροισμα του μισθώματος του οικοπέδου και του κτιρίου). Κάρτες: Υπάρχουν δύο στοίβες καρτών, μία των καρτών Εντολής και μία των καρτών Απόφασης. Κάθε παίκτης που βρίσκεται σε μια από τις θέσεις του παιχνιδιού που απαιτεί να τραβήξει μια κάρτα από την κορυφή μιας εκ των δύο στοιβών, ακολουθεί τις εντολές που αναγράφονται σε αυτή και την επιστρέφει στο τέλος της στοίβας αυτής. Η κάρτα «Βγες δωρεάν έξω από τη φυλακή» μπορεί να κρατηθεί από έναν παίχτη για έναν επόμενο γύρο του παιχνιδιού και αφού χρησιμοποιηθεί επιστρέφεται και αυτή στο τέλος της στοίβας των καρτών. Αν ένας παίκτης έχει στην κατοχή του την κάρτα αυτή και δεν επιθυμεί να την χρησιμοποιήσει, τότε μπορεί να την πουλήσει σε κάποιον άλλο παίκτη στο αντίτιμο που θα συμφωνήσουν (η συναλλαγή αυτή μπορεί να γίνει οποιαδήποτε χρονική στιγμή). Φόρος εισοδήματος: Αν ένας παίκτης βρεθεί στη θέση αυτή στο παιχνίδι, πρέπει να πληρώσει στην τράπεζα 20.

Φόρος πολυτελείας: Αν ένας παίκτης βρεθεί στη θέση αυτή στο παιχνίδι, πρέπει να πληρώσει στην τράπεζα 100. Φυλακή: Ένας παίκτης μπαίνει στην φυλακή όταν: 1. Βρεθεί σε μια θέση που του υποδεικνύει «Πήγαινε στη φυλακή», 2. Σηκώσει μια κάρτα «Πήγαινε στη φυλακή», ή 3. Φέρει τρεις συνεχόμενες φορές διπλές. Όταν ένας παίκτης βρεθεί φυλακισμένος δεν παίρνει τα 200 στο γύρο αυτό του παιχνιδιού ανεξαρτήτως της θέσης στην οποία βρισκόταν. Αν βρεθεί στη θέση της φυλακής κατά τη διάρκεια του παιχνιδιού ρίχνοντας τα ζάρια, τότε ο παίκτης δεν πηγαίνει φυλακή αλλά θεωρείται απλώς ότι κάνει «Επίσκεψη» χωρίς καμία ποινή. Ένας παίκτης αποφυλακίζεται με τους εξής τρόπους: 1. Ρίχνοντας διπλές σε μια από τις 3 επόμενες φορές που έχει έρθει η σειρά του να παίξει. Αν το καταφέρει προχωρά τόσες θέσεις όσες δείχνουν τα ζάρια, αλλά δεν ξαναπαίζει. 2. Χρησιμοποιώντας την κάρτα «Βγές δωρεάν έξω από τη φυλακή» 3. Αγοράζοντας και χρησιμοποιώντας την κάρτα «Βγες δωρεάν έξω από τη φυλακή» από έναν άλλο παίκτη. 4. Πληρώνοντας ένα πρόστιμο 50 μία από τις 2 επόμενες φορές προτού ρίξει τα ζάρια. Ένας παίκτης δεν μένει στη φυλακή πάνω από 3 φορές. Αν στην τρίτη φορά που έρθει η σειρά του δεν φέρει διπλές, θα πρέπει να πληρώσει 50 πρόστιμο οπότε αποφυλακίζεται και προχωρά τόσες θέσεις όσες δείχνουν τα ζάρια που έριξε. Ακόμα και όταν ένας παίκτης είναι φυλακισμένος μπορεί να αγοράζει και να πωλεί οικόπεδα, ή σπίτια και ξενοδοχεία καθώς και να μαζεύει ενοίκια. Ελεύθερη Στάθμευση: Ένας παίκτης που βρίσκεται στη θέση αυτή δεν κάνει τίποτα. Σπίτια: Όταν ένας παίκτης κατέχει όλα τα οικόπεδα σε ένα τετράγωνο, τότε μπορεί να αγοράζει σπίτια από την τράπεζα και να τα τοποθετεί σε αυτά. Έχοντας ήδη ένα σπίτι σε ένα ιδιόκτητο οικόπεδο, αν αγοράσει και δεύτερο θα πρέπει να το τοποθετήσει σε άλλο αναξιοποίητο ιδιόκτητο οικόπεδο του ίδιου τετραγώνου, ή σε ένα οικόπεδο άλλου τετράγωνου που του ανήκει εξ ολοκλήρου. Το ποσό που θα πρέπει να πληρωθεί στην τράπεζα για κάθε σπίτι αναγράφεται στην κάρτα τίτλων ιδιοκτησίας του οικοπέδου στο οποίο θα τοποθετηθεί το σπίτι. Θυμηθείτε ότι ένας ιδιοκτήτης μπορεί να λαμβάνει διπλό ενοίκιο κάθε φορά που ένας παίκτης βρεθεί σε αναξιοποίητο οικόπεδο του ίδιου οικοδομικού τετραγώνου. Ακολουθώντας τους κανόνες αυτούς ένας παίκτης μπορεί να χτίζει σπίτια στα οικόπεδά του σταδιακά: πριν τοποθετήσει δεύτερο σπίτι στο ίδιο οικόπεδο θα πρέπει να έχει ήδη στην κατοχή του ένα σπίτι σε κάθε οικόπεδο του ίδιου τετραγώνου. Ξενοδοχεία: Όταν ένας παίκτης έχει ήδη 4 σπίτια σε κάθε οικόπεδο ενός τετραγώνου, μπορεί να αγοράσει ένα ξενοδοχείο και να το τοποθετήσει σε οποιοδήποτε από τα οικόπεδα αυτού του τετραγώνου. Θα πρέπει όμως πρώτα να επιστρέψει στην τράπεζα τα 4 σπίτια που έχει στην κατοχή του και να πληρώσει το τίμημα για το ξενοδοχείο όπως αναγράφεται στην αντίστοιχη κάρτα του τίτλου ιδιοκτησίας. Μόνο ένα ξενοδοχείο μπορεί να τοποθετηθεί σε κάθε οικοδομικό τετράγωνο. Έλλειψη κτιρίων: Όταν η τράπεζα δεν έχει σπίτια προς πώληση, οι παίκτες που θέλουν να αγοράσουν ακίνητα θα πρέπει να περιμένουν κάποιον άλλον παίκτη να επιστρέψει ή να πουλήσει τα σπίτια ή τα ξενοδοχεία του στην τράπεζα.

*Αν υπάρχει ένας περιορισμένος αριθμός διαθέσιμων σπιτιών και ξενοδοχείων και δύο ή περισσότεροι παίκτες που επιθυμούν να τα αποκτήσουν, τότε τα ακίνητα θα πρέπει να δημοπρατηθούν από την τράπεζα και να πωληθούν στον παίκτη με την μεγαλύτερη προσφορά. Πώληση ιδιοκτησίας: Αναξιοποίητα οικόπεδα, σιδηροδρομικοί σταθμοί και επιχειρήσεις μπορούν να πωληθούν σε κάποιον παίκτη με ιδιωτική συμφωνία έναντι οποιουδήποτε αντιτίμου που ο ιδιοκτήτης τους απαιτεί. Παρόλα αυτά κανένα οικόπεδο δεν μπορεί να πωληθεί απ ευθείας σε παίκτες αν ήδη βρίσκονται κτήρια σε άλλα οικόπεδα του τετραγώνου στο οποίο ανήκει. Τα κτήρια αυτά θα πρέπει πρώτα να πωληθούν στην τράπεζα πριν ο ιδιοκτήτης προβεί στην πώληση οποιουδήποτε οικόπεδου του τετραγώνου. Σπίτια και ξενοδοχεία μπορούν να πωληθούν στην τράπεζα οποιαδήποτε στιγμή στο μισό της τιμής αγοράς τους. Όλα τα σπίτια σε ένα οικοδομικό τετράγωνο μπορούν να πωληθούν είτε όλα μαζί είτε ένα τη φορά (ένα ξενοδοχείο ισοδυναμεί με 5 σπίτια), με αντίστροφο τρόπο από αυτόν που αποκτήθηκαν (δηλαδή από τα καινούρια στα παλαιότερα). Υποθήκες: Αναξιοποίητα οικόπεδα μπορούν να υποθηκευτούν στην τράπεζα οποιαδήποτε στιγμή. Πρίν την υποθήκευση, όλα τα κτήρια που βρίσκονται στα οικόπεδα του ίδιου τετραγώνου θα πρέπει να πωληθούν στην τράπεζα στη μισή τους τιμή. Η αξία της υποθήκης αναγράφεται σε κάθε κάρτα τίτλου ιδιοκτησίας. Κανένα ενοίκιο δε μπορεί να ζητηθεί σε υποθηκευμένα οικόπεδα, σιδηροδρομικούς σταθμούς ή επιχειρήσεις, αλλά μπορεί να ζητηθεί σε μη-υποθηκευμένα οικόπεδα του ίδιου τετραγώνου. Για να αρθεί ή υποθήκη ο παίκτης θα πρέπει να πληρώσει στην τράπεζα το ποσό της υποθήκης συν 10% τόκο. Όταν όλα τα οικόπεδα ενός τετραγώνου δεν είναι ήδη υποθηκευμένα, τότε ο ιδιοκτήτης τους μπορεί να προβεί στην πώληση των σπιτιών (ή ξενοδοχείων) που βρίσκονται σε αυτό στην μισή αξία τους. Ο ιδιοκτήτης μπορεί να πουλήσει ένα υποθηκευμένο οικόπεδο σε κάποιον άλλο παίκτη σε οποιοδήποτε ποσό συμφωνηθεί. Ο νέος ιδιοκτήτης μπορεί να άρει την υποθήκη αμέσως ξεπληρώνοντας την αξία της υποθήκης συν 10% τόκο στην τράπεζα. Εάν κάτι τέτοιο δεν γίνει, τότε ο νέος ιδιοκτήτης θα πρέπει να πληρώσει 10% τόκο στην τράπεζα όταν αγοράσει το οικόπεδο και όταν αργότερα άρει την υποθήκευση να πληρώσει την αξία της υποθήκης με 10% επιπλέον τόκο (δηλαδή διπλό τόκο). Χρεοκοπία: Ένας παίκτης χρεοκοπεί αν χρωστά περισσότερα από όσα μπορεί να πληρώσει είτε στην τράπεζα είτε σε κάποιον άλλον παίκτη. Αν το χρέος του είναι προς έναν άλλο παίκτη, θα πρέπει να του μεταβιβάσει όλη του την περιουσία και να βγει από το παιχνίδι. Για να γίνει αυτός ο διακανονισμός, ο παίκτης θα πρέπει να επιστρέψει στην τράπεζα τα σπίτια ή ξενοδοχεία που έχει στην κατοχή του στο μισό του αντιτίμου που δαπανήθηκε γι αυτά. Τα χρήματα δίνονται στον πιστωτή. Αν ο χρεοκοπημένος παίκτης έχει υποθηκευμένες ιδιοκτησίες θα πρέπει επίσης να τις μεταβιβάσει στον πιστωτή του, ενώ ο νέος ιδιοκτήτης θα πρέπει αμέσως να ρυθμίσει στην τράπεζα τις υποθήκες των ακινήτων όπως περιγράφτηκε προηγουμένως. Αν ο χρεοκοπημένος παίκτης χρωστά στην τράπεζα περισσότερα από όσα μπορεί να πληρώσει ακόμα κι αν πουλήσει τα κτήριά του και υποθηκεύσει τα οικόπεδά του, τότε θα πρέπει να μεταβιβάσει στην τράπεζα όλα τα υπάρχοντά του και να αποχωρήσει αμέσως από το παιχνίδι. *Σ αυτή την περίπτωση η τράπεζα αμέσως βγάζει σε δημοπρασία όλη την περιουσία του εκτός από τα κτήρια. Ο τελευταίος παίκτης που παραμένει στο παιχνίδι είναι αυτός που κερδίζει.

Δάνεια: Ένας παίχτης μπορεί να δανειστεί χρήματα μόνο από την τράπεζα και μόνο μέσω υποθήκευσης ενός οικοπέδου του. Κανένας παίκτης δεν μπορεί να δανειστεί από ή να δανείσει χρήματα σε κάποιον άλλον. Επιχειρήσεις: Κάθε παίκτης που προωθείται σε μια επιχείρηση που αποτελεί ιδιοκτησία κάποιου άλλου ρίχνει τα ζάρια για να υπολογίσει πόσες ημέρες χρειάζεται τις υπηρεσίες της και πληρώνει το 4πλάσιο από το άθροισμα των ζαριών. Αν και οι δύο επιχειρήσεις του παιχνιδιού έχουν τον ίδιο ιδιοκτήτη, τότε ο παίκτης που προωθείται σε κάποια από αυτές πληρώνει το 10πλάσιο από το άθροισμα των ζαριών. Σύντομος Τερματισμός: Αντί να περιμένουμε να χρεοκοπήσουν όλοι οι παίκτες εκτός από έναν για να τελειώσει το παιχνίδι, μπορεί να καθορισθεί εκ των προτέρων η διάρκεια του παιχνιδιού μέσου του αριθμού των γύρων που θα παιχτούν. Όταν τελειώσει ο αριθμός αυτός των γύρων το παιχνίδι τελειώνει και νικητής είναι ο παίκτης με τη μεγαλύτερη συνολική περιουσία εκείνη τη στιγμή. Η συνολική περιουσία ενός παίκτη είναι το άθροισμα των μετρητών του και των αξιών των ακίνητων ιδιοκτησιών του. Οι αξίες των υποθηκευμένων ιδιοκτησιών λαμβάνονται υπόψη στο μισό τους. Το είδος του παιχνιδιού (πλήρες ή σύντομο) και ο αριθμός των γύρων (στην περίπτωση που επιλέχθηκε σύντομο παιχνίδι) θα δίνονται πριν αρχίσει το παιχνίδι. Κάρτες: Κάρτες Εντολής: (Chance cards) o MovePlayerCards 1. Πήγαινε στη Λεωφόρο Τατοΐου 2. Πήγαινε στην οδό Ακαδημίας (Αν περνάς από την εκκίνηση πάρε $200) 3. Πήγαινε στην Εθνική Οδό Αθηνών-Λαμίας (Αν περνάς από την εκκίνηση πάρε 200 ) 4. Πήγαινε στην εκκίνηση 5. Πήγαινε στο σιδηροδρομικό σταθμό Εξωτερικού (Αν περνάς από την εκκίνηση πάρε 200 ) 6. Πήγαινε στον κοντινότερο σιδηροδρομικό σταθμό και πλήρωσε στον ιδιοκτήτη του δυο φορές το ενοίκιο που δικαιούται. Αν ο σταθμός δεν έχει πουληθεί μπορείς να τον αγοράσεις από την τράπεζα 7. Πήγαινε πίσω 3 τετράγωνα 8. Πήγαινε στην πλησιέστερη υπηρεσία. Εάν δεν έχει πωληθεί μπορείς να την αγοράσεις από την τράπεζα. Αν έχει πωληθεί τότε ρίξε το ζάρι και πλήρωσε τον ιδιοκτήτη του 10 φορές αυτό που δείχνουν τα ζάρια o MoneyCards 9. Η οικοδομή και το δάνειό σου ωριμάζουν. Πάρε 150 10. Έχεις εκλεγεί πρόεδρος του παιχνιδιού. Πλήρωσε κάθε παίκτη 50 11. Πλήρωσε συνεισφορά στον έρανο υπέρ των φτωχών 12 12. Πάρε χριστουγεννιάτικο δώρο 100 13. Κάνε γενικές επισκευές σε όλα τα σπίτια σου. Πλήρωσε 25 για κάθε σπίτι και 100 για κάθε ξενοδοχείο 14. Η τράπεζα σου πληρώνει μέρισμα 50 o JailCards 15. Πήγαινε κατευθείαν στη φυλακή. Δεν παίρνεις 200 16. Βγες δωρεάν από τη φυλακή

Κάρτες Απόφασης: (Community Chest cards) o MovePlayerCards 1. Πήγαινε στην εκκίνηση o MoneyCards 2. Ασφάλεια ζωής. Πάρε 100 3. Από τους τόκους των χρημάτων σου λαμβάνεις 45 4. Φορολογία για την ανακατασκευή των οδών. Πλήρωσε 40 για κάθε σπίτι και 115 για κάθε ξενοδοχείο 5. Έξοδα γιατρού. Πλήρωσε 50 6. Πλήρωσε για νοσοκομειακή περίθαλψη 100 7. Κληρονομείς 100 8. Από την πώληση αποθέματος παίρνεις 45 9. Πάρε για τις υπηρεσίες που προσέφερες 25 10. Άνοιγμα της μεγάλης όπερας. Πάρε 50 από κάθε παίκτη για να κλείσεις εισιτήρια 11. Κέρδισες το 2 ο βραβείο ομορφιάς. Παίρνεις 11 12. Επιστροφή φόρου εισοδήματος. Παίρνεις 20 13. Τέλειωσε ο κανόνας του χρυσού. Πάρε 50 14. Τραπεζικό λάθος υπέρ σου. Πάρε 200 o JailCards 15. Βγες δωρεάν έξω από τη φυλακή 16. Πήγαινε κατευθείαν στη φυλακή. Δεν παίρνεις 200 Ακολουθούν οι περιοχές και τα στοιχεία τους: Χρώμα Όνομα Τιμ ή Τιμή σπιτιού/ξενοδοχείου Τιμή ενοικίου φούξια Λεωφόρος 60 50 2 Μεσογείων φούξια Οδός 50 50 4 Πανεπιστημίου γαλάζιο Εθνική Οδός 60 50 4 Αθηνών-Κορίνθου γαλάζιο Λεωφόρος 100 50 6 Κηφισίας γαλάζιο Λεωφόρος Αθηνών 120 50 6 μοβ Εθνική Οδός 140 50 8 Αθηνών-Λαμίας μοβ Οδός Ευριπίδους 140 100 10 μοβ Πλατεία 140 100 10 Ελευθερίας πορτοκαλί Πλατεία Κάνιγγος 160 100 12 πορτοκαλί Λεωφόρος Συγγρού 180 100 14 πορτοκαλί Πλατεία 180 100 14 Κολωνακίου κόκκινο Οδός Γ 200 100 16 Σεπτεμβρίου κόκκινο Οδός Πατησίων 220 150 18 κόκκινο Οδός Ακαδημίας 220 150 18

κίτρινο Οδός Ακροπόλεως 240 150 20 κίτρινο Οδός Αιόλου 260 150 22 κίτρινο Οδός Ερμού 260 150 22 πράσινο Πλατεία 280 150 24 Κλαυθμώνος πράσινο Εγνατία Οδός 300 200 26 πράσινο Οδός Σταδίου 300 200 26 μπλε Πλατεία Ομονοίας 320 200 28 μπλε Λεωφόρος Τατοΐου 350 200 35 Να σημειωθεί ότι η τιμή ενοικίου αυξάνεται κατά ποσό ίσο με το γινόμενο του αριθμού των σπιτιών επί την τιμή του ενοικίου στο ίδιο οικόπεδο. Υπενθυμίζεται ότι ένα ξενοδοχείο ισοδυναμεί με 5 σπίτια. Ωστόσο το τίμημα αγοράς ενός ξενοδοχείου ισούται μόνο με τη αντίστοιχη τιμή αγοράς ενός απλού σπιτιού στο ίδιο οικόπεδο (τα 4 σπίτια έχουν ήδη αγοραστεί). Επίσης υποθέστε ότι η αξία υποθήκης ισούται με την τιμή του οικοπέδου συν την συνολική αξία των ακινήτων του αν φυσικά υπάρχουν. Υπάρχουν επίσης 4 σιδηροδρομικοί σταθμοί με ονόματα «Σταθμός Εξωτερικού», «Αθηνών-Θεσσαλονίκης», «Πελοποννήσου» και «Αθηνών-Χαλκίδος». Κάθε ένας από τους σταθμούς αυτούς έχει τιμή 200 και ενοίκιο 50. Τέλος, υπάρχουν δύο επιχειρήσεις: «Ηλεκτρική Εταιρία», «Εταιρία Υδάτων» αξίας 150 η κάθε μια. Για την τοπολογία όλων των παραπάνω στον χάρτη του παιχνιδιού συμβουλευτείτε τις παρακάτω εικόνες. Εικόνα 1 Εικόνα 2 Εικόνα 3 Εικόνα 4 Τα 4 παραπάνω κομμάτια τοποθετούνται ως εξής: 3 2 4 1

2. Ζητούμενα Προγραμματιστικής Εργασίας Στην εργασία αυτή θα πρέπει να υλοποιήσετε το παιχνίδι «Μονοπώλιο». Η λεπτομερής περιγραφή της προσδοκώμενης λειτουργικότητας δίνεται από τους παραπάνω (υποχρεωτικούς ή προαιρετικούς) κανόνες. Η επικοινωνία του προγράμματος με το χρήστη θα γίνεται μέσω μιας γραφικής διεπαφής χρήστη (GUI). Το παρακάτω σχήμα δείχνει τις 3 βασικές συνιστώσες του προγράμματος που θα αναπτύξετε στα πλαίσια της εργασίας. GUI GameMaster StateHolder Α) GUI Το GUI είναι υπεύθυνο για την επικοινωνία με τους χρήστες-παίκτες. Απεικονίζει τον χάρτη του παιχνιδιού με την μορφή κελιών/θέσεων στις οποίες μπορούν να βρεθούν οι παίκτες, τα ζάρια, τις κάρτες, τα σύμβολα των παικτών καθώς και όλη τους την περιουσία (χρήματα-τίτλους ιδιοκτησίας-ακίνητα). Για κάθε παίκτη θα πρέπει να εμφανίζονται τα χρήματα και η ακίνητη ιδιοκτησία του και να υπάρχουν 7 κουμπιά: «Αγοράζω Σπίτι» ( Buy house ), «Ρίχνω Ζάρια» ( Roll Dice ), «Αγοράζω Ιδιοκτησία» ( Purchase Property ), «Βγαίνω από τη φυλακή» ( Get Out of Jail ), «Τελειώνω το γύρο μου» ( End Turn ), «Σηκώνω Κάρτα» ( Draw Card ), «Αγοράζω από άλλο παίκτη» ( Trade ). Κάθε φορά θα είναι «ενεργοποιημένα» μόνο τα κουμπιά που αντιστοιχούν στις δυνατότητες που έχει να επιλέξει ο παίκτης ανάλογα με την θέση στην οποία βρίσκεται. Κάθε παίκτης τελειώνει τη σειρά παιξίματός του πατώντας «Τελειώνω το γύρο μου» και την ίδια στιγμή ενεργοποιείται το κουμπί «Ρίχνω Ζάρια» του επόμενου κλπ. Θα χρειαστούν ακόμα κάποια παράθυρα «διαλόγου» που θα χρησιμεύσουν αφενός στην αρχή του παιχνιδιού για την εισαγωγή και την επιλογή του συμβόλου (π.χ. ονόματος) κάθε παίκτη, και αφετέρου για την επικοινωνία με τον παίκτη σε όσες λειτουργίες χρειάζεται κατά την διάρκεια του παιχνιδιού. Το GUI επικοινωνεί με τον GameMaster για να τον πληροφορήσει σχετικά με τον παίκτη που κάθε φορά παίζει (π.χ. ο τάδε παίκτης θέλει να αγοράσει το τάδε οικόπεδο ή ο τάδε παίκτης πρέπει να σηκώσει κάρτα, κλπ.). Ένα ενδεικτικό παράδειγμα GUI για 4 παίκτες της Αμερικανικής έκδοσης φαίνεται στην Εικόνα 5. Β) GameMaster Ο GameMaster είναι ο «εγκέφαλος» του παιχνιδιού. Αφού πάρει τις πληροφορίες από το GUI, είναι υπεύθυνος για όλους τους ελέγχους που σχετίζονται με τους κανόνες του παιχνιδιού «Μονοπώλιο». Κατά τη διάρκεια αυτών των ελέγχων ο GameMaster επικοινωνεί με τον StateHolder, ο οποίος διατηρεί (σώζει) την τρέχουσα κατάσταση του παιχνιδιού, για να αντλήσει όλες τις πληροφορίες (π.χ. αν ένας παίκτης έχει το ποσό που απαιτείται για να αγοράσει μια ιδιοκτησία) που χρειάζονται στους ελέγχους του. Αφού ο GameMaster ολοκληρώσει τους απαραίτητους ελέγχους τότε ανανεώνει την κατάσταση του StateHolder (π.χ. τα χρήματα ενός παίκτη που αγοράζει θα πρέπει να μειωθούν τόσο όσο και η αξία της ιδιοκτησίας που αποκτά ενώ σημειώνεται σαν νέος ιδιοκτήτης της ο παίκτης αυτός, κλπ.) και έπειτα επιστρέφει τον έλεγχο στο GUI για να παρουσιάσει (ζωγραφίσει) τη νέα κατάσταση του παιχνιδιού (π.χ. να ανανεώσει τα χρηματικά διαθέσιμα του χρήστη που αγόρασε, να εμφανίσει τον τίτλο ιδιοκτησίας που απόκτησε, κλπ.).

Εικόνα 5

C) StateHolder O StateHolder σώζει την τρέχουσα κατάσταση του παιχνιδιού. Με τον όρο αυτό εννοούμε την κατάσταση των παικτών (χρήματα, τίτλους ιδιοκτησίας, σε ποια θέση βρίσκεται το σύμβολό τους κλπ.), την κατάσταση των κελιών (π.χ. ένα κελί ιδιοκτησίας έχει χρώμα, αριθμό σπιτιών, ποσό ενοικίου κλπ.), την κατάσταση των καρτών (σειρά καρτών), καθώς και την κατάσταση της τράπεζας. Αξίζει να σημειώσουμε ότι 3 λογικές συνιστώσες του προγράμματος δεν αντιστοιχούν αναγκαστικά σε 3 και μόνο κλάσεις Java. Όσον αφορά τον StateHolder, μπορεί μία κλάση να μοντελοποιεί τον παίκτη με τα γνωρίσματα και τις συναρτήσεις του, ενώ για τα κελιά θα πρέπει να σχεδιάσετε μια ιεραρχία από κλάσεις (Εικόνα 6). Κάθε κελί/θέση (οποιουδήποτε είδους) έχει τα παρακάτω 3 κοινά γνωρίσματα: α) ένα όνομα, β) έναν ιδιοκτήτη, και γ) ένα γνώρισμα που να υποδεικνύει αν είναι διαθέσιμο (δηλ. αν έχει αγοραστεί από κάποιον) ή όχι, ενώ κάθε είδος μπορεί να έχει επιπρόσθετα και τα δικά του γνωρίσματα, π.χ. το κελί μιας ιδιοκτησίας έχει χρώμα, ενώ το κελί κάρτας δεν έχει. Επίσης όλα τα κελιά εμφανίζουν μια κοινή συμπεριφορά. Για παράδειγμα χρειαζόμαστε μια συνάρτηση που να εκτελεί την ενέργεια η οποία πρέπει να γίνει όταν κάποιος παίκτης βρεθεί σ αυτό το κελί. Η υλοποίηση της συνάρτησης αυτής θα είναι φυσικά διαφορετική για κάθε είδος κελιού, π.χ. για ένα διαθέσιμο κελί ιδιοκτησίας ο παίκτης που έχει προωθηθεί σε αυτό θα πρέπει να ερωτηθεί αν επιθυμεί να αγοράσει, ενώ για ένα κελί κάρτας ο παίκτης θα πρέπει να σηκώσει την κορυφαία κάρτα από την στοίβα των καρτών (Εντολής /Απόφασης ). Cell Property Cell RailRoad Cell Utility Cell CardCell Εικόνα 6 Αντίστοιχα με τα κελιά θα πρέπει να αντιμετωπισθούν και οι κάρτες (Εικόνα 7). Για παράδειγμα χρειαζόμαστε μια συνάρτηση που να εκτελεί την ενέργεια η οποία πρέπει να γίνει όταν αυτή η κάρτα σηκωθεί από έναν παίκτη. Όπως και προηγουμένως θα πρέπει να ομαδοποιήσετε τις κάρτες ανάλογα με το είδος τους (π.χ. αρκεί μία υλοποίηση της συνάρτησης για όλες τις κάρτες που υποχρεώνουν έναν παίκτη να πάρει ή να δώσει λεφτά στην τράπεζα, ή για όλες τις κάρτες που υποδεικνύουν σε έναν παίκτη να μετακινηθεί σε μια άλλη θέση, κλπ.). Τέλος αξίζει να σημειώσουμε ότι το ρόλο του τραπεζίτη θα τον παίζει το ίδιο το πρόγραμμα.

Card MoneyCard JailCard MovePlayer Card BankMoney Card PlayerMoney Card 3. Σχεδιασµός και Υλοποίηση Εικόνα 7 Η εργασία απευθύνεται σε ομάδες των 3 ατόμων και χωρίζεται σε 2 φάσεις: Φάση 1η - Σχεδιασµός Σε αυτή τη φάση πρέπει να γίνει ο σχεδιασµός της εφαρµογής βάσει των αρχών και της μεθοδολογίας του αντικειμενοστρεφούς προγραμματισμού που έχετε διδαχθεί στο μάθημα. Αποτέλεσµα αυτής της φάσης είναι ο καθορισμός των αντικείμενων, των χαρακτηριστικών και της συµπεριφοράς τους που απαιτούνται για να αναπαραστήσουν την κατάσταση και τις λειτουργίες του παιχνιδιού «Μονοπώλιο» όπως έχουν περιγραφεί στις προηγούμενες σελίδες. Παραδοτέα σε αυτή τη φάση είναι : µία αναφορά η οποία θα περιγράφει τα παραπάνω στοιχεία και θα παρουσιάζει το σχέδιο υλοποίησης του project έτσι ώστε να είναι έτοιµο το πέρασµα στην επόµενη φάση της υλοποίησης. Οι διεπαφές και το περίγραμμα (outline) των κλάσεων Java (πηγαίος κώδικας) συνοδευόµενα από τα απαραίτητα javadoc σχόλια, στα οποία θα βασιστεί η υλοποίηση του παιχνιδιού στην επόμενη φάση. Επιγραµµατικά, οι σηµαντικότερες εργασίες που θα πρέπει να γίνουν σε αυτή τη φάση είναι: Αναγνώριση των κλάσεων και διεπαφών για κάθε μικρή και μεγάλη συνιστώσα του παιχνιδιού. Αναγνώριση των ευθυνών κάθε κλάσης και των πιθανών σχέσεών της με άλλες. Ιδιαίτερα για τα κελιά και τις κάρτες δώστε την ιεραρχική δομή των κλάσεων (inheritance). Εύρεση των χαρακτηριστικών και των μεθόδων κάθε κλάσης. Εύρεση της συµπεριφοράς (behaviour) κάθε κλάσης και διεπαφής του προγράμματός σας, καθώς και της επικοινωνίας μέσω μηνυμάτων (method calls) που χρειάζεται να έχουν μεταξύ τους. Για κάθε κλάση και διεπαφή δώστε τις υπογραφές (signatures), το είδος (constructors, accessors, transformers) και τις εκ των προτέρων και εκ των υστέρων καθώς και τις αμετάβλητες συνθήκες (preconditions, postconditions, invariants) που διέπουν όλες τις μεθόδους τους.

Στην φάση αυτή εστιάστε στις 2 από τις 3 συνιστώσες του προγράμματος, δηλαδή στον GameMaster και στο StateHolder. Φάση 2η - Υλοποίηση Σε αυτή τη φάση θα πρέπει να γίνει η κυρίως υλοποίηση της εφαρµογής, βάσει της σχεδίασης που έχει προηγηθεί (φάση 1). Μολονότι δεν επιβάλλεται να χρησιµοποιηθεί αυτούσια η σχεδίαση της 1ης φάσης, καθότι κάποιες σχεδιαστικές επιλογές αποδεικνύονται στην πορεία άκυρες και χρειάζονται αναθεώρηση, εντούτοις η τελική βαθµολογία θα εξαρτηθεί από την συνέπεια της τελικής υλοποίησης ως προς την αρχική σχεδίαση. Σε αυτή τη φάση, παραδοτέα είναι : ο πηγαίος κώδικας που υλοποιεί το παιχνίδι «Μονοπώλιο» και η δυνατότητα εκτέλεσής του σαν εφαρμογή και μικροεφαρμογή (Applet) Java. αναλυτικές οδηγίες για το πώς μεταγλωττίζεται και πώς τρέχει το πρόγραµµα (README, Makefile κ.λ.π.). αναφορά, στην οποία θα αναλύεται : o η τελική σχεδίαση της εφαρµογής, o ποιες αλλαγές έγιναν σε σχέση µε τη σχεδίαση της 1ης φάσης (και γιατί), o οι αλγόριθµοι που χρησιµοποιήθηκαν, o τα προβλήµατα που αντιµετωπίστηκαν, o οι σχεδιαστικές ή προγραµµατιστικές αποφάσεις που ελήφθησαν και πώς αυτό αντανακλάται στον τελικό χρήστη (π.χ. ευκολία/δυσκολία χειρισµού), o... γενικά ό,τι άλλο κρίνετε απαραίτητο να αναφερθεί. Βαθµολόγιση της εργασίας Για την βαθµολογία της εργασίας θα συνεκτιµηθούν: εάν (και κατά πόσο) η σχεδίαση της εφαρµογής σας εφαρμόζει τις έννοιες και τις τεχνικές του αντικειμενοστρεφούς προγραµματισµού που διδαχτήκατε στο μάθημα. εάν (και κατά πόσο) υλοποιήθηκαν οι υποχρεωτικές λειτουργίες του παιχνιδιού. Οι προαιρετικές λειτουργίες (σημειωμένες με αστερίσκο στην ενότητα 1) θα πάρουν επιπλέον βαθμούς (bonus). η πληρότητα της τελικής αναφοράς, η οποία θα καταγράφει και θα τεκµηριώνει την σχεδίαση και υλοποίηση της εφαρµογής σας. Παρατήρηση: Για την διευκόλυνση της εργασίας σας συνίσταται η υλοποίηση του παιχνιδιού βήμα προς βήμα: μπορείτε αρχικά να υλοποιήσετε το StateHolder, όπως τον έχετε μοντελοποιήσει από την 1 η φάση, έπειτα να προχωρήσετε στο GameManager και αφού έχετε ολοκληρώσει τα 2 αυτά βήματα και τη διασύνδεσή τους, μπορείτε να προχωρήσετε στο GUI. Μ αυτό το πλάνο εργασίας και με μια καλή σχεδίαση από την 1 η Φάση θα μπορέσετε να δουλέψετε παράλληλα και τα 3 άτομα στο ίδιο κομμάτι (πχ. Καθώς υλοποιείτε το StateHolder μπορείτε να χωρίσετε τις κλάσεις των Κελιών στα 3, τις κλάσεις των Καρτών στα 3, και όταν θα υλοποιείτε το GameMaster μπορείτε να χωρίσετε τις διαδικασίες ελέγχου στα 3 κλπ. ). Για περισσότερες διευκρινήσεις σχετικά µε την παραπάνω εργασία, µπορείτε να στέλνετε ηλεκτρονικά τις απορίες σας στη λίστα του µαθήµατος hy252-list.