Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών ΤΗΜΜΥ Α.Π.Θ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. DS Gomoku.

Σχετικά έγγραφα
Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών ΤΗΜΜΥ Α.Π.Θ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ.

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών. ΤΗΜΜΥ Α.Π.Θ Τρίτη 1 / 12 / 2015 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών. ΤΗΜΜΥ Α.Π.Θ Πέμπτη 11 / 12 / 2014 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών. ΤΗΜΜΥ Α.Π.Θ Δευτέρα 22 / 11 / 2017 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών. ΤΗΜΜΥ Α.Π.Θ Πέμπτη 24 / 12 / 2015 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών. ΤΗΜΜΥ Α.Π.Θ Πέμπτη 19 / 12 / 2016 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ»

Εργασία για το Facility Game Μάθημα: Δομές Δεδομένων Σωτήρης Γυφτόπουλος

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ. Πρώτη Σειρά ασκήσεων Ημερομηνία Παράδοσης: 24 Απριλίου 2018, 12 μ.μ.

Οδηγίες Εργασίας 1 Facility-Game

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

Προγραμματιστικές Ασκήσεις, Φυλλάδιο 1

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

ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ. ΑΝΑΦΟΡΑ ΕΡΓΑΣΙΑΣ Othello-TD Learning. Βόλτσης Βαγγέλης Α.Μ

Μάθημα 1: Εισαγωγή. Κάνε κλικ την εντολή "κινήσου" και με το ποντίκι πατημένο μετέφερε τη στη περιοχή σεναρίων.

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0

Jan Meyberg Εισαγωγή

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 4 ο Εργαστήριο. Διανύσματα-Πίνακες 1 ο Μέρος

Μεταβλητές. Για περισσότερες λεπτομέρειες πάνω στις μεταβλητές θα ήταν χρήσιμο να διαβάσεις το

Τμήμα Μηχανικών Σχεδίασης Προϊόντων & Συστημάτων ΓΡΑΦΙΚΑ (6151) ΕΝΔΕΙΚΤΙΚΕΣ ΠΡΟΑΙΡΕΤΙΚΕΣ ΑΣΚΗΣΕΙΣ

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

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

App Inventor 3ο Μάθημα (Ζάρια - επέκταση)

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Παραδείγματα μεταβλητών

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

ΘΕΜΑ 1ο. Μονάδες 10. Β. ίνεται το παρακάτω τμήμα αλγορίθμου: Όσο Ι < 10 επανάλαβε Εμφάνισε Ι Ι Ι + 3 Τέλος_επανάληψης ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ

Προγραμματισμός 2 Σημειώσεις εργαστηρίου

ΘΕΜΑ 1ο. Μονάδες 10. Β. ίνεται το παρακάτω τμήμα αλγορίθμου: Όσο Ι < 10 επανάλαβε Εμφάνισε Ι Ι Ι + 3 Τέλος_επανάληψης ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Αυτόνομοι Πράκτορες. Εργασία εξαμήνου. Value Iteration και Q- Learning για Peg Solitaire

Καροτοκυνηγός. Αντικείμενα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites

Να το ξαναγράψετε χρησιμοποιώντας αντί για την εντολή Για Τέλος_επανάληψης: α. την εντολή Όσο Τέλος_επανάληψης

Εισαγωγή στην Στατιστική (ΔΕ200Α-210Α)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Τελικό επαναληπτικό διαγώνισμα Επιμέλεια: Δρεμούσης Παντελής

Τιμή Τιμή. σκορ. ζωές

3 ο Εργαστήριο Μεταβλητές, Τελεστές

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ


turnin Lab2.hs

Γραφικά υπολογιστών Εργαστήριο 4 Εισαγωγή στις λίστες

App Inventor 5ο Μάθημα (Κορώνα γράμματα - επέκταση)

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

Language: English / Greek

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

// MATHIMA 2, // s.boot; s.makewindow.boot; // boot server!

Μεθοδολογία Προγραμματισμού

Ανακτήθηκε από την ΕΚΠΑΙΔΕΥΤΙΚΗ ΚΛΙΜΑΚΑ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ

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

ANDROID Προγραμματισμός Εφαρμογών

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Coop-in Εγχειρίδιο χρήστη

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

ΘΕΜΑ Α. Μονάδες 10 Α2.

Τεκμηρίωση Tetravex i. Τεκμηρίωση Tetravex

ΕΓΧΕΙΡΙΔΙΟ ΚΑΝΟΝΩΝ ΕΝΑ ΠΑΙΧΝΙΔΙ ΑΝΤΑΓΩΝΙΣΜΟΥ ΓΙΑ 2 ΩΣ 4 ΠΑΙΚΤΕΣ

Εισαγωγή στον Προγραμματισμό

καθώς και το παρακάτω τμήμα αλγορίθμου γραμμένο σε «ΓΛΩΣΣΑ»:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

Σημειώσεις για το εργαστηριακό μάθημα «Εκπαιδευτική Τεχνολογία Πολυμέσα»

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Επίλυση Προβλημάτων 1

Ηλεκτρονικοί Υπολογιστές

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω:

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Άλλαξε Χρώμα. Άλλαξε Χρώμα ΠΡΟΕΤΟΙΜΑΣΙΑ. Κάνε κλικ για να αλλάξεις το χρώμα ενός αντικειμένου. Διάλεξε ένα αντικέιμενο από τη βιβλιοθήκη.

Μπορείτε τα δείτε βιντεάκι με τη διαδικασία εδώ:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Μονάδες 4. β. x=20 και y=10

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 15/11/09, 23:59

Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή

5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος

Α2. Οι πίνακες ακεραίων Α και Β είναι μονοδιάστατοι με πέντε και τρία στοιχεία αντίστοιχα. Τα περιεχόμενα τους είναι:

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

Σειρά Προβλημάτων 5 Λύσεις

Σκοπός του παιχνιδιού. Περίληψη

i 1 Όσο i <> 100 επανάλαβε i i + 2 Γράψε A[i] Τέλος_επανάληψης

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

Μαθήματα Scratch -Δραστηριότητα 1 Παλέτα Κίνηση

Μελετήστε την θεωρία που αφορά Επαναληπτικές Μεθόδους Επίλυσης Γραμμικών Συστημάτων.

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Δ ΕΣΠΕΡΙΝΩΝ

1 ο Εργαστήριο Συντεταγμένες, Χρώματα, Σχήματα

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

Transcript:

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών 5 Εξάμηνο ΤΗΜΜΥ Α.Π.Θ 2014-2015 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ DS Gmku Το παιχνίδι Το φετινό παιχνίδι αποτελεί μια απλουστευμένη παραλλαγή του παιχνιδιού Gmku, το οποίο με την σειρά του αποτελεί παραλλαγή του γνωστού παιχνιδιού Σκορ-4 (περισσότερες λεπτομέρειες στο http://en.wikipedia.rg/wiki/gmku). Έχουμε δύο παίκτες (άσπρος / μαύρος) που παίζουν εναλλάξ τοποθετώντας πλακίδια πάνω στο ταμπλό, με σκοπό να καταφέρουν να δημιουργήσουν μια πεντάδα, οριζόντια, κάθετα ή διαγώνια, πριν από τον αντίπαλο τους (Εικόνα 1). Εικόνα 1: Το περιβάλλον του παιχνιδιού DS-Gmku για το μάθημα των Δομών Δεδομένων 2014-2015 Το παιχνίδι παίζεται σε ένα ταμπλό διαστάσεων 15x15 (οι διαστάσεις μπορεί να αλλάξουν στο μέλλον). Πρώτος παίζει ο παίκτης με τα μαύρα πλακίδια. Κάθε παίκτης μπορεί, όταν έρθει η σειρά του, να τοποθετήσει ένα πλακίδιο σε οποιαδήποτε κενή θέση του ταμπλό. Ο πρώτος παίκτης που θα τοποθετήσει 5 πλακίδια στην σειρά, προς οποιαδήποτε κατεύθυνση, κερδίζει.

Εγκατάσταση Για να εγκαταστήσετε το prject στον eclipse, αρκεί να κάνετε unzip το αρχείο Gmku Part A.zip μέσα στον φάκελο wrkspace που έχετε ορίσει, και στη συνέχεια από το περιβάλλον του eclipse να κάνετε: File Imprt General Existing Prjects int Wrkspace Για να τρέξετε το prject κάνετε δεξί κλικ πάνω στο prject και στη συνέχεια επιλέγετε: Run As Java Applicatin Εργασία Α Randm Mvement (0,75 βαθμοί) Σκοπός της πρώτης εργασίας είναι η τροποποίηση ή η συμπλήρωση κάποιων συναρτήσεων των κλάσεων που είναι απαραίτητες για την ομαλή λειτουργία του παιχνιδιού. Αυτές είναι: 1. Κλάση Tile: Η κλάση αυτή δημιουργεί τα πλακίδια του ταμπλό του παιχνιδιού. Θα πρέπει να έχει τις εξής μεταβλητές: int id: είναι μια μεταβλητή που δείχνει το μοναδικό κωδικό ενός πλακιδίου. int x: η μεταβλητή αυτή δείχνει την θέση του πλακιδίου στον άξονα x x. int y: η μεταβλητή αυτή δείχνει την θέση του πλακιδίου στον άξονα y y. int clr: η μεταβλητή αυτή δείχνει το χρώμα του που πλακιδίου. Συγκεκριμένα έχουμε τα εξής χρώματα: 0 Gray (Υποδηλώνει κενή θέση) 1 Black (Υποδηλώνει θέση όπου έχει τοποθετήσει πλακίδιο ο μαύρος παίκτης) 2 White (Υποδηλώνει θέση όπου έχει τοποθετήσει πλακίδιο ο άσπρος παίκτης) blean mark: αυτή είναι μια βοηθητική μεταβλητή, που μπορεί να σας φανεί χρήσιμη σε επόμενη εργασία. int PlayerId: η μεταβλητή αυτή δείχνει αν στην θέση του συγκεκριμένου πλακιδίου έχει παίξει κάποιος από τους 2 παίκτες και αν ναι, ορίζει τον παίκτη στον οποίο ανήκει το συγκεκριμένο πλακίδιο. Συγκεκριμένα έχουμε: 0 Κενό πλακίδιο 1 Πλακίδιο του παίκτη Α 2 Πλακίδιο του παίκτη Β Δομές Δεδομένων 2 2013

Οι συναρτήσεις που πρέπει να υλοποιήσετε είναι οι εξής: a. Cnstructr της κλάσης: ο cnstructr θα πρέπει να παίρνει 6 ορίσματα τα οποία θα αρχικοποιούν όλες τις μεταβλητές της κλάσης. Θα πρέπει να ορίσετε σωστά τον τύπο των ορισμάτων και να τα αντιστοιχίσετε στις κατάλληλες μεταβλητές της κλάσης. Προσοχή!!!! Τα ορίσματα μεταβλητές που θα έχει ο cnstructr θα πρέπει να είναι ορισμένα με την σειρά που δίνονται παραπάνω. b. Όλες οι συναρτήσεις get και set για τις μεταβλητές της κλάσης. 2. Κλάση RandmPlayer: Η κλάση αυτή δημιουργεί τους παίκτες της πλατφόρμας. Θα πρέπει να έχει τρεις μεταβλητές: 1. int id: είναι μια μεταβλητή που παίρνει την τιμή 1 ή 2 ανάλογα με το αν ο παίκτης είναι ο άσπρος ή ο μαύρος. Το αν ο παίκτης σας είναι ο 1 ή 2 θα αλλάζει από παιχνίδι σε παιχνίδι. Για να ελέγχετε αν ένα πλακίδιο είναι δικό σας θα πρέπει να συγκρίνεται την τιμή id του παίκτης σας με την τιμή της μεταβλητής playerid του πλακιδίου που ελέγχετε. 2. String name: η μεταβλητή αυτή δίνει το όνομα που επιθυμούμε στον παίκτη. 3. int scre: η μεταβλητή αυτή αποθηκεύει τον αριθμό των νικών του κάθε παίκτη. Οι συναρτήσεις που πρέπει να υλοποιήσετε είναι οι εξής: a. Cnstructr της κλάσης: ο cnstructr θα πρέπει να παίρνει ένα όρισμα (Integer pid), το οποίο αντιστοιχεί στην μεταβλητή id του παίκτη. Προσοχή!!!! Το όρισμα μέσα στην παρένθεση είναι τύπου Integer και όχι int, σε αυτή τη συγκεκριμένη συνάρτηση μόνο. b. Cnstructr της κλάσης 2: αποτελεί τον δεύτερο cnstructr της κλάσης και παίρνει 3 ορίσματα τα οποία θα αρχικοποιούν όλες τις μεταβλητές της κλάσης. Θα πρέπει να ορίσετε σωστά τον τύπο των ορισμάτων και να τα αντιστοιχίσετε στις κατάλληλες μεταβλητές της κλάσης. Προσοχή!!!! Τα ορίσματα μεταβλητές που θα έχει ο cnstructr θα πρέπει να είναι ορισμένα με την σειρά που δίνονται παραπάνω. Επίσης και εδώ το όρισμα μέσα στη παρένθεση θα πρέπει να είναι τύπου Integer και όχι int. c. Όλες οι συναρτήσεις get και set για τις μεταβλητές της κλάσης. Δομές Δεδομένων 3 2013

d. Συνάρτηση int[] getnextmve (Bard bard):η συγκεκριμένη συνάρτηση παίρνει σαν όρισμα την μεταβλητή bard η οποία είναι αντικείμενο της κλάσης Bard (περισσότερα για την μεταβλητή bard στην συνέχεια) και επιστρέφει έναν μονοδιάστατο πίνακα ακεραίων, μεγέθους δύο (2) ο οποίος θα περιέχει την θέση (x,y) στην οποία θα τοποθετηθεί το επόμενο πούλι. Η θέση x,y επιλέγετε με τυχαίο τρόπο. Θα πρέπει επίσης να ελέγξετε αν η θέση (x,y) είναι ήδη κατειλημμένη και αν ναι, θα πρέπει να επιλέξετε μια νέα θέση (x1,y1), με επίσης τυχαίο τρόπο. Σημείωση: Οι συναρτήσεις των κλάσεων Tile και RandmPlayer που θα δημιουργήσετε, θα πρέπει να είναι ορατές από τον υπόλοιπο κώδικα του παιχνιδιού ο οποίος βρίσκετε σε διαφορετικό πακέτο. Θα πρέπει λοιπόν να χρήσιμοποιήσετε τους κατάλληλους τροποποιητές. Βοηθητικές Κλάσεις - Συναρτήσεις Για την υλοποίηση των παραπάνω συναρτήσεων χρειάζεται να χρησιμοποιήσετε κάποιες μεταβλητές / συναρτήσεις που υπάρχουν ήδη υλοποιημένες στην πλατφόρμα. Στατικές Μεταβλητές της κλάσης GmkuUtilities Αριθμός Γραμμών και Στηλών: NUMBER_OF_ROWS = 15; NUMBER_OF_COLUMNS = 15; Οι συγκεκριμένες μεταβλητές μπορούν να χρησιμοποιηθούν για την σάρωση του ταμπλό. Αν δεν χρησιμοποιήσετε τις μεταβλητές αλλά γράψετε στον κώδικα απευθείας τον αριθμό 15, ίσως αντιμετωπίσετε πρόβλημα στο μέλλον π.χ. αν απόφασίσουμε να μεγαλώσουμε το ταμπλό, θα πρέπει να κάνετε αλλαγές στον κώδικά σας. Η μεταβλητή bard και η συνάρτηση gettile(int x,int y): Όπως αναφέραμε προηγουμένως, η μεταβλητή bard αναπαριστά στην ουσία τον ταμπλό του παιχνιδιού. Σε αυτή τη μεταβλητή ανήκει μια συνάρτηση gettile(int x,int y), η οποία επιστρέφει το πλακίδιο που υπάρχει στην θέση x,y. Ελέγχοντας το χρώμα του πλακιδίου μπορείτε να συμπεράνετε αν έχει ήδη καταληφθεί από κάποιον παίκτη ή αν είναι ελεύθερο. duble Math.randm(): Η συνάρτηση αυτή σας επιστρέφει έναν τυχαίο αριθμό τύπου duble στο διάστημα [0,1). Θα σας χρειαστεί ώστε να επιλέξετε την επόμενή σας κίνηση με τυχαίο τρόπο. Στόχος σας στο πρώτο παραδοτέο είναι να φτιάξετε τον παίκτη σας ώστε να μπορεί να επιλέξει τυχαία μια θέση (x,y) πάνω στο ταμπλό. Στην συνέχεια πρέπει να ελέγξει αν η θέση αυτή είναι άδεια, ώστε να τοποθετήσει εκεί το πλακίδιο για την επόμενη κίνησή του. Σε αντίθετη περίπτωση θα πρέπει να διαλέξει μια άλλη τυχαία θέση. Αν γράψετε τον κώδικά σας σωστά, θα δείτε το παιχνίδι να ξεκινάει και τους 2 παίκτες να τοποθετούν πλακίδια σε τυχαίες θέσεις, μέχρι κάποιος από τους 2 να σχηματίσει πεντάδα. Δομές Δεδομένων 4 2013

Εικόνα 2: Πώς ορίζονται οι άξονες στο ταμπλό. Δομές Δεδομένων 5 2013

Οδηγίες Τα προγράμματα θα πρέπει να υλοποιηθούν σε Java, με πλήρη τεκμηρίωση του κώδικα. Το πρόγραμμά σας πρέπει να περιέχει επικεφαλίδα σε μορφή σχολίων με τα στοιχεία σας (ονοματεπώνυμα, ΑΕΜ, τηλέφωνα και ηλεκτρονικές διευθύνσεις). Επίσης, πριν από κάθε κλάση ή μέθοδο θα υπάρχει επικεφαλίδα σε μορφή σχολίων με σύντομη περιγραφή της λειτουργικότητας του κώδικα. Στην περίπτωση των μεθόδων, πρέπει να περιγράφονται και οι μεταβλητές τους. Είναι δική σας ευθύνη η απόδειξη καλής λειτουργίας του προγράμματος. Παραδοτέα για κάθε μέρος της εργασίας 1. Ηλεκτρονική αναφορά που θα περιέχει: εξώφυλλο, περιγραφή του προβλήματος, του αλγορίθμου και των διαδικασιών που υλοποιήσατε και τυχόν ανάλυσή τους. Σε καμία περίπτωση να μην αντιγράφεται ολόκληρος ο κώδικας μέσα στην αναφορά (εννοείται ότι εξαιρούνται τμήματα κώδικα τα οποία έχουν ως στόχο τη διευκρίνιση του αλγορίθμου) Προσοχή: Ορθογραφικά και συντακτικά λάθη πληρώνονται. 2. Ένα αρχείο σε μορφή.zip με όνομα ΑΕΜ1_ΑΕΜ2_PartA.zip, το οποίο θα περιέχει όλο το prject σας στον eclipse καθώς και το αρχείο της γραπτής αναφοράς σε pdf (αυστηρά). Το αρχείο.zip θα γίνεται uplad στο site του μαθήματος στην ενότητα των ομαδικών εργασιών και μόνο. Τα ονόματα των αρχείων πρέπει να είναι με λατινικούς χαρακτήρες. Προθεσμία υποβολής Κώδικας και αναφορά Τετάρτη 20 Νοεμβρίου, 23:59 (ηλεκτρονικά) Δε θα υπάρξει καμία παρέκκλιση από την παραπάνω προθεσμία. Δομές Δεδομένων 6 2013