Εργασία 1 - Facility Game [2014-15]

Re: Εργασία 1 - Facility Game [2014-15]

Δημοσίευσηαπό sgyftopo » 13 Νοέμ 2014, 21:42

Αν δεσμεύετε κόμβο με μεγαλύτερη αξία τότε θεωρείται αποτυχία. Απώτερος στόχος του παιχνιδιού είναι να έρθετε σε ισοπαλία με τον παίκτη FPLAYER_COPY.
sgyftopo
Full Member
 
Δημοσιεύσεις: 127
Εγγραφή: 17 Οκτ 2013, 11:30

Re: Εργασία 1 - Facility Game [2014-15]

Δημοσίευσηαπό kyribaki » 13 Νοέμ 2014, 22:48

Όταν πάω να το τρέξω τοπικά συνδέεται στον server αλλά μου πετάει java.net.SocketException: Connection reset
kyribaki
Newbie
 
Δημοσιεύσεις: 1
Εγγραφή: 25 Ιαν 2014, 11:58

Re: Εργασία 1 - Facility Game [2014-15]

Δημοσίευσηαπό sgyftopo » 13 Νοέμ 2014, 23:25

Το java.net.SocketException: Connection reset εμφανίζεται συνήθως όταν προσπαθούμε να εκτελέσουμε παιχνίδι τύπου COPY τοπικά. Τέτοια παιχνίδια δεν μπορούν να τρέξουν τοπικά επειδή το project δεν περιέχει τον κώδικα του FPLAYER_COPY. Οι δοκιμές για παιχνίδια τύπου COPY μπορούν να γίνουν στον server.
sgyftopo
Full Member
 
Δημοσιεύσεις: 127
Εγγραφή: 17 Οκτ 2013, 11:30

Re: Εργασία 1 - Facility Game [2014-15]

Δημοσίευσηαπό nikos_karampasis » 14 Νοέμ 2014, 17:09

Για καθε simple palyer και τον copy θα εχουμε την ιδια τακτικη ή θα μπορουμε να αλλαζουμε κιολας για καθε παικτη?
nikos_karampasis
Newbie
 
Δημοσιεύσεις: 5
Εγγραφή: 20 Μαρ 2013, 14:50

Re: Εργασία 1 - Facility Game [2014-15]

Δημοσίευσηαπό sgyftopo » 14 Νοέμ 2014, 18:09

Για τους simple players θα φτιάξετε έναν παίκτη που θα υλοποιεί μια στρατηγική και θα έχει ως στόχο τη νίκη έναντι των παικτών simple players (και των παλαιότερων πρωταθλητών για όσους το επιθυμούν). Για τον αντίπαλο copy θα φτιάξετε έναν δεύτερο παίκτη που θα έχει ως στόχο την ισοπαλία και, έτσι, θα έχει άλλη στρατηγική από τον πρώτο παίκτη σας.
sgyftopo
Full Member
 
Δημοσιεύσεις: 127
Εγγραφή: 17 Οκτ 2013, 11:30

Re: Εργασία 1 - Facility Game [2014-15]

Δημοσίευσηαπό nikos_karampasis » 14 Νοέμ 2014, 22:06

Οταν τρεχω τοπικα, για simple 1 και 2 players ,στους 1500 κομβους στην κονσολα εμφανιζει απο Location 299 και δεν εμφανιζει νικητη κτλ.
nikos_karampasis
Newbie
 
Δημοσιεύσεις: 5
Εγγραφή: 20 Μαρ 2013, 14:50

Re: Εργασία 1 - Facility Game [2014-15]

Δημοσίευσηαπό sgyftopo » 14 Νοέμ 2014, 23:58

Όταν εκτελούμε το παιχνίδι για πολλούς κόμβους και έχουμε ρυθμίσει την παράμετρο verbose σε true, εμφανίζονται πολλά μηνύματα στην κονσόλα και εξαντλείται το μέγιστο πλήθος χαρακτήρων του buffer, που μπορεί να εμφανίζει, με αποτέλεσμα να συγκρατούνται μόνο τα τελευταία μηνύματα. Μπορούμε να αυξήσουμε το πλήθος χαρακτήρων στην κονσόλα από το μενού Window ->Preferences->Run/Debug->Console->Console buffer size. Η ρύθμιση αυτή ισχύει για τις επόμενες εκτελέσεις.

Μια διευκρίνιση σχετικά με το προηγούμενο post μου: Ανέφερα ότι ο παίκτης που θα υλοποιήσετε για την περίπτωση copy πρέπει να επιτυγχάνει ισοπαλία. Να διευκρινίσω ότι ο παίκτης σας πρέπει να αντιγράφει τις κινήσεις του αντιπάλου του, δηλαδή να δεσμεύει σε κάθε γύρο έναν κόμβο ίσης αξίας με αυτόν που μόλις δέσμευσε ο αντίπαλος (όπως αναφέρεται και στην εκφώνηση) και, έτσι, να επιτυγχάνει ισοπαλία. Περιπτώσεις ισοπαλίας όπου δεν αντιγράφονται οι κινήσεις του αντιπάλου αλλά το τελικό score είναι ισόπαλο δε θεωρούνται επιτυχείς εκτελέσεις του παιχνιδιού.
sgyftopo
Full Member
 
Δημοσιεύσεις: 127
Εγγραφή: 17 Οκτ 2013, 11:30

Re: Εργασία 1 - Facility Game [2014-15]

Δημοσίευσηαπό θανάσης κ. » 15 Νοέμ 2014, 00:40

Καλησπέρα.. προσπαθωντας να τρέξω τον κωδικά μου για να νικήσει Simple player 1 και 2 στο server, παταω run αλλά σταματάει στο "the game is starting" υπάρχει κάποιο θεμα με τον server? μου το κάνει τα τελευταία 10 λεπτά αυτό.. πιο πριν ήταν όλα μια χαρά..
θανάσης κ.
Newbie
 
Δημοσιεύσεις: 7
Εγγραφή: 01 Ιουν 2013, 16:08

Re: Εργασία 1 - Facility Game [2014-15]

Δημοσίευσηαπό sgyftopo » 15 Νοέμ 2014, 10:44

Καλημέρα
Από έναν έλεγχο που έκανα πριν από λίγο, ο server δουλεύει κανονικά τώρα.
sgyftopo
Full Member
 
Δημοσιεύσεις: 127
Εγγραφή: 17 Οκτ 2013, 11:30

Re: Εργασία 1 - Facility Game [2014-15]

Δημοσίευσηαπό dimitris12 » 15 Νοέμ 2014, 20:33

pefraimi έγραψε:Επιπλέον υπάρχει μια νέα παράμετρος για τον client. Οι παράμετροι για τον client τώρα είναι:
<player type> <verbose> <server-host> <server-port> <n> <seed> <game type> <player A>

Παράδειγμα 1 – Ο παίκτης FPLAYER_MY_1 κόντρα στον SIMPLE_PLAYER_1
FPLAYER_MY_1 false euclid.ee.duth.gr 4465 40 3156

Παράδειγμα 2 – Ο παίκτης FPLAYER_MY_1 κόντρα στον SIMPLE_PLAYER_2
FPLAYER_MY_1 false euclid.ee.duth.gr 4466 40 3156

Παράδειγμα 3 – Ο παίκτης FPLAYER_MY_2 στο COPY game
FPLAYER_MY_2 false euclid.ee.duth.gr 4471 40 3156 COPY

Παράδειγμα 4 – Ο παίκτης FPLAYER_MY_1 κόντρα στον πρωταθλητή 2013-14 ως player A και ως player B
FPLAYER_MY_1 false euclid.ee.duth.gr 4470 40 3156 NORMAL PLAYER_A
FPLAYER_MY_1 false euclid.ee.duth.gr 4470 40 3157 NORMAL PLAYER_B

Για να τρεξω τοπικά τον κώδικα πρέπει να περάσω μεταβλητες και στον FServer και στον FClient.

Για την εκτέλεση του κώδικα στον server:

1) Χρειάζεται να περάσω μεταβλητές και στον FServer και στον FClient?

2)
a) Στον FServer συγκριτικά με όταν το τρέχω τοπικά, αλλάζω ΜΟΝΟ την port?

b) Μετά την αναβάθμιση σε v080, για να παίξω με τον SIMPLE_PLAYER_1, τον SIMPLE_PLAYER_2 και τον COPY, πρέπει να δηλώσω την πρώτη παράμετρο του FServer ως FPLAYER_MY_1 , FPLAYER_MY_2 και FPLAYER_COPY, αντίστοιχα ?

Τότε γιατί στο παραπάνω μηνυμα του κ. Εφραιμίδη, δηλώνονται αυτες οι παράμετροι στον FClient?

3) Στον FClient αφού δηλώω το όνομα του παίκτη μου που θελω να αγωνιστεί, φροντίζω να έχει την ιδια port με τον FServer. Σωστά?

4) Όταν πάω να συνδεθώ για τον COPY, αφού δηλώσω τις μεταβλητές για τον FServer:
"FPLAYER_COPY TRUE 4465"

μου εμφανίζει το εξης μηνυμα το οποιο δεν το εμφανιζει όταν προσπαθω να συνδεθω στους SimplePlayers:

"FServer: Usagejava -cp <jarfile.jar> facilityGame.FServer <player_type> <verbose> <port>
FServer: FacilityServer v0.80
FServer: FacilityServer is starting ...
java.net.BindException: Address already in use: JVM_Bind
Is there another instance of this server running?
"
dimitris12
Newbie
 
Δημοσιεύσεις: 20
Εγγραφή: 10 Νοέμ 2012, 16:47

Re: Εργασία 1 - Facility Game [2014-15]

Δημοσίευσηαπό pefraimi » 15 Νοέμ 2014, 23:34

1. Οι παράμετροι που δέχονται οι main των FClient και FClient είναι όπως περιγράφοτναι στο "usage" που τυπώνεται στην αρχή της εκτέλεσής τους. Θα πρέπει να τις διαβάσεις προσεκτικά και εάν υπάρχει κάποια συγκεκριμένη απορία, μπορείς να υποβάλεις ερώτημα στο forum.

2. Στον FClient πρέπει να δώσουμε και το host name (πχ. euclid.ee.duth.gr, ή 127.0.0.1 για τοπικό server) και το port στο οποίο εκτελείται ο server. Για τον FClient δεν έχει καμία διαφορά το εάν επικοινωνεί με έναν τοπικό server ή τον server στο euclid ή κάποιον FServer οπουδήποτε στο διαδίκτυο. Δεν αλλάζει κάτι για τον FClient, όπου και να είναι ο server.

Οι σταθερές ENUM για κάθε παίκτη έχουν αλλάξει στη v0.80 όπως έχει ανακοινωθεί.
Ο FServer έχει το δικό του παίκτη και ο FClient το δικό του. Οι σταθερές είναι οι ίδιες.
Όμως ο παίκτης για το παιχνίδι COPY δεν υπάρχει στον FServer, αλλά μόνο στην υλοποίηση του FaciliGameServer στο euclid.ee.duth.gr .

3. Το host και το port θα πρέπει να δείχνουν στο σωστό server που θέλω να συνδεθώ.

4. Το μήνυμα λάθους λέει ότι υπάρχει ήδη κάποιο socket ανοικτό στο port που προσπαθεί να χρησιμοποιήσει ο FServer.
Αυτό μάλλον σημαίνει ότι ενώ εκτελείται ήδη κάποιος FServer στο port αυτό προσπαθείς να ανοίξεις και δεύτερο FServer στο ίδιο port.
pefraimi
Sr. Member
 
Δημοσιεύσεις: 333
Εγγραφή: 01 Νοέμ 2008, 14:59

Re: Εργασία 1 - Facility Game [2014-15]

Δημοσίευσηαπό pefraimi » 16 Νοέμ 2014, 13:14

Κάθε φορά που τρέχω το πρόγραμμα μου στον server το σκορ που βγάζω ως PLAYER B απέναντι στους Simple player 1 και 2(παίζουν σαν PLAYER A) είναι μεγαλύτερο απο το δικό τους. Δηλαδή τους νικάω. Όμως το success σε μερικές περιπτώσεις μου το βγάζει 0 αν και το σκορ είναι υπέρ μου.

ValueOfAllNodes=game.getValue();
...
for(int j=0; j<ValueOfAllNodes.length-i;j++){
...
ValueOfAllNodes[j] = ValueOfAllNodes[j+1];
...
}


Ο πίνακας που επιστρέφει η game.getValue() είναι μόνο για ανάγνωση.
Αλλάζοντας τις τιμές στον πίνακα αυτό, αλλάζεις τις τιμές που χρησιμοποιεί
ο FClient για να υπολογίσει το σκορ και έτσι το αποτέλεσμα που σου εμφανίζει
είναι λανθασμένο. Ο server έχει το δικό του πίνακα και υπολογίζει σωστά το σκορ.

Εάν θέλεις μπορείς να δημιουργήσεις ένα αντίγραφο του πίνακα που σου δίνει η
game.getValue() και πάνω στο αντίγραφο θα μπορείς να κάνεις ότι πράξεις θέλεις
χωρίς να αλλοιώνεις το αποτέλεσμα.
pefraimi
Sr. Member
 
Δημοσιεύσεις: 333
Εγγραφή: 01 Νοέμ 2008, 14:59

Re: Εργασία 1 - Facility Game [2014-15]

Δημοσίευσηαπό θανάσης κ. » 16 Νοέμ 2014, 18:33

το vector getMoveLocation επιστρέφει την αξία που έχει ο κόμβος; ή τον αριθμό του κόμβου;
επίσης το vector getmovebyplayer επιστρέφει τον αριθμό του κόμβου που είναι κατειλημένος;
θανάσης κ.
Newbie
 
Δημοσιεύσεις: 7
Εγγραφή: 01 Ιουν 2013, 16:08

Re: Εργασία 1 - Facility Game [2014-15]

Δημοσίευσηαπό andrsymi » 16 Νοέμ 2014, 19:32

Προσπαθώντας να τρεξω το παιχνίδι στον σερβερ παιρνω αυτο το error:
FClient (PLAYER_B) : OK, the game is starting ...
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 5
at java.util.Vector.get(Unknown Source)
at facilityGame.AndrewSym.nextMove(AndrewSym.java:58)
at facilityGame.FClient.play(FClient.java:224)
at facilityGame.FClient.main(FClient.java:429)

Στην γραμμη 58 του κώδικά μου είναι ή εντολή : if(moveLoc.get(moveInd)== moveLoc.get(moveInd-2)+2){, όπου moveLoc είναι το Vector της GetMoveLocation και moveInd ειναι η τιμή που επιστρέφει η getMoveIndex..

Ποιο μπορεί να είναι το πρόβλημα;
Η getCurMoveIndex επιστρέφει τον αριθμό τον κινήσεων που έχουν ολοκληρωθεί ή μετράει και την τρέχουσα κίνηση; Δηλαδή αν εγώ ως player B την καλέσω την 1η φορά που θα πάιξω, θα επιστρέψει 1 ή 2;

EDIT: άλλαξα τον κώδικα και όπου moveInd έβαλα moveInd-1 και δεν πετάει σφάλμα εκει πια, οπότε μάλλον getCurMoveIndex μετράει και την τρέχουσα κίνηση
Ευχαριστώ
Τελευταία επεξεργασία από andrsymi και 16 Νοέμ 2014, 21:00, έχει επεξεργασθεί 2 φορά/ες συνολικά
andrsymi
Newbie
 
Δημοσιεύσεις: 4
Εγγραφή: 02 Νοέμ 2012, 17:16

Re: Εργασία 1 - Facility Game [2014-15]

Δημοσίευσηαπό lakiss92 » 16 Νοέμ 2014, 19:59

Γιατί όταν τρέχω με τύπο παιχνιδιού copy μου βγάζει java.net.SocketException: Connection reset ;
lakiss92
Newbie
 
Δημοσιεύσεις: 1
Εγγραφή: 05 Φεβ 2012, 04:54

ΠροηγούμενηΕπόμενο

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

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

cron