Εργασία 1 - FacilityGame [2013-14]

Εργασία 1 - FacilityGame [2013-14]

Δημοσίευσηαπό pefraimi » 04 Νοέμ 2013, 10:14

Εδώ μπορούν να υποβληθούν απορίες και παρατηρήσεις για την εργασία 1 των Δομών Δεδομένων 2013-14,

Παύλος.-
pefraimi
Sr. Member
 
Δημοσιεύσεις: 333
Εγγραφή: 01 Νοέμ 2008, 14:59

Re: Εργασία 1 - FacilityGame [2013-14]

Δημοσίευσηαπό alehunter » 09 Νοέμ 2013, 14:50

ποια ειναι η καταλυτικη ημερομηνια παραδωσης της εργασιας;
Άβαταρ μέλους
alehunter
Hero Member
 
Δημοσιεύσεις: 1527
Εγγραφή: 24 Δεκ 2011, 01:33
Τοποθεσία: ακριβώς εκεί που θες να 'μαι
Φοιτητής ΗΜΜΥ: Ναι

Re: Εργασία 1 - FacilityGame [2013-14]

Δημοσίευσηαπό nikoanas4 » 09 Νοέμ 2013, 20:10

Στο παράδειγμα που υπάρχει στη διαφάνεια με τους παικτες Α και Β (και γίνεται η παρουσίαση του facility game), με τα δεδομένα στοιχεία , φαίνεται πως ο παίκτης που θα παίξει 2ος δεν έχει καμία ελπίδα νικης , έναντι του αντιπάλου.
nikoanas4
Newbie
 
Δημοσιεύσεις: 3
Εγγραφή: 26 Ιουν 2012, 02:50

Re: Εργασία 1 - FacilityGame [2013-14]

Δημοσίευσηαπό alehunter » 09 Νοέμ 2013, 20:19

ε προφανως κατα την εργασια θα υπαρχουν περισσοτεροι κομβοι ρε τα ειπε αυτα και στο ''εργαστηριο''
+ αν θυμασαι το ποιος θα παιζει καθε φορα ειναι στην τυχη

αλλα ναι στο παραδειγμα ετσι οπως ειναι παντα νικαει ο πρωτος οπως αλλωστε ειχαμε πει και στο μαθημα :D
Άβαταρ μέλους
alehunter
Hero Member
 
Δημοσιεύσεις: 1527
Εγγραφή: 24 Δεκ 2011, 01:33
Τοποθεσία: ακριβώς εκεί που θες να 'μαι
Φοιτητής ΗΜΜΥ: Ναι

Re: Εργασία 1 - FacilityGame [2013-14]

Δημοσίευσηαπό JG1993 » 10 Νοέμ 2013, 18:45

Θα ήθελα να ρωτήσω:
1)Πως χρησιμοποιείται ο Vector;
2)Πως μπορώ να γνωρίζω(όπως αναφέρει ο κώδικας στην βοηθητικές συναρτήσεις) την θέση στην κάθε κίνηση μέσω Vector;
3)Ποιο το νόημα <Integer> που ακολουθεί του Vector;
Κάθε βοήθεια όσο μικρή είναι σημαντική. :P
"We are what we repeatedly do. Excellence, then, is not an act, but a habit.",Aristotle
"The only true wisdom is in knowing you know nothing.",Socrates
"I don't like defining myself. I just am.",Britney Spears
Άβαταρ μέλους
JG1993
Full Member
 
Δημοσιεύσεις: 129
Εγγραφή: 26 Σεπ 2011, 21:01
Τοποθεσία: Κιμμέρια (το χωριό του Conan)
Φοιτητής ΗΜΜΥ: Όχι

Re: Εργασία 1 - FacilityGame [2013-14]

Δημοσίευσηαπό pefraimi » 11 Νοέμ 2013, 00:39

Μερικές γρήγορες απαντήσεις:
1) Καταρχήν ελάτε στα μαθήματα/φροντιστήρια/εργαστήρια για πληροφορίες και υποστήριξη για το μάθημα και τις εργασίες.
2) Την εβδομάδα αυτή θα ανακοινωθεί η επίσημη εκφώνηση για την εργασία 1 καθώς και νέα έκδοση του FacilityGame που θα επιτρέπει να καθορίζει ο FClient ποιος παίκτης παίζει πρώτος (PLAYER_A). Οι κώδικες/κλάσεις των παικτών θα δουλεύουν χωρίς αλλαγές και στη νέα έκδοση.
3) Για να περάσει κανείς την εργασία 1 πρέπει να νικάει τον SIMPLE_PLAYER_2 παίζοντας δεύτερος (PLAYER_B). Αντίθετα για να διεκδικήσει bonus θα πρέπει να νικάει τους περσινούς νικητές σε διπλά παιχνίδια, μία παίζοντας πρώτος και μία παίζοντας δεύτερος, και αθροίζοντας τα δύο σκορ.
4) Προγραμματίζουμε εργαστήρια προετοιμασίας για την εργασία για όσους δηλώσουν συμμετοχή σε αυτά. Σχετική ανακοίνωση θα υπάρξει μέσα στην εβδομάδα.
5) Η κλάση Vector υλοποιεί πίνακα για αντικείμενα. Παρέχει διάφορες ευκολίες, όπως το ότι μπορεί αυτομάτως να αυξήσει το μεγεθός του εάν προστεθούν νέα στοιχεία. Βλ. http://docs.oracle.com/javase/7/docs/api/java/util/Vector.html
6) Δείτε τον παίκτη/κλάση MyFPlayer1 για παραδείγματα κλήσεων που μπορείτε να κάνετε μέσα από την nextMove() και την initialize().
7) To Vector moveByPlayer περιέχει το ποιος έχει κάνει κάθε κίνηση και το Vector moveLocation το ποια ήταν η κάθε κίνηση.
// The vector of all moves so far
Vector<EnumPlayer> moveByPlayer = game.getMoveByPlayer();
// The vector with the location requested at each move
Vector<Integer> moveLocation = game.getMoveLocation();
Ρίξτε αν θέλτε μια ματιά στην υλοποίηση των μεθόδων αυτών στην κλάση FacilityGame.java.

Παύλος.-
pefraimi
Sr. Member
 
Δημοσιεύσεις: 333
Εγγραφή: 01 Νοέμ 2008, 14:59

Re: Εργασία 1 - FacilityGame [2013-14]

Δημοσίευσηαπό paradrag » 14 Νοέμ 2013, 13:04

Όταν φτάσει κάποιος στον πρώτο/τελευταίο κόμβο, ανάλογα με την κατεύθυνσή του, και κινείται σε συνεχείς κόμβους, πηγαίνει αυτόματα στην άλλη άκρη και συνεχίζει ?
paradrag
Newbie
 
Δημοσιεύσεις: 45
Εγγραφή: 02 Δεκ 2011, 21:28

Re: Εργασία 1 - FacilityGame [2013-14]

Δημοσίευσηαπό pefraimi » 15 Νοέμ 2013, 00:04

Μερικές απαντήσεις και πληροφορίες ακόμα:

1)
Κάθε φορά που είναι η σειρά ενός παίκτη, πρέπει να δώσει ποιον κόμβο θέλει να δεσμεύσει. Ο υπολογισμός αυτός γίνεται μέσα στην nextMove(). Το εάν ο παίκτης θα επιλέγει διαδοχικούς κόμβους, ή το εάν θα τους επίλεγει με άλλη σειρά ή άλλα κριτήρια, ή τι θα κάνει ο παίκτης αφότου επιλέξει έναν από τους ακριανούς κόμβους κτλ. είναι ευθύνη του ίδιου του παίκτη. Δείτε τους κώδικες των κλάσεων SimpleFPlayer1, SimpleFPlayer2, MyFPlayer1 για παραδείγματα κώδικα.

2)
Κάθε παίκτης μπορεί να χρησιμοποιεί τις μεταβλητές “me” και “opponent” για να ελέγχει εάν ένας κόμβος ανήκει στον ίδιο ή στον αντίπαλο (ανεξάρτητα από το ποιος είναι ο παίκτης Α και ποιος ο Β). Παράδειγμα:

// Check the status of a location/node
// The status of a specific node/location (node 0)
// ATTENTION: The facility status is a variable of type
// EnumFacilityStatus
// The status of a specific node/location (node 0)
EnumFacilityStatus status = game.getStatus(0);

// Example: check the status of node 0
if (status == me) {
// do something
} else if (status == opponent) {
// do something
} else if (status == EnumFacilityStatus.BLOCKED) {
// do something
} else {
// status: EnumFacilityStatus.FREE
// do something
}

3)
Η εκτέλεση των υπολογισμών του FClient αλλά και του FServer “παρακολουθούνται” από ένα αντικείμενο της κλάσης MonitorThread. Η MonitorThread χρησιμοποιεί ένα νήμα (thread) για να παρακολουθεί την πρόοδο της εκτέλεσης του παιχνιδιού και εάν υπάρξει στασιμότητα τυπώνει μηνύματα με πληροφορίες ώστε να βοηθήσει να συμπεράνουμε εάν κόλλησε ο κώδικάς μας. Μπορείτε να τροποποιήσετε τις παραμέτρους της (πχ. συχνότητα ελέγχου) στην κλάση Finals ή να την απενεργοποιήσετε εντελώς (πχ. εάν σας ενοχλεί όταν κάνετε debugging) κάνοντας σχόλιο τη γραμμή monitorThread.start(); στη μέθοδο play της κλάσης FClient ή FServer αντίστοιχα.

Παύλος.-
pefraimi
Sr. Member
 
Δημοσιεύσεις: 333
Εγγραφή: 01 Νοέμ 2008, 14:59

Re: Εργασία 1 - FacilityGame [2013-14]

Δημοσίευσηαπό Κωνσταντίνα » 18 Νοέμ 2013, 16:05

μπορούμε να παραδώσουμε 2 κώδικες, έναν για τον Simple player 1 και έναν για τον simple player 2? αν ναι να έχουν διαφορετικούς τίτλους για να ξεχωρίσετε ποιος κώδικας παίζει εναντίον ποιου παίχτη;
Κωνσταντίνα
Full Member
 
Δημοσιεύσεις: 105
Εγγραφή: 17 Φεβ 2012, 16:31
Φοιτητής ΗΜΜΥ: Ναι

Re: Εργασία 1 - FacilityGame [2013-14]

Δημοσίευσηαπό JG1993 » 20 Νοέμ 2013, 00:03

Μια ερώτηση που αφορά τις τελευταίες αλλαγές που έγιναν.Το seed αναφέρει στην εκφώνηση της εργασίας πως χρησιμοποιείτε για την ανάθεση αξιών στους κόμβους.Αυτό πρακτικά τι σημαίνει και ποια η σχέση του με τους αριθμούς 3059,3060,3079??Μπορούμε να τροποποιήσουμε τον κωδικά μας ώστε να εκτελεί διαφορετική στρατηγική για κάθε seed ή θα στείλουμε 3 διαφορετικά αρχεία για κάθε seed με σχόλια γιατί την επιλέξαμε???
Ευχαριστώ εκ των προτέρων :)
"We are what we repeatedly do. Excellence, then, is not an act, but a habit.",Aristotle
"The only true wisdom is in knowing you know nothing.",Socrates
"I don't like defining myself. I just am.",Britney Spears
Άβαταρ μέλους
JG1993
Full Member
 
Δημοσιεύσεις: 129
Εγγραφή: 26 Σεπ 2011, 21:01
Τοποθεσία: Κιμμέρια (το χωριό του Conan)
Φοιτητής ΗΜΜΥ: Όχι

Re: Εργασία 1 - FacilityGame [2013-14]

Δημοσίευσηαπό sgyftopo » 22 Νοέμ 2013, 20:29

Καλησπέρα από μένα
Μερικές διευκρινήσεις για τα ερωτήματα που αναφέρονται σε προηγούμενες ανακοινώσεις:
1) To seed χρησιμοποιείται για την αρχικοποίηση της γεννήτριας ψευδοτυχαίων αριθμών, μέσω της οποίας ανατίθενται στους κόμβους οι αξίες τους. Τα seeds που που αναφέρονται στην εκφώνηση δημιουργούν διαφορετικά σετ αξιών για τους κόμβους της εκάστοτε "σκακιέρας" και τα συγκεκριμένα επιλέχθηκαν έτσι ώστε να δημιουργείται σε κάθε παιχνίδι όσο το δυνατόν πιο ποικιλόμορφη ανάθεση αξιών.
2) Η στρατηγική που θα αναπτύξετε δεν μπορεί να βασίζεται πάνω σε συγκεκριμένα seeds αλλά πάνω στους γενικούς κανόνες του παιχνιδιού ανεξαρτήτως ανάθεσης αξιών σε κάθε παρτίδα.
Σωτήρης
sgyftopo
Full Member
 
Δημοσιεύσεις: 127
Εγγραφή: 17 Οκτ 2013, 11:30

Re: Εργασία 1 - FacilityGame [2013-14]

Δημοσίευσηαπό NiLe » 22 Νοέμ 2013, 21:28

Καλησπέρα,
ακολουθώ σωστά την διαδικασία, αλλα όταν βάζω τα arguments στο fclient μου βγάζει το εξής error:
Κώδικας: Επιλογή όλων
Exception in thread "main" java.lang.NumberFormatException: For input string: "**.12.187.**"
   at java.lang.NumberFormatException.forInputString(Unknown Source)
   at java.lang.Integer.parseInt(Unknown Source)
   at java.lang.Integer.parseInt(Unknown Source)
   at facilityGame.FServer.main(FServer.java:324)

*(οπου αστερισκοι οι αριθμοι της ip που δινει ο fserver)
H εντολή που δίνω σαν arguments sto fclient ειναι:
Κώδικας: Επιλογή όλων
Haris_PLAYER FALSE **.12.187.** 4455 1012 3690 PLAYER_A

*(οπου αστερισκοι η ip που δινει ο fserver)
NiLe
Newbie
 
Δημοσιεύσεις: 23
Εγγραφή: 09 Δεκ 2011, 22:38

Re: Εργασία 1 - FacilityGame [2013-14]

Δημοσίευσηαπό sgyftopo » 23 Νοέμ 2013, 18:33

NiLe έγραψε:Καλησπέρα,
ακολουθώ σωστά την διαδικασία, αλλα όταν βάζω τα arguments στο fclient μου βγάζει το εξής error:
Κώδικας: Επιλογή όλων
Exception in thread "main" java.lang.NumberFormatException: For input string: "**.12.187.**"
   at java.lang.NumberFormatException.forInputString(Unknown Source)
   at java.lang.Integer.parseInt(Unknown Source)
   at java.lang.Integer.parseInt(Unknown Source)
   at facilityGame.FServer.main(FServer.java:324)

*(οπου αστερισκοι οι αριθμοι της ip που δινει ο fserver)
H εντολή που δίνω σαν arguments sto fclient ειναι:
Κώδικας: Επιλογή όλων
Haris_PLAYER FALSE **.12.187.** 4455 1012 3690 PLAYER_A

*(οπου αστερισκοι η ip που δινει ο fserver)


Από το μήνυμα που σου εμφανίζει φαίνεται ότι δεν καλείς το fclient αλλά το fserver. Αυτό φαίνεται από την τελευταία γραμμή του σφάλματος που σου εμφανίζει:
Κώδικας: Επιλογή όλων
at facilityGame.FServer.main(FServer.java:324)

Μάλλον το configuration που δημιούργησες και έχεις αποθηκεύσει της παραμέτρους δεν συνδέεται με το fclient αλλά με το fserver: για να το διευκρινίσεις αυτό, πήγαινε στην 1η καρτέλα - Main - του configuration που τρέχεις και δες τι περιέχει στο πεδίο Main class. Διόρθωσέ το σε facilityGame.FClient από το κουμπί Search και λογικά θα διορθωθεί το πρόβλημα.
Σωτήρης
sgyftopo
Full Member
 
Δημοσιεύσεις: 127
Εγγραφή: 17 Οκτ 2013, 11:30

Εργασία 1 - FacilityGame [2013-14]

Δημοσίευσηαπό savvas.ap » 25 Νοέμ 2013, 18:15

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

Κώδικας: Επιλογή όλων
Monitor Info: Game in round 1500
Monitor Warning in round 1500, player in state WAITING_FOR_OPPONENT since 783118 msec!!
Monitor Warning in round 1500, player in state WAITING_FOR_OPPONENT since 784118 msec!!
Monitor Warning in round 1500, player in state WAITING_FOR_OPPONENT since 785119 msec!!
Monitor Warning in round 1500, player in state WAITING_FOR_OPPONENT since 786119 msec!!
Monitor Warning in round 1500, player in state WAITING_FOR_OPPONENT since 787119 msec!!
Monitor Info: Game in round 1500
Monitor Warning in round 1500, player in state WAITING_FOR_OPPONENT since 788120 msec!!
Monitor Warning in round 1500, player in state WAITING_FOR_OPPONENT since 789120 msec!!
Monitor Warning in round 1500, player in state WAITING_FOR_OPPONENT since 790121 msec!!
Monitor Warning in round 1500, player in state WAITING_FOR_OPPONENT since 791121 msec!!
Monitor Warning in round 1500, player in state WAITING_FOR_OPPONENT since 792121 msec!!
Monitor Info: Game in round 1500
Monitor Warning in round 1500, player in state WAITING_FOR_OPPONENT since 793121 msec!!
Monitor Warning in round 1500, player in state WAITING_FOR_OPPONENT since 794121 msec!!
Monitor Warning in round 1500, player in state WAITING_FOR_OPPONENT since 795122 msec!!
Monitor Warning in round 1500, player in state WAITING_FOR_OPPONENT since 796122 msec!!


χωρίς να σταματάει...
τι μπορεί να φταίει γι' αυτό, και πώς διορθώνεται;

2)Επειδή δεν έχω καταλάβει πώς ακριβώς δουλεύουν οι getMoveLocation και getMoveByPlayer, πώς γίνεται για παράδειγμα να εντοπίσω την τελευταία κίνηση του αντιπάλου;

3)Είπαμε οτι σε περίπτωση που δεσμευτούν 3 συνεχόμενοι κόμβοι η αξία τους τριπλασιάζεται. Αν Δεσμευτούν περισσότεροι από 3 συνεχόμενοι; Δηλαδή για 4 τετραπλασιάζεται κ.ο.κ. ;
savvas.ap
Newbie
 
Δημοσιεύσεις: 1
Εγγραφή: 29 Αύγ 2013, 17:22

Re: Εργασία 1 - FacilityGame [2013-14]

Δημοσίευσηαπό Κωνσταντίνα » 25 Νοέμ 2013, 19:06

ουσιαστικά περιμένει την επόμενη σου κίνηση. πρόκειται για προγραμματιστικό λάθος (πιθανόν κάποιο for έχει βγει εκτός ορίων ή δεν έχεις πάρει υπ όψη σου κάποια περίπτωση).
για να εντοπίσεις την προηγούμενη κίνηση θα μπορούσες να βάλεις int prevOppMove=get.MoveLocation(curMoveIndex-1) νομίζω θα δουλέψει.
Για το τελευταίο δεν είμαι σίγουρη αν τετραπλασιάζεται ή αν τριπλασιάζονται οι 3 τελευταίοι.
Κωνσταντίνα
Full Member
 
Δημοσιεύσεις: 105
Εγγραφή: 17 Φεβ 2012, 16:31
Φοιτητής ΗΜΜΥ: Ναι

Επόμενο

Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 14 επισκέπτες

cron