THMMY.gr

Μαθήματα Βασικού Κύκλου => Δομές Δεδομένων => Topic started by: Napoleon on November 06, 2014, 14:21:44 pm



Title: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: Napoleon on November 06, 2014, 14:21:44 pm
Συζήτηση και απορίες περί της πρώτης εργασίας.

εκφώνηση (http://alexander.ee.auth.gr:8083/eTHMMY/archive/46/downloadFile/5794/ds-project-2014-15-A.pdf)


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: Λήσταρχος Γιαγκούλας on November 13, 2014, 13:50:42 pm
Καλημέρα.
Έχουμε κάνει επιτυχώς τη συμπλήρωση του πρότζεκτ-gomoku(παίζει κανονικά) ωστόσο μεταφέροντας το πρότζεκτ σε άλλα pc δεν λειτουργεί…
Συγκεκριμένα,πατάμε generate board->βγαίνει ο πίνακας….μετά όμως τα buttons play κλπ..δεν υπάρχουν…
Τι μπορεί να παίζει??(αυτό συμβαίνει σε όλα τα pc που το μεταφέραμε...πλη του αρχικού στο οποίο το φτιάξαμε!)
edit:solved!



Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: Λήσταρχος Γιαγκούλας on November 16, 2014, 13:44:29 pm
Προθεσμία γράφει μέχρι Τετάρτη 20/11...
Τετάρτη όμως έχει 19/11
Τι γίνεται εδώ; :( :( :(


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: vasilis94 on November 16, 2014, 15:23:52 pm
Προθεσμία γράφει μέχρι Τετάρτη 20/11...
Τετάρτη όμως έχει 19/11
Τι γίνεται εδώ; :( :( :(

Ρωτήθηκε στο μάθημα τελευταία φορά, Πέμπτη 20 είναι η προθεσμία.


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: akyrosHM on November 16, 2014, 16:32:01 pm
Τα NUMBER_OF_ROWS και NUMBER_OF_COLUMNS τα παίρνετε από το board.cols και board.rows ?


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: Μουργόλυκος on November 16, 2014, 16:58:10 pm
Οι set συναρτησεις στις κλασεις πρεπει να κανουν κατι αλλο εκτος απο το να θετουν μεταβλητες?
Π.χ:
Code:
public void setColor(int xrwma){
color=xrwma;
}
Εκτος απο αυτο πρεπει να κανει και τιποτα αλλο?


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: dimitris83 on November 16, 2014, 18:36:26 pm
Καλημέρα.
Έχουμε κάνει επιτυχώς τη συμπλήρωση του πρότζεκτ-gomoku(παίζει κανονικά) ωστόσο μεταφέροντας το πρότζεκτ σε άλλα pc δεν λειτουργεί…
Συγκεκριμένα,πατάμε generate board->βγαίνει ο πίνακας….μετά όμως τα buttons play κλπ..δεν υπάρχουν…
Τι μπορεί να παίζει??(αυτό συμβαίνει σε όλα τα pc που το μεταφέραμε...πλη του αρχικού στο οποίο το φτιάξαμε!)
edit:solved!


Με πιο τρόπο τελικά έλυσες αυτό το πρόβλημα;


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: Napoleon on November 16, 2014, 18:36:36 pm
Τα NUMBER_OF_ROWS και NUMBER_OF_COLUMNS τα παίρνετε από το board.cols και board.rows ?


GomokuUtilities.NUMBER_OF_ROWS κλπ
Οι set συναρτησεις στις κλασεις πρεπει να κανουν κατι αλλο εκτος απο το να θετουν μεταβλητες?
Π.χ:
Code:
public void setColor(int xrwma){
color=xrwma;
}
Εκτος απο αυτο πρεπει να κανει και τιποτα αλλο?

όχι


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: Μουργόλυκος on November 16, 2014, 20:10:01 pm
Παταω generate board και μετα Play και  μου γεμιζει ολο το board με μαυρα πουλια. Καμια βοηθεια?
edit: Solved (Ειχα δηλωσει την μεταβλητη color στην κλαση Tile static)


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: Λήσταρχος Γιαγκούλας on November 18, 2014, 00:54:17 am
Καλημέρα.
Έχουμε κάνει επιτυχώς τη συμπλήρωση του πρότζεκτ-gomoku(παίζει κανονικά) ωστόσο μεταφέροντας το πρότζεκτ σε άλλα pc δεν λειτουργεί…
Συγκεκριμένα,πατάμε generate board->βγαίνει ο πίνακας….μετά όμως τα buttons play κλπ..δεν υπάρχουν…
Τι μπορεί να παίζει??(αυτό συμβαίνει σε όλα τα pc που το μεταφέραμε...πλη του αρχικού στο οποίο το φτιάξαμε!)
edit:solved!


Με πιο τρόπο τελικά έλυσες αυτό το πρόβλημα;

Δόθηκε διευκρίνηση στο ethmmy φίλε...


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: airguitar on November 18, 2014, 18:13:01 pm
στη συναρτηση getNextMove οταν παω να επιστρεψω τον πινακα με την επομενη τυχαια θεση (εγω τον ονομασα nextpos ) μου βγαζει error cannot convert from double to int τι πρεπει να κανω ??


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: Κηπουρίδης on November 18, 2014, 18:18:45 pm
στη συναρτηση getNextMove οταν παω να επιστρεψω τον πινακα με την επομενη τυχαια θεση (εγω τον ονομασα nextpos ) μου βγαζει error cannot convert from double to int τι πρεπει να κανω ??
Πες ότι έχεις μια μεταβλητή a που είναι int, και μία b που είναι double.

Απαγορεύεται
a = b;

οπότε κάνεις
a = (int)b;

ώστε να μετατραπεί η τιμή σε int πριν μπει στην a.

Αντίστοιχα και a = (int)10.5
δηλαδή δεν είναι αναγκαστικό να έχεις μεταβλητή b, μπορεί να είναι οποιαδήποτε παράσταση.


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: airguitar on November 18, 2014, 18:26:07 pm
στη συναρτηση getNextMove οταν παω να επιστρεψω τον πινακα με την επομενη τυχαια θεση (εγω τον ονομασα nextpos ) μου βγαζει error cannot convert from double to int τι πρεπει να κανω ??
Πες ότι έχεις μια μεταβλητή a που είναι int, και μία b που είναι double.

Απαγορεύεται
a = b;

οπότε κάνεις
a = (int)b;

ώστε να μετατραπεί η τιμή σε int πριν μπει στην a.

Αντίστοιχα και a = (int)10.5
δηλαδή δεν είναι αναγκαστικό να έχεις μεταβλητή b, μπορεί να είναι οποιαδήποτε παράσταση.

δηλαδη να το κανω ετσι ?
Code:
int[] nextpos={(int)Math.random(),(int)Math.random()};
return nextpos;


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: Κηπουρίδης on November 18, 2014, 18:44:12 pm
Θες αριθμο στο [0,15) = [0,14]
Ετσι οπως το κανεις παιρνεις στο [0,1) = [0,0] = 0.

Αλλα ναι, το σκεπτικο αυτο ειναι. Προσεξε οτι πρεπει να κανεις και ελεγχο αν εχει παιχτει ηδη εκεινη η θεση!


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: airguitar on November 18, 2014, 18:47:14 pm
τον ελεγχο πως τον κανω ??
αν γραψω if(nextpos=getTile) προφανως ειναι μλκ ε ?
γιατι το nextpos ειναι πινακας ενω η getTile συναρτηση....


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: Κηπουρίδης on November 18, 2014, 18:51:20 pm
Η getTile παιρνει ορισματα x και y και επιστρεφει 0 αν ειναι αδειο το ταμπλο.
Αρα ο ελεγχος σου ειναι getTile( nextpos[0], nextpos[1] ) != 0
γιατι αν ειναι διαφορο απ το 0 σημαινει οτι καποιος εχει βαλει ηδη εκει, αρα πρεπει να ξαναπροσπαθησεις. Ομως δεν αρκει μια if, γιατι μπορει και τη δευτερη φορα να παρεις θεση που εχει παιχτει ηδη.
Αρα θες καποια επαναληψη, με ολες γινεται, διαλεξε οποια σε βολευει εσενα περισσοτερο.


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: airguitar on November 18, 2014, 20:41:55 pm
Η getTile παιρνει ορισματα x και y και επιστρεφει 0 αν ειναι αδειο το ταμπλο.
Αρα ο ελεγχος σου ειναι getTile( nextpos[0], nextpos[1] ) != 0
γιατι αν ειναι διαφορο απ το 0 σημαινει οτι καποιος εχει βαλει ηδη εκει, αρα πρεπει να ξαναπροσπαθησεις. Ομως δεν αρκει μια if, γιατι μπορει και τη δευτερη φορα να παρεις θεση που εχει παιχτει ηδη.
Αρα θες καποια επαναληψη, με ολες γινεται, διαλεξε οποια σε βολευει εσενα περισσοτερο.
μου βγαζει error : nextpos cannot be resolved to a variable


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: airguitar on November 18, 2014, 23:20:17 pm
καποιος που εκανε την συναρτηση getTile μπορει να βοηθησει και να μας πει πως την εκανε ?


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: akyrosHM on November 19, 2014, 00:11:05 am
Εγώ έλεγα αν το χρώμα είναι γκρι. Αν ναι, σταματάει το loop και έχεις τις συντεταγμένες.
Το χρώμα το παίρνεις από το
Code:
board.getTile(coord[0],coord[1]).getColor();

My 2 cents...


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: airguitar on November 19, 2014, 00:30:42 am
Εγώ έλεγα αν το χρώμα είναι γκρι. Αν ναι, σταματάει το loop και έχεις τις συντεταγμένες.
Το χρώμα το παίρνεις από το
Code:
board.getTile(coord[0],coord[1]).getColor();

My 2 cents...
εκτος απο αυτο τι κανεις ?
την if δηλαδη πως την κανεις ??

εγω π.χ γραφω αυτο

Code:
public int[] getNextMove(Board board)
    {
    
     int[] nextpos={(int)(Math.random()*14)+1,(int)(Math.random()*14)+1};
    
        if(board.getTile(nextpos[0], nextpos[1])!=0)
     {
         return nextpose;
     }
        else
        {
         return nextpos;
        }




αλλα σιγουρα εχει λαθος!! μπορεις να βοηθησεις ?? ή ο οποιοσδηποτε....


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: απλυτος on November 19, 2014, 18:05:30 pm
η δικιά μου υλοποίηση της Math - τέρμα υπερβολική χωρίς λόγο, αλλά μιας κι αυτό ήταν το πρώτο που μου ρθε στο μυαλό !!! την στελνω.

Code:
double diasthma_x, diasthma_y;
diasthma_x = 1 / GomokuUtilities.NUMBER_OF_ROWS;
diasthma_y = 1 / GomokuUtilities.NUMBER_OF_COLUMNS;

double tux_ar;
int i, ar_x, ar_y;
ar_x=0;
ar_y=0;
boolean a=true;

while (a){
tux_ar = Math.random();

for (i=0;i<GomokuUtilities.NUMBER_OF_ROWS;i++){
if ( (tux_ar >= i*diasthma_x) && (tux_ar < (i+1)*diasthma_x) ){
ar_x=i;
}
}

for (i=0;i<GomokuUtilities.NUMBER_OF_COLUMNS;i++){
if ( (tux_ar >= i*diasthma_y) && (tux_ar < (i+1)*diasthma_y) ){
ar_y=i;
}
}


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: dalexiok on November 19, 2014, 18:23:57 pm
Πρέπει να κάνουμε main για να τρέχει το πρόγραμμα ή όχι?

Την κλάση Board πρέπει να την δημιουργήσουμε ή θα φτιαχτεί σε επόμενη εργασία?


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: απλυτος on November 19, 2014, 18:42:58 pm
Πρέπει να κάνουμε main για να τρέχει το πρόγραμμα ή όχι?

Την κλάση Board πρέπει να την δημιουργήσουμε ή θα φτιαχτεί σε επόμενη εργασία?

τα έχει φτιάξει όλα αυτός. no panic.

εσύ μόνο τις δυο κλάσεις πρέπει να μοντάρεις.


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: airguitar on November 19, 2014, 21:23:58 pm
Eχει κανεις αυτο το προβλημα ? Οταν εκτελω την εργασια και παταω τα γνωστα generate board και μετα play δεν γεμιζουν τα κουτακια και μου γραφει κατω στο console "The tile is already taken" τι μπορει να συμβαινει ?
γραφω και τον κωδικα της getNextMove
:
Code:
public int[] getNextMove(Board board)
    {
    int x,y;
    int[] nextpos = new int[2];
   
       do
       {   
      x=(int)(Math.random()*(GomokuUtilities.NUMBER_OF_COLUMNS));
      y=(int)(Math.random()*(GomokuUtilities.NUMBER_OF_ROWS));
       }
       while(board.getTile(x,y).getColor()!=0);
   
       nextpos[0]=x;
       nextpos[1]=y;
       
       return nextpos;
       
    }



Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: Κηπουρίδης on November 19, 2014, 21:47:59 pm
Μηπως απλα δεν εκανες compile ή save τον κωδικα σου και τρεχει ακομα καποιον παλιο; Εμενα με ακριβως την ιδια λογικη παιζει μια χαρα.


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: airguitar on November 19, 2014, 21:50:59 pm
μονο save τον εκανα με το compile εννοεις debug (αυτο διπλα στο play) ?


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: jin on November 20, 2014, 18:00:53 pm
Υπαρχει κανεις που το προγραμμα του τρεχει κανονικα αλλα βγαζει μονο ενα πλακιδιο και μετα σταματα?


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: airguitar on November 20, 2014, 18:12:12 pm
Υπαρχει κανεις που το προγραμμα του τρεχει κανονικα αλλα βγαζει μονο ενα πλακιδιο και μετα σταματα?

ναι αλλα εμενα βγαζει 2 μονο ενα μαυρο πρωτα και μετα ενα ασπρο
και γραφει στο console The tile you chose is already taken πολλες φορες.


Title: Re: [Δομές δεδομένων] Εργασία Α 2014/2015
Post by: airguitar on November 20, 2014, 18:16:42 pm
Υπαρχει κανεις που το προγραμμα του τρεχει κανονικα αλλα βγαζει μονο ενα πλακιδιο και μετα σταματα?

ναι αλλα εμενα βγαζει 2 μονο ενα μαυρο πρωτα και μετα ενα ασπρο
και γραφει στο console The tile you chose is already taken πολλες φορες.

εγω ειχα λαθος εδω παντως(κλαση Tile) :

public int getPlayerId()
   {
      return PlayerId;
   }

αντι για return PlayerId εγραψα  return id που ειναι λαθος
τσεκαρε το και εσυ.