Εργαστήριο/Διαγωνισμός FacilityGame [2011-12]

Εργαστήριο/Διαγωνισμός FacilityGame [2011-12]

Δημοσίευσηαπό pefraimi » 02 Φεβ 2012, 21:28

Στο εργαστήριο/διαγωνισμό του FacilityGame που θα γίνει τη Δευτέρα 13/2/2012 θα χρησιμοποιηθεί η νεώτερη έκδοση (v.040 και μετά) της εφαρμογής, η οποία

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

    έχει ένα επιπλέον στοιχείο για να έχει περισσότερο ενδιαφέρον το παιχνίδι: Εάν ένας παίκτης καταλάβει τρεις ή περισσότερους διαδοχικούς κόμβους (πχ τους κόμβους 5 , 7 και 9 - ενδιάμεσα υπάρχουν τα υποχρεωτικά κενά) τότε οι βαθμοί των συγκεκριμένων αυτών κόμβων μετράνε τριπλά στο τελικό score.

Στην εξέταση του εργαστηρίου (06/02/2012) μπορείτε να χρησιμοποιήσετε είτε την τρέχουσα έκδοση v0.26 είτε την νεώτερη (v0.40 και μετά). Στο διαγωνισμό θα χρησιμοποιηθεί μόνο η νεώτερη έκδοση. Δεν υπάρχει συμβατότητα σε επίπεδο εκτελέσιμου κώδικα μεταξύ νέας και παλιάς έκδοσης.

Περισσότερα στοιχεία για το FacilityGame και οδηγίες για τον κώδικα θα αναρτηθούν (και) στο Forum αυτό,

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

Re: Εργαστήριο/Διαγωνισμός FacilityGame

Δημοσίευσηαπό ntinos91 » 06 Φεβ 2012, 21:19

Η νέα έκδοση του facility game εμφανίζει error και δεν ανοίγει στην ιστοσελίδα του μαθήματος.Μήπως γίνεται να ανεβάσετε το σχετικό κώδικα και στο eclass;
ntinos91
Newbie
 
Δημοσιεύσεις: 14
Εγγραφή: 26 Οκτ 2009, 18:28

Re: Εργαστήριο/Διαγωνισμός FacilityGame

Δημοσίευσηαπό pefraimi » 07 Φεβ 2012, 10:46

ΟΚ, διροθώθηκε ο υπερσύνδεσμος ώστε να δείχνει στη νέα έκδοση. Κάνε refresh στη σχετική σελίδα από το browser που χρησιμοποιείς.
Καλού-κακού το project ανέβηκε και στο eClass,

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

Re: Εργαστήριο/Διαγωνισμός FacilityGame

Δημοσίευσηαπό brera » 09 Φεβ 2012, 18:35

Για να παραμείνει το τοπικ καθαρό η συζήτηση για την οργάνωση του μαθήματος μεταφέρθηκε εδώ.
Alfa Romeo is love and passion...
Senza cuore saremmo solo macchine!!
Άβαταρ μέλους
brera
Γενικός Συντονιστής
 
Δημοσιεύσεις: 1327
Εγγραφή: 05 Φεβ 2008, 18:30
Φοιτητής ΗΜΜΥ: Ναι

Re: Εργαστήριο/Διαγωνισμός FacilityGame

Δημοσίευσηαπό galotsa » 11 Φεβ 2012, 23:11

Μπορεί κάποιος από εδώ, να μου εξηγήσει πως θα βάλω να παίρνει τον δικό μου παίκτη?? Γιατί άλλαξα στα arguments και έβαλα τον δικό μου παίκτη, αλλά πάλι παίζουν 2 dummy μεταξύ τους αν και εκτυπώνει ότι έπαιξε ο δικός μου παίκτης ενω το αποτελεσμα ειναι πάντα το ίδιο....Κερδίζει ο δεύτερος,όποιος και να είναι...!!! Έβαλα και στο EnumPlayerType το όνομα, και στο CreatePlayerObject έβαλα μια case ακόμα.. τι αλλο πρέπει να κάνω??
ilektronia, protonia, netronia, mpozonia, fermionia, mionia, pionia, MAKARONIA!!
Άβαταρ μέλους
galotsa
Newbie
 
Δημοσιεύσεις: 47
Εγγραφή: 09 Νοέμ 2009, 00:51
Τοποθεσία: σπίτι μου
Φοιτητής ΗΜΜΥ: Ναι

Re: Εργαστήριο/Διαγωνισμός FacilityGame

Δημοσίευσηαπό pefraimi » 12 Φεβ 2012, 10:58

Έχουμε κάνει τη διαδικασία αυτή δύο φορές βήμα-βήμα στο εργαστήριο.

Εδώ είναι η σύνοψη των βημάτων:

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

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

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

    Διορθώνουμε το κείμενο της μεταβλητής strAbout (στην αρχή της κλάσης του παίκτη) ώστε να έχει τα στοιχεία μας (όνομα παίκτη/κώδικα, version, ΑΜ φοιτητή).

    Στην CreatePlayerObject συμπληρώνουμε ένα case για τη νέα σταθερά που έχουμε ορίσει στο EnumPlayerType ή χρησιμοποιούμε μια έτοιμη. Μέσα στο case θα πρέπει να δημιουργείται ένα αντικείμενο της κλάσης του παίκτη που έχουμε δημιουργήσει.

    Στα argument ή στο command line δηλώνουμε τον παίκτη που θέλουμε να χρησιμοποιήσουμε (βλ. σημειώσεις από το εργαστήριο DSLabScribes-v1.0.pdf http://pericles.ee.duth.gr/courses/2011-12/DS/Lab/DSLabScribes-v1.0.pdf).

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

Re: Εργαστήριο/Διαγωνισμός FacilityGame

Δημοσίευσηαπό galotsa » 12 Φεβ 2012, 11:51

Σας ευχαριστώ πολύ! Τα είχα κάνει όλα αυτά, αλλά μάλλον κάτι είχε κολλήσει από προηγούμενη εκτέλεση... 'Όταν έκανα επανεκκίνηση του eclipse δούλεψε κανονικά!
Θα ήθελα να κάνω μία ερώτηση-παράκληση ακόμα, για τους υπόλοιπους διαγωνιζομένους, αν κάποιος έχει έναν αλγόριθμο που θεωρεί ότι λειτουργεί σωστά να μου στείλει ένα μήνυμα να δοκιμάσουμε τους αλγορίθμους μας τον έναν ενάντια στον άλλο..Γιατί ο δικός αν και τερματίζει καλά ενάντια στον SimplePlayer, ακόμα έχω κάποιες αμφιβολίες!
Καλή σας μέρα!!
ilektronia, protonia, netronia, mpozonia, fermionia, mionia, pionia, MAKARONIA!!
Άβαταρ μέλους
galotsa
Newbie
 
Δημοσιεύσεις: 47
Εγγραφή: 09 Νοέμ 2009, 00:51
Τοποθεσία: σπίτι μου
Φοιτητής ΗΜΜΥ: Ναι

Re: Εργαστήριο/Διαγωνισμός FacilityGame

Δημοσίευσηαπό pefraimi » 12 Φεβ 2012, 13:37

Ωραία, ένα ενδιαφέρον ζήτημα που προκύπτει (δεν αφορά το μάθημα και τη βαθμολογία) είναι το πως
μπορείτε να εκτελέσετε την εφαρμογή από δύο απομακρυσμένους υπολογιστές. Η διαδικασία λίγο πολύ
η ίδια που απαιτείται για να στήσουμε ένα web service σε δικό μας υπολογιστή.

1) Εάν ο server (ο υπολογιστής που εκτελεί τον FServer) δεν βρίσκεται πίσω από NAT ή/και Firewall, τότε αρκεί
να ανακοινωθεί η IP διεύθυνση ή η πλήρης DNS διεύθυνση και το port του server στον client. Με αυτά τα στοιχεία
ο client (ο υπολογιστής που εκτελεί τον FClient) μπορεί να συνδεθεί στον server από οπουδήποτε και εάν βρίσκεται
στο διαδίκτυο.
(Σημείωση: θα πρέπει το firewall του server να επιτρέπει incoming TCP συνδέσεις στο port, πχ 4455 και (συνήθως
αυτό ισχύει έτσι και αλλιώς) το firewall του client να επιτρέπει outgoing συνδέσεις στο ίδιο port.

2) Εάν ο server βρίσκεται πίσω από firewall/NAT, πχ. με κάποια DSL σύνδεση, τότε χρειάζεται επιπλέον δουλειά
(μην το δοκιμάσετε τώρα εάν δεν είστε εξοικειωμένοι, αφήστε το για μια πιο ήρεμη στιγμή).

Βρείτε την εξωτερική IP με την οποία φαίνεται ο server, πχ. επισκεπτόμενοι το
http://www.whatismyip.com

Ανοίξτε το port πχ. 4455 στον router ώστε να δέχεται incoming TCP connections και να τα προωθεί
στη σωστή εσωτερική IP διεύθυνση (συνήθως της μορφής 192.168.1.xxx).

Ανακοινώστε την εξωτερική IP και το port στον client ώστε να δοκιμάσει να συνδεθεί.

Καλή επιτυχία σε όσους το δοκιμάσουν,

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

Re: Εργαστήριο/Διαγωνισμός FacilityGame

Δημοσίευσηαπό marian » 12 Φεβ 2012, 17:51

Γειά σας,
Έχω υλοποιήσει τον δικό μου παίκτη αλλά όταν αλλάζω το n για μερικά μου βγάζει ότι προσπαθώ να δεσμεύσω κόμβο ο οποίος δεν ειναι ελεύθερος και για άλλα τρέχει χωρίς κανένα λάθος.Παρ' όλα αυτά ο παίκτης μου νικάει κάθε φορά τον dummy_player και το παιχνίδι τελειώνει κανονικά.Μήπως ξέρετε τι μπορεί να γίνεται??
marian
Newbie
 
Δημοσιεύσεις: 1
Εγγραφή: 18 Ιουν 2011, 18:23

Re: Εργαστήριο/Διαγωνισμός FacilityGame

Δημοσίευσηαπό pefraimi » 12 Φεβ 2012, 20:05

marian έγραψε:Γειά σας,
Έχω υλοποιήσει τον δικό μου παίκτη αλλά όταν αλλάζω το n για μερικά μου βγάζει ότι προσπαθώ να δεσμεύσω κόμβο ο οποίος δεν ειναι ελεύθερος και για άλλα τρέχει χωρίς κανένα λάθος.Παρ' όλα αυτά ο παίκτης μου νικάει κάθε φορά τον dummy_player και το παιχνίδι τελειώνει κανονικά.Μήπως ξέρετε τι μπορεί να γίνεται??


Εάν καταρχήν κερδίζεις και τερματίζει κανονικά κόντρα στον dummy_player έχει γίνει ένα πρώτο σημαντικό βήμα.

Ένας πρώτος έλεγχος είναι στο σημείο που τερματίζει η μέθοδος nextMove() του παίκτη σου
να ξαναελέγξεις ότι η θέση move που επέλεξες είναι ελεύθερη.

Από κει και πέρα, με βάση τα στοιχεία που δίνεις, το μόνο που μπορώ να προτείνω είναι να ελέγξεις τον κώδικα του
παίκτη σου για τυχόν λάθη. Εάν έχεις εντοπίσει συγκεκριμένο n όπου εμφανίζεται το λάθος μήνυμα, τότε μπορείς να κάνεις
debug και να δεις τι ακριβώς συμβαίνει σε εκείνο το σημείο της εκτέλεσης. Μπορείς dhlad;h να βάλεις breakpoint
μέσα στον κώδικα
(πχ. στη γραμμή
System.err.println("Location: " + location
+ " is not free (status = " + status[location] + ")");
του FacilityGame.java
)

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

Σημείωση: Σε περίπτηση debugging στην έκδοση v0.44, ίσως θα ήταν σκόπιμο να απενεργοποιήσετε τα μηνύματα
monitor που θα συνεχίσουν να τυπώνονται σε τακτά χρονικά διαστήματα ακόμα και στη διάρκεια του debugging.
Μπορείτε να απενεργοποιήσετε το thread του monitor κάνοντας σχόλιο τη γραμμή
monitorThread.start();

στα αρχεία FServer.java και FClient.java.
Αυτό δεν επηρεάζει την εκτέλεση του παιχνιδιού,

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

Re: Εργαστήριο/Διαγωνισμός FacilityGame

Δημοσίευσηαπό pefraimi » 12 Φεβ 2012, 20:30

Θα ήθελα να σας κάνω δύο διευκρινιστικές ερωτήσεις:
1. Ο παίκτης μας πρέπει να νικάει μόνο τον SimpleFPlayer1 ή και τον SimpleFPlayer2 ??
και
2. Θυμάμαι ότι αναφέρατε στο εργαστήριο ότι μπορούμε να συνεργαστούμε 2 άτομα για τον κώδικα. Ισχύει? Αυτό όμως, σημαίνει ύπαρξη ίδιου-ταυτόσημου κώδικα για τα άτομα που θα συνεργαστούν. Θα υπάρξει πρόβλημα??


1. Λογικά εάν ο παίκτης κερδίζει τον SimpleFPlayer1 τότε ο ίδιος παίκτης ή μια παραλλαγή του θα κερδίζει και τον SimpleFPlayer2. Τέλος πάντων, ας πούμε ότι αρκεί να κερδίζει τον SimpleFPlayer1.

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

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

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

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

cron