THMMY.gr

Μαθήματα Βασικού Κύκλου => Δομές Δεδομένων => Topic started by: corina on November 26, 2006, 18:48:35 pm



Title: Εργασία Α - Απορίες
Post by: corina on November 26, 2006, 18:48:35 pm
Λοιπόν, μόλις ξεκίνησα με την ομάδα μου να προσπαθώ το πρώτο μέρος της εργασίας που έχουμε να κάνουμε μέχρι τη Δευτέρα 4/12
Έχουμε κάποιες απορίες λοιπόν:

1) Στη δημιουργία της στοίβας: Στις σημειώσεις μέσα, στην υλοποίηση της στοίβας, έχει τον κώδικα για το interface της στοίβας. Πρέπει αυτό να το ξαναγράψουμε, ή υπάρχει ήδη έτοιμο στο πρόγραμμα? Και η υλοποίηση της στοίβας? Πρέπει να γίνει και αυτή από μας; Αν ναι, να φανταστώ ότι θα γίνει μέσα στη μέθοδο createLabyrinth();

2) Περισσότερο για επιβεβαίωση: Αν κατάλαβα καλά, η χρήση της στοίβας είναι για να μετράει τα δωμάτια στα οποία έχουμε ήδη βρεθεί, κατά την κατασκευή του λαβυρίνθου, σωστά??

ΥΓ: Αν μπερδευτήκατε με τα παραπάνω, το ίδιο και εγώ!!!!! :D

Ευχαριστώ προκαταβολικά!


Title: Re: Εργασία Α - Απορίες
Post by: ikoufis on November 26, 2006, 19:05:55 pm
1)Υπάρχει μια έτοιμη κλάση στα utilities της java με όνομα Stack την οποία μπορείς να την κάνεις import.Περιέχει 5-6 συναρτήσεις για τη διαχείρηση της στοίβας. δες: <ahref>http://java.sun.com/j2se/1.4.2/docs/api/java/util/Stack.html</a>..
Μπορείς όμως να δημιουργήσεις μια δική σου κλάση που θα κάνει την ίδια δουλειά με μόνο τις συναρτήσεις που χρειάζεσαι.

2)Η Στοίβα μετράει το μονοπάτι που ακολουθείς κατά την χάραξη του δρόμου σου.Αν σε κάποιο σημείο κάνεις όπισθεν τότε τα δωμάτια αυτά φεύγουν από τη στοίβαΣτην ουσία δηλαδή σου δείχνει τον τρόπο για να πας από το δωμάτιο που ξεκίνησες σε αυτό που είσαι τώρα..

ps.Δεν την έχω ολοκληρώσει την εργασία,οπότε μπορεί να μην είναι σωστά τα παραπάνω ;)Καλή συνέχεια!


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on November 26, 2006, 19:11:10 pm
Και προσοχή, άμα δημιουργήσεις δική σου κλάση μην ξεχάσεις να τη βάλεις στο package.


Title: Re: Εργασία Α - Απορίες
Post by: corina on November 26, 2006, 19:12:13 pm
Γιάννη είσαι Θεός!!!! ^wav^ ^super^ ^peace^

Κορίνα και Εύη!

Thanx Nessa!


Title: Re: Εργασία Α - Απορίες
Post by: corina on November 26, 2006, 19:20:04 pm
ΡΕ συ Γιάννη, έχω πελαγώσει όμως. Πώς θα δω ακριβώς τον κώδικα στη σελίδα αυτήν που με έστειλες; Και ακόμη πώς θα την κάνω import?


Title: Re: Εργασία Α - Απορίες
Post by: ikoufis on November 26, 2006, 19:31:24 pm
Θα γράψεις στην πρώτη σειρά του κώδικά σου import java.util.Stack;
Λογικά θα τη βλέπει την κλάση και θα μπορείς να δημιοργείς αντικείμενα.
Δεν το έψαξα όμως πολύ,θεώρησα ότι ίσως είναι πιο εύκολο να κάνω μια δική μου κλάση για αυτή τη δουλειά(την οποία απλά την έχω σκεφτεί,δεν την έχω υλοποιήσει ακόμη!)
Αρα δε χρειάζεσαι κώδικα για τη stack,απλά καλείς τις συναρτήσεις της.

Γιάννη είσαι Θεός!!!! ^wav^ ^super^ ^peace^

Κορίνα και Εύη!

Thanx Nessa!
ΥΠ
Γιάννη είσαι Θεός!!!! ^wav^ ^super^ ^peace^

Κορίνα και Εύη!

Thanx Nessa!

ΥΠΕΡΒΟΛΕΣ!!Απλά ήσασταν τυχερές,ήταν το μόνο πράγμα που έχω ψάξει μέχρι στιγμής για την εργασία ;D


Title: Re: Εργασία Α - Απορίες
Post by: corina on November 26, 2006, 19:38:25 pm
Αυτή τη φορά θα αρκεστούμε στο να σε ευχαριστήσουμε,λοιπόν!!!
Πρώτον για να κόψουμε τις υπερβολές και δευτερον για να μην βιαστούμε όπως την προηγούμενη φορά...
Αναμείνετε λοιπόν στο PC σας... :D :D

Εύη.


Title: Re: Εργασία Α - Απορίες
Post by: corina on November 26, 2006, 19:44:18 pm
Γιαννάκη...Αν είσαι ακόμη μέσα και δεν έχεις βαρεθεί τις ερωτήσεις μας, να κάνω μία ακόμη? Στην κλάση που θα κάνεις, θα βάζεις εκείνα τα "throws" με τα exceptions που έχει από δίπλα? Γιατί προσπάθησα να τα κάνω και δεν μου τα αναγνωρίζει...ΣΝΙΦ!

Κορίνα


Title: Re: Εργασία Α - Απορίες
Post by: ikoufis on November 26, 2006, 19:57:32 pm
Αν ξέρω ευχαρίστως να σε βοηθήσω,αλλά για treads και exceptions ούτε από τη θεωρία δεν τα διάβασα.Δεν ξέρω αν είναι απαραίτητα,αλλά φυσικά δεν μπορώ να σου απαντήσω,ίσως κάποιος πιο έμπειρος με τη java!Jimi τουλάχιστον java ξέρεις?? :D


Title: Re: Εργασία Α - Απορίες
Post by: corina on November 26, 2006, 20:02:58 pm
Jimi τουλάχιστον java ξέρεις?? :D

Καλό!!!! jimi τι έχεις να απαντήσεις λοιπόν???!!!!


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on November 26, 2006, 20:04:26 pm
Η έτοιμη κλάση μπορεί και να μην κάνει γι'αυτή τη δουλειά (δεν την έχω ψάξει). Πάντως στη σελίδα 120 του βιβλίου έχει έτοιμο κώδικα, οπότε τον τροποποιείς κατά το δοκούν (ανάλογα με το τι μεταβλητές θα βάλεις στη στοίβα) και ξεμπερδεύεις.


Title: Re: Εργασία Α - Απορίες
Post by: fpsom on November 26, 2006, 21:41:32 pm
Καταρχήν προφανώς μπορείτε να χρησιμοποιήσετε έτοιμη την κλάση Stack από το πακέτο java.util. Όπως σας είπε και ο έγκριτος συνάδελφος, η εισαγωγή της κλάσης στην LabyrinthCreator γίνεται με την προσθήκη της σειράς import java.util.Stack; στην αρχή του java αρχείου (αμέσως μετά το package gr.auth.ee.dsproject.labyrinth;).

Η χρήση της Stack γίνεται πολύ απλά όπως η χρήση οποιασδήποτε άλλης κλάσης (Stack st = new Stack(); ). Οι συναρτήσεις push και pop υπάρχουν ήδη μέσα στην κλάση. Απλά να έχετε στα υπόψιν σας ότι η κλάση Stack δουλεύει γενικότερα με generics (όχι ότι τα απλά αντικείμενα θα παρουσιάσουν σίγοτυρα πρόβλημα, αλλά ποτέ δεν ξέρεις...  ;)   ) οπότε θα χρειάζεστε αρκετό type casting... (ελπίζω να τα θυμάστε αυτά από το μάθημα! :D)

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

Τέλος, όσον αφορά threads και exceptions: μην ασχολείστε (προς το παρόν τουλάχιστον) με ότι κώδικα βρίσκεται εκτός την LabyrinthCreator. Θα ζοριστείτε χωρίς λόγο! Αφήστε να τα κάνουμε μαζί πρώτα στο εργαστήριο, και μετά καταπιαστείτε όσο θέλετε. Αλλά για τις ανάγκες της εργασίας ΔΕΝ θα σας χρειαστούν (ή, για να το θέσω αλλιώς, αν σας χρειαστούν ή είστε πολύ καλοί ή μάλλον στραβά το παίρνετε....  ;D   )


Title: Re: Εργασία Α - Απορίες
Post by: OtiNaNAi on November 26, 2006, 22:42:25 pm
Αποτι εχω καταλάβει μολις επιλεξουμε το αρχικο random δωματιο απο κει κ περα μπορουμε να κινηθούμε και στις 4 κατευθήνσεις (north,south,east,west) αφου δν εχουμε επισκεφτεί κανενα αλλο δωματιο.

Πως ομως μπορεί η επιλογη του επομενου δωματιου να γινει με random τροπο????
πρεπει να χρησιμοποιησουμε την math.random κατα καποιο τροπο (πχ. αντιστοιχίζοντας καθε κατευθηνση σε ενα αριθμό) η κατι παρόμοιο???
 


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on November 27, 2006, 16:27:11 pm
Ναι, όπως το περιέγραψες (δες και το παράδειγμα στο tutorial).


Title: Re: Εργασία Α - Απορίες
Post by: papajim on November 27, 2006, 22:55:37 pm
Να θυμήσω πως στο eTHMMY στο forum του μαθήματος μιλάμε για τους χαρακτήρες και γενικά για το παιχνίδι!!!


Title: Re: Εργασία Α - Απορίες
Post by: OtiNaNAi on November 28, 2006, 15:27:10 pm
Ο λαβυρινθος γυρω-γυρω ειναι κλειστος??


Title: Re: Εργασία Α - Απορίες
Post by: fpsom on November 28, 2006, 15:37:12 pm
Αν κάνετε σωστά την υλοποίηση του ψευδοκώδικα (και αντίστοιχα τη σωστή επιλογή των "γειτονικών" δωματίων κάθε φορά), ο λαβύρινθος θα προκύψει από μόνος του κλειστός.


Title: Re: Εργασία Α - Απορίες
Post by: MIMIRU on November 28, 2006, 21:52:43 pm
Καλησπέρα,
 έχω μια απορία....:
               στις συναρτήσεις setRows και setColumns πως ορίζουμε τις τιμές τους;

Για παραδειγμα γαι τις γραμμες; number_of_col=cols;
ή
 χρειάζεται να δώσουμε συγκεκριμένους αριθμούς;
                                           


Title: Re: Εργασία Α - Απορίες
Post by: Krono on November 28, 2006, 23:15:03 pm
number_of_col=cols;
Αυτό είναι το σωστό.


Title: Re: Εργασία Α - Απορίες
Post by: MIMIRU on November 29, 2006, 03:16:21 am
οκ ευχαριστώ πολύ


Title: Re: Εργασία Α - Απορίες
Post by: Krono on November 29, 2006, 15:00:15 pm
     Οι διαστάσεις του λαβυρίνθου σε αριθμητικές τιμές (20x25) ορίζονται σε άλλη κλάση μέσα στο project και δεν πρέπει να τις ορίσεις εσύ.

Υ.Γ. Sorry, που απάντησα τόσο κοφτά αλλά βιαζόμουν και είπα να μη σου αφήσω αναπάντητη την απορία μιας και μπορούσα να βοηθήσω!


Title: Re: Εργασία Α - Απορίες
Post by: alsk on November 29, 2006, 22:26:18 pm
Εχω δημιουργησει ενα νεο package με ονομα stack1 και μεσα του μια κλαση την LIFO oπου εγραψα τον κωδικα για την διαχειριση της στοιβας.

Τωρα θελω να κανω import την κλαση LIFO και ενω παταω την εντολη που βρηκα μεσα απο το tutorial--> import stack1.LIFO; μου βγαζει λαθος.

To εχει κανει καποιος?Thanx για την βοηθεια!

Υ.Γ:Το package stack1 βρισκεται μεσα στο workspace σε ενα project Stack
 


Title: Re: Εργασία Α - Απορίες
Post by: Krono on November 29, 2006, 22:43:36 pm
     Γιατί είναι ανάγκη να δημιουργήσεις νέο package; Προσωπικά για αυτό που λες δεν μπορώ να σε βοηθήσω.
     Εναλλακτικά όμως μπορείς να δημιουργήσεις αυτήν τη νέα κλάση LIFO μέσα στο package όπου υπάρχουν όλες οι άλλες κλάσεις και να τη χρησιμοποιήσεις απευθείας.


Title: Re: Εργασία Α - Απορίες
Post by: alsk on November 29, 2006, 22:48:53 pm
Το ξερω οτι δεν ειναι αναγκη και τελικα το εκανα οπως το ειπες αλλα για την απορια και μονο ρωτησα αν γνωριζει κανεις... ;)

Thanx για τη βοηθεια!


Title: Re: Εργασία Α - Απορίες
Post by: alsk on November 29, 2006, 22:58:33 pm
Τελικα (αφου μιλησα με ενα παιδι απο τη σχολη ο οποιος ειχε το ιδιο προβλημα) μου ειπε οτι με την εντολη import stack1.*; (με την οποια κανεις import ολες τις κλασεις ενος package) δεν εβγαλε λαθος.

Και το περιεργο ειναι οτι μετα ξαναδοκιμασαμε με την import stack1.LIFO; και δεν βγαζει λαθος(απλα ενα θαυμαστικο για το οτι δεν χρησιμοποιειται)!  :D


Title: Re: Εργασία Α - Απορίες
Post by: kafjim on November 30, 2006, 11:04:59 am
καλημέρα,
έχω το εξής πρόβλημα. Άσχετα από την υλοποίηση της στοίβας που πρέπει να κάνουμε, για κάποιον λόγο, όταν δοκιμάζω να τρέξω την main του προγράμματος μου βγάζει σφάλματα και δεν μπορεί να εκτελεστεί. Δείχνει κάποια σφάλματα στην  κλάση LabyrinthUtilities. Παραθέτω και τα σφάλματα που μου εμφανίζει ο eclipse:

java.lang.Error: Do not use javax.swing.JFrame.setLayout() use javax.swing.JFrame.getContentPane().setLayout() instead
   at javax.swing.JFrame.createRootPaneException(Unknown Source)
   at javax.swing.JFrame.setLayout(Unknown Source)
   at gr.auth.ee.dsproject.labyrinth.MainPlatform.creat eAndShowGUI(MainPlatform.java:83)
   at gr.auth.ee.dsproject.labyrinth.MainPlatform.acces s$0(MainPlatform.java:30)
   at gr.auth.ee.dsproject.labyrinth.MainPlatform$5.run(MainPlatform.java:102)
   at java.awt.event.InvocationEvent.dispatch(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForHiera rchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarc hy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)

Γνωρίζει κανένας τι σημαίνουν αυτά; Μήπως πρόκειται για κάποια ρύθμιση στον eclipse που δεν είναι σωστή;
Ευχαριστώ..


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on November 30, 2006, 12:27:36 pm
Βασικά σου λέει τι πρέπει να κάνεις:
Do not use javax.swing.JFrame.setLayout() use javax.swing.JFrame.getContentPane().setLayout() instead
Το δοκίμασες και δε γίνεται;


Title: Re: Εργασία Α - Απορίες
Post by: Krono on November 30, 2006, 13:02:21 pm
      Κι εμένα από την αρχή έως τώρα μου βγάζει 41 σφάλματα στην LabyrinthUtilities παρόλο που έβαλα και ξαναέβαλα το JRE. Ωστόσο ο λαβύρινθος τρέχει κανονικά.
      Δοκίμασες αν τρέχει αυτό το αρχικό πρόγραμμα που μας έδωσαν; (αφού υλοποιήσεις βέβαια τον cοnstructor και τις δυο άλλες συναρτήσεις)


Title: Re: Εργασία Α - Απορίες
Post by: MIMIRU on November 30, 2006, 14:02:22 pm

καλημέρα,
  έχω ένα πρόβλημα..Χρησιμοποιώ ,μια Random συνάρτηση και διαλέγω i , j  αλλα μετά δεν μπορώ να βρω ένα τρόπο να τα περασω
στην rooms[][].Χρησιμοποίησα και τον τελεστή this αλλά βγάζει λαθη..(i cannot be resolved).Καμιά ιδέα...


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on November 30, 2006, 16:37:06 pm
Δε θα βάλεις this, θα βάλεις απευθείας την κλάση που έχεις πάρει.


Title: Re: Εργασία Α - Απορίες
Post by: Krono on November 30, 2006, 18:47:29 pm
      Τί ακριβώς θέλεις να περάσεις στο αντικείμενο rooms[][]; Το μόνο που χρειάζεται να του κάνεις είναι να του γκρεμίσεις μερικούς τύχους.


Title: Re: Εργασία Α - Απορίες
Post by: Maverick on November 30, 2006, 19:11:47 pm
Ερώτηση: ειμαι σε ενα τυχαιο room και θελω να ελεγξω τα γειτονικα του.Επιλεγω τυχαια ενα δωματιο.Σε περιπτωση που αυτο εχει εναν τοιχο γκρεμισμενο (αρα δεν μπορω να παω σ'αυτο). πως θα ελεγξω τα υπολοιπα 3 με ΤΥΧΑΙΟ τροπο πριν κανω pop? :D


Title: Re: Εργασία Α - Απορίες
Post by: corina on November 30, 2006, 19:25:36 pm
Όπως διάλεξες ΤΥΧΑΙΑ τον αρχικό τοίχο. Και εκεί ουσιαστικά δε διάλεξες έναν τοίχο από 4 τυχαία? Μετά πρέπει να βρεις τρόπο να αποκλείεις το συγκεκριμένο τοίχο από την επόμενη random επιλογή, ωστε να επιλέγεις τυχαία έναν από τους υπόλοιπους 3 τοίχους. Βέβαια αν δεν ξέρω πώς ακριβώς επιλέγεις τον αρχικό τοίχο, δεν μπορώ και να σου πω πώς ακριβώς θα το κάνεις αυτό!

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


Title: Re: Εργασία Α - Απορίες
Post by: corina on November 30, 2006, 19:28:35 pm
Έγώ πάντως έχω ένα άλλο πρόβλημα. Στη συνάρτησή μου χρησιμοποιώ νέες μεταβλητές, οι οποίες φιλοδοξώ να είναι τοπικές, δηλαδή μόνο της μεθόδου. Ό,τι και αν έχω κάνει, δεν τις αναγνωρίζει με καμία Παναγία!!!!
Μου βγάζει ένα μήνυμα ότι ο μόνος τύπος μεταβλητής που επιτρέπεται είναι "final" ή κάτι τέτοιο...Δοκίμασα να τις βάλω και final και πάλι τίποτα...


Title: Re: Εργασία Α - Απορίες
Post by: corina on November 30, 2006, 19:50:08 pm
Μήπως να τις δηλώσω ως μεταβλητές της ίδιας της κλάσης? Απλά είναι και μερικοί μετρητές, που δε βρίσκω λόγο να είναι μεταβλητές ολόκληρης της κλάσης...


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on November 30, 2006, 21:00:43 pm
Τους μετρητές μπορείς να τους δηλώσεις και μέσα στη for.

Edit, για να γίνω πιο σαφής: for (int i;i<1000000;i++){}


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on November 30, 2006, 21:09:37 pm
Ερώτηση: ειμαι σε ενα τυχαιο room και θελω να ελεγξω τα γειτονικα του.Επιλεγω τυχαια ενα δωματιο.Σε περιπτωση που αυτο εχει εναν τοιχο γκρεμισμενο (αρα δεν μπορω να παω σ'αυτο). πως θα ελεγξω τα υπολοιπα 3 με ΤΥΧΑΙΟ τροπο πριν κανω pop? :D
Αυτό νομίζω πως δεν είναι αναγκαίο (εγώ πάντως δε σκέφτηκα να ξαναβάλω τυχαία επιλογή μετά την πρώτη κατεύθυνση, τον έβαλα να τις παίρνει με τη σειρά). Πάντως αν θέλεις να το κάνεις έτσι, αν είσαι πχ στην περίπτωση 2 (το SOUTH είναι νομίζω) θα πρέπει να έχεις μια συνάρτηση που να επιλέγει ανάμεσα στους αριθμούς 0,1 και 3. Δεν ξέρω αν υπάρχει έτοιμη, αν δεν είναι έτοιμη θα πάρεις random για το 3 και θα του πεις αν tyxaio_noumero=2 τότε tyxaio_noumero=3. Αντίστοιχα και για τις άλλες περιπτώσεις.


Title: Re: Εργασία Α - Απορίες
Post by: stratis on November 30, 2006, 23:59:26 pm
Έγώ πάντως έχω ένα άλλο πρόβλημα. Στη συνάρτησή μου χρησιμοποιώ νέες μεταβλητές, οι οποίες φιλοδοξώ να είναι τοπικές, δηλαδή μόνο της μεθόδου. Ό,τι και αν έχω κάνει, δεν τις αναγνωρίζει με καμία Παναγία!!!!
Μου βγάζει ένα μήνυμα ότι ο μόνος τύπος μεταβλητής που επιτρέπεται είναι "final" ή κάτι τέτοιο...Δοκίμασα να τις βάλω και final και πάλι τίποτα...

Κορίνα, αυτό το λάθος μου το έβγαζε κι εμένα και μόνο αφού μου έσπασαν τα νεύρα ανακάλυψα ότι έφταιγε μια αγκύλη που είχα βάλει αντί για παρένθεση αρκετά πιο πάνω στο πρόγραμμα.  ^banghead^  Κοίτα μήπως οφείλεται σε κάτι τέτοιο, γιατί φυσιολογικά δεν νομίζω να είναι λάθος αυτό που έκανες...  :)


Title: Re: Εργασία Α - Απορίες
Post by: johnny_d on December 01, 2006, 01:15:14 am
Εγώ σχεδόν τώρα ξεκίνησα να κοιτάω την εργασία...
Όταν λοιπόν έκανα import το package κ πηγά να τρέξω την main μου βγάζει τα παρακάτω...

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0
   at gr.auth.ee.dsproject.labyrinth.Labyrinth.paintCom ponent(Labyrinth.java:53)
   at javax.swing.JComponent.paint(Unknown Source)
   at javax.swing.JComponent.paintChildren(Unknown Source)
   at javax.swing.JComponent.paint(Unknown Source)
   at javax.swing.JComponent.paintChildren(Unknown Source)
   at javax.swing.JComponent.paint(Unknown Source)
   at javax.swing.JLayeredPane.paint(Unknown Source)
   at javax.swing.JComponent.paintChildren(Unknown Source)
   at javax.swing.JComponent.paint(Unknown Source)
   at javax.swing.JComponent.paintWithOffscreenBuffer(Unknown Source)
   at javax.swing.JComponent.paintDoubleBuffered(Unknown Source)
   at javax.swing.JComponent._paintImmediately(Unknown Source)
   at javax.swing.JComponent.paintImmediately(Unknown Source)
   at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
   at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
   at java.awt.event.InvocationEvent.dispatch(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForHiera rchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarc hy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0
   at gr.auth.ee.dsproject.labyrinth.Labyrinth.paintCom ponent(Labyrinth.java:53)
   at javax.swing.JComponent.paint(Unknown Source)
   at javax.swing.JComponent.paintChildren(Unknown Source)
   at javax.swing.JComponent.paint(Unknown Source)
   at javax.swing.JComponent.paintChildren(Unknown Source)
   at javax.swing.JComponent.paint(Unknown Source)
   at javax.swing.JLayeredPane.paint(Unknown Source)
   at javax.swing.JComponent.paintChildren(Unknown Source)
   at javax.swing.JComponent.paintWithOffscreenBuffer(Unknown Source)
   at javax.swing.JComponent.paintDoubleBuffered(Unknown Source)
   at javax.swing.JComponent.paint(Unknown Source)
   at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
   at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
   at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
   at java.awt.Container.paint(Unknown Source)
   at javax.swing.JFrame.update(Unknown Source)
   at sun.awt.RepaintArea.updateComponent(Unknown Source)
   at sun.awt.RepaintArea.paint(Unknown Source)
   at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Window.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForHiera rchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarc hy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)

στο console...
Kανονικά δεν θα έπρπε να μου εμφανίζει εναν μη τέλειο λαβύρινθο??? :( :-\
Χρειάζεται να αλλάξω κάτι στις ρυθμίσεις??


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on December 01, 2006, 01:25:04 am
Το σφάλμα αυτό σημαίνει ότι πήγες να προσπελάσεις μια θέση του πίνακα που δεν υπάρχει (πχ ο πίνακας έχει 100 θέσεις και εσύ του ζήτησες την 101). Το κουφό είναι ότι το νούμερο που σου έχει δίπλα είναι το 0! Κανονικά όλοι οι πίνακες αρχίζουν στη θέση 0 :???:


Title: Re: Εργασία Α - Απορίες
Post by: johnny_d on December 01, 2006, 01:33:43 am
Ωραία αλλά εγω το έτρεξα όπως ήταν...χωρίς να κάνω αλλαγές!!
Όπως ήταν μετά το import...!Δηλαδή ήταν λάθος απο την αρχή στο zip???!!! :D :D


Title: Re: Εργασία Α - Απορίες
Post by: Krono on December 01, 2006, 01:49:21 am
      To zip τρέχει. Τον constructor και τις δυο συναρτήσεις τις υλοποίησες;


Title: Re: Εργασία Α - Απορίες
Post by: johnny_d on December 01, 2006, 02:29:58 am
Τώρα ναι...!Το έβγαλα...thank you!!


Title: Re: Εργασία Α - Απορίες
Post by: Maverick on December 01, 2006, 02:58:33 am
Αυτη η εντολη ειναι που ριχνει τον τοιχο???
rooms[j].walls[Room.NORTH] = (int)(10*Math.random())%4;


Title: Re: Εργασία Α - Απορίες
Post by: BlackAr on December 01, 2006, 05:39:40 am
η εντολή είναι rooms[j].walls[Room.North] = 1;
και το Room.North( ή West,South,East) είναι οι ακέραιεσ τιμές 0-3 σύμφωνα με τη κλάση Room. Για να πέσει ένας τοίχος πρέπει να τον ρίξεις και από τις δύο μεριές.


Title: Re: Εργασία Α - Απορίες
Post by: Maverick on December 01, 2006, 13:45:38 pm
Ναι σωστα!!! :D Αλλα γιατι να το ριξω και απο τις 2 πλευρες???


Title: Re: Εργασία Α - Απορίες
Post by: Maverick on December 01, 2006, 14:08:14 pm
NAI EXEIS DIKIO


Title: Re: Εργασία Α - Απορίες
Post by: Optima on December 01, 2006, 18:36:08 pm
ρε παιδιά η δήλωση public Room[] [] createLabyrinth(), τη στιγμή που το room είναι μια κλάση, και το rooms[] [] ένας πίνακας - αντικείμενό του ( σωστά δε τα λέω;) τί ακριβώς εκφράζει;


Title: Re: Εργασία Α - Απορίες
Post by: fpsom on December 01, 2006, 18:42:19 pm
Η δήλωση public Room[][] createLabyrinth() εκφράζει μια μέθοδο-μέλος της κλάσης LabyrinthCreator, η οποία έχει ως όρισμα εξόδου (με άλλα λόγια, επιστρέφει) ένα δισδιάστατο πίνακα που αποτελείται από αντικείμενο τύπου Room.

Το rooms[][] είναι μια μεταβλητή της κλάσης (και είναι ένας δισδιάστατος πίνακας με στοιχεία αντικείμενα τύπου Room), η οποία αρχικοποιείται μέσα στη μέθοδο και είναι και αυτή η οποία τελικά θα επιστραφεί από τη μέθοδο.


Title: Re: Εργασία Α - Απορίες
Post by: Optima on December 01, 2006, 18:56:17 pm
σωστά...μπερδεύτηκα..

i'm not anti-JAVA u know...JAVA is anti - me.... :P


Title: Re: Εργασία Α - Απορίες
Post by: corina on December 03, 2006, 10:12:39 am
i'm not anti-JAVA u know...JAVA is anti - me.... :P

Ατάκα....!!!


Title: Re: Εργασία Α - Απορίες
Post by: anonymous-root on December 03, 2006, 11:29:24 am
Μπορεί κανείς να βοηθήσει στο πως θα κινούμαστε τυχαία στα κελιά;

Έχω φτιάξει στο μυαλό μου τον τρόπο αλλά κολλάω στην υλοποίηση.  :(


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on December 03, 2006, 11:56:48 am
Έγώ πάντως έχω ένα άλλο πρόβλημα. Στη συνάρτησή μου χρησιμοποιώ νέες μεταβλητές, οι οποίες φιλοδοξώ να είναι τοπικές, δηλαδή μόνο της μεθόδου. Ό,τι και αν έχω κάνει, δεν τις αναγνωρίζει με καμία Παναγία!!!!
Μου βγάζει ένα μήνυμα ότι ο μόνος τύπος μεταβλητής που επιτρέπεται είναι "final" ή κάτι τέτοιο...Δοκίμασα να τις βάλω και final και πάλι τίποτα...

Κορίνα, αυτό το λάθος μου το έβγαζε κι εμένα και μόνο αφού μου έσπασαν τα νεύρα ανακάλυψα ότι έφταιγε μια αγκύλη που είχα βάλει αντί για παρένθεση αρκετά πιο πάνω στο πρόγραμμα.  ^banghead^  Κοίτα μήπως οφείλεται σε κάτι τέτοιο, γιατί φυσιολογικά δεν νομίζω να είναι λάθος αυτό που έκανες...  :)
Πες μας λίγο λεπτομέρειες για το πού ήταν το λάθος μήπως βοηθήσεις γιατί εδώ έχει μουλαρώσει ^banghead^


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on December 03, 2006, 11:59:23 am
@anonymous: Θα φτιάξεις ένα αντικείμενο Random και θα πάρεις τη μέθοδο NewInt(4) για να σου βγάλει έναν από τους αριθμούς 0, 1, 2, 3. Μετά από το κορυφαίο δωμάτιο της στοίβας θα επιλέγεις ανάλογα με το αποτέλεσμα. Αυτό μέχρι να γεμίσει η στοίβα.


Title: Re: Εργασία Α - Απορίες
Post by: fpsom on December 03, 2006, 12:50:22 pm
Εγώ πάντως θα πρότεινα να χρησιμοποιήσετε την Math.random() αντί της κλάσης Random με χρήση της μεθόδου nextInt(). Ο λόγος είναι ότι η δεύτερη χρησιμοποιεί πάντα την ίδια ακολουθία ψευδοτυχαίων αριθμών (η οποία εξαρτάται από το seed που θα δοθεί κατά την δημιουργία του αντικειμένου της κλάσης Random).

Με απλά λόγια: η Math.random() σας δίνει ένα τυχαίο δεκαδικό στο διάστημα [0, 1). Επομένως, η k*Math.random() θα σας δώσει ένα δεκαδικό στο διάστημα [0, k). Και αν πάρετε το ακέραιο μέρος, δηλαδή εάν κάνετε (int)(k*Math.random()) θα πάρετε έναν τυχαίο ακέραιο μεταξύ 0 και k-1.

Όσο για το πρόβλημα με τα άγκιστρα που είδα λίγο πιο πάνω: εάν (κατά λάθος) βάλετε αντί για παρένθεση άγκιστρο, τότε η Java θα θεωρήσει ότι εκεί που μπήκε το άγκιστρο τελειώνει κάποιο μπλοκ εντολών (είτε αυτό είναι συνάρτηση ή κλάση), και επομένως θα σας βγάλει διάφορα περίεργα μηνύματα λάθους για τις εντολές που ακολουθούν (πχ, εάν ορίσετε μια μεταβλητη int x = 10; θα σας πει οτι δεν μπορείτε να ορίσετε κάτι τέτοιο, εκτός εάν την ορίσετε final). Κτλ κτλ κτλ...


Title: Re: Εργασία Α - Απορίες
Post by: nikmilan on December 03, 2006, 13:47:49 pm
Υπάρχει η δυνατότητα να γράψουμε μέσα σε μία κλάση μια άλλη βοηθητική κλάση η οποία να δέχεται τιμές (π.χ. rows, cols) από την βασική κλάση?


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on December 03, 2006, 13:52:59 pm
Γιατί να θέλεις να βάλεις τη μια μέσα στην άλλη; Κάνε την ξεχωριστά.


Title: Re: Εργασία Α - Απορίες
Post by: MIMIRU on December 03, 2006, 13:58:17 pm
Καλημέρα...
  θελω την βοήθεια όποιοιυ κατέχει  Java...
Εχω το παρακάτω πρόγραμμα και θέλω να χρησιμοποιήσω το break ώστε να πάω το flow control στην γραμμή 10  :
   search1:   if (συνθήκη){
                  while(συνθήκη){ 
                εντολές
               if(συνθήκη){
             εντολές
                                 breαk search1;}
                    else if(συνθήκη){
                  εντολές
                  break search1;}}
     10               ζητούμενη εντολή
                                    }

  1ο Πρόβλημα: δεν μπορώ να βάλω label δίπλα σε else
  2ο Πρόβλημα :Βγάζει μήνυμα ότι στη ζητούμενη εντολή(μια μεταβλητή που γίνεται return παρακάτω) :
                             The local variable m may not have been initialized   

 Μπορεί κάποιος να βοηθήσει....


Title: Re: Εργασία Α - Απορίες
Post by: OtiNaNAi on December 03, 2006, 14:31:29 pm
Που ακριβως ειναι το εργαστηριο ΕΠΥ οπου παραδιδουμε την γραπτη αναφορα???

Και το zip το κανουμε upload στο eTHMMY??


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on December 03, 2006, 14:33:11 pm
@MIMIRU:

Καταρχάς μια συμβουλή: Μην κατακρεουργείς το πρόγραμμα με παραπομπές... κάνε τα με μπλοκ εντολών ωραία και καλά...

1. Προφανώς δε μπορεί να δεχτεί label δίπλα σε else, γιατί αν δεν υπάρχει if πιο πριν δεν έχει νόημα το else.
2. Το μήνυμα λάθους σημαίνει το εξής: Αν τον βάλεις να ελέγχει πχ τη συνθήκη (a==0) και το a δεν έχει πάρει ακόμα τιμή, δε θα ξέρει αν πρέπει να την πάρει σωστή ή λάθος. Βέβαια ο eclipse μπορεί να λέει και μπούρδες, γιατί εσύ μπορεί να έχεις φτιάξει έτσι το πρόγραμμα έτσι που το a σε εκείνο το σημείο να έχει πάρει σίγουρα τιμή, αλλά για να μη σου βγάζει το μήνυμα, εκεί που δηλώνεις το a (ή πιο μετά, όπου σε βολεύει) δώσε του μια τιμή όποια να'ναι.


Title: Re: Εργασία Α - Απορίες
Post by: road_runner on December 03, 2006, 14:52:07 pm
Παιιδιά λίγο βοήθεια...Μπορεί να μου εξηγήσεις κανείς τι είναι αυτά τα μηνύματα που μου βγάζει...?

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 2
   at gr.auth.ee.dsproject.labyrinth.Stack.push(Stack.java:31)
   at gr.auth.ee.dsproject.labyrinth.LabyrinthCreator.c reateLabyrinth(LabyrinthCreator.java:71)
   at gr.auth.ee.dsproject.labyrinth.Labyrinth.generate Labyrinth(Labyrinth.java:103)
   at gr.auth.ee.dsproject.labyrinth.Labyrinth.<init>(Labyrinth.java:154)
   at gr.auth.ee.dsproject.labyrinth.MainPlatform$2.actionPerformed(MainPlatform.java:57)
   at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
   at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.fireActionPerforme d(Unknown Source)
   at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
   at javax.swing.plaf.basic.BasicButtonListener.mouseR eleased(Unknown Source)
   at java.awt.Component.processMouseEvent(Unknown Source)
   at javax.swing.JComponent.processMouseEvent(Unknown Source)
   at java.awt.Component.processEvent(Unknown Source)
   at java.awt.Container.processEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Window.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForHiera rchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarc hy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)



Ευχαριστώ πολύ....


Title: Re: Εργασία Α - Απορίες
Post by: OtiNaNAi on December 03, 2006, 15:00:27 pm
@road_runner

http://www.thmmy.gr/smf/index.php?topic=10021.msg175110#msg175110


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on December 03, 2006, 15:29:05 pm
Roadrunner ξέρω τι έκανες, κι εγώ την πάτησα στην αρχή... οι πίνακες αρχίζουν από το 0! Έτσι όταν έχεις πίνακα με δύο θέσεις, αυτές είναι η [ 0 ] και η [1]. Δεν υπάρχει [2]!


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on December 03, 2006, 15:34:18 pm
Το πρόβλημα με το private που δε μπαίνει παραμένει... αν δεν είναι τα άγκιστρα, τι άλλο μπορεί να είναι; Συμβαίνει στις μεθόδους όλων των κλάσεων! :o

Ο λαβύρινθος μέσα σε πόση ώρα πρέπει να φτιάχνεται;


Title: Re: Εργασία Α - Απορίες
Post by: OtiNaNAi on December 03, 2006, 15:41:40 pm
Ο λαβυρινθος πρεπει να φτιαχνεται αμεσως.

αν αργει υπερβολικα εχεις καποιο λαθος στην υλοποιηση.


Title: Re: Εργασία Α - Απορίες
Post by: road_runner on December 03, 2006, 16:05:03 pm
Nessa το κατάλαβα αυτό και το άλλαξα!Αλλά τώρα μου βγάζει το ίδιο με τον αριθμό 20!!!!Μάλλον έχει πρόβλημα με τις γραμμές...Αλλα τι????    >:( >:( >:(


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on December 03, 2006, 16:34:12 pm
Το ίδιο κάνεις βρε! 19 πρέπει να βάλεις! :P


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on December 03, 2006, 16:43:57 pm
Βασικά Οτινάναι νομίζω ότι είναι αναμενόμενο να αργεί λίγο... πες ότι έχει διατρέξει μια ολόκληρη στήλη, αποκλείοντας ένα κομμάτι του λαβυρίνθου. Μέχρι να το "καταλάβει" και να γυρίσει πίσω, θα πρέπει να δοκιμάσει όλους τους δυνατούς λαβύρινθους στο κομμάτι που βρίσκεται αποκλεισμένος... δε θα του πάρει χρόνο αυτό;

Αλλάζοντας τα νούμερα στο LabyrinthUtilities (έβαλα 5 γραμμές και 10 στήλες να δω τι θα γίνει) ανακάλυψα ότι κάποιες φορές τον φτιάχνει αμέσως και κάποιες αργεί τόσο πολύ που το κλείνω... δε νομίζω ότι είναι δυνατόν να κολλήσει για πάντα αφού οι διαδρομές που καταλήγουν σε αδιέξοδο αποκλείονται (λογικά έχω αποκλείσει την περίπτωση να ακολουθεί συνέχεια την ίδια) :-\


Title: Re: Εργασία Α - Απορίες
Post by: nikmilan on December 03, 2006, 16:56:31 pm
rooms[j].walls[Room.NORTH] = (int)(10*Math.random())%4;

ποια η χρησιμότητα της γραμμής αυτής;
γιατι βάζουμε το 10 στην Μath.Random;


Title: Re: Εργασία Α - Απορίες
Post by: OtiNaNAi on December 03, 2006, 17:18:25 pm
@nikmilan

με αυτο τον τροπο ο βορειος τοιχος του δωματιου j παιρνει τυχαια μια απο τις τιμες 0,1,2,3.
Αν ειναι 0 σημαινει πως ο τοιχος μενει ορθιος.

@Nessa

Βασικα ειχα το ιδιο προβλημα στην αρχη.Οταν το εκτελουσα π.χ. για 10 δωματια δουλευε καλα, ενω οταν το εκτελουσα για ολα τα δωματια κολουσε!!
ΑΝ θυμαμαι καλα το προβλημα παρουσιαζοταν  οταν εφτανα σε αδιεξοδο και επρεπε να επιστρεψω στο προηγουμενο δωματιο.Ειχα λαθος στην υλοποιηση κ επεστρεφε νουμερο εκτος οριων του πινακα με τα δωματια.
Τελικα απλα προσθεσα δυο μεταβλητες (για τις συντεταγμενες καθε δωματιου) στη κλαση room κ δουλεψε κανονικα


Title: Re: Εργασία Α - Απορίες
Post by: nikmilan on December 03, 2006, 17:33:24 pm
@nikmilan

με αυτο τον τροπο ο βορειος τοιχος του δωματιου j παιρνει τυχαια μια απο τις τιμες 0,1,2,3.
Αν ειναι 0 σημαινει πως ο τοιχος μενει ορθιος.


Γιατί αν είναι 0 είναι ο τοίχος όρθιος? Επείδή απο το Room.java έχω στα σχόλια ότι
 //if walls == 0 then a wall EXISTS ?

και αυτό τι σχεση έχει με τις τιμες 0,1,2,3?

Εφόσον έχω :

  final static public int WEST = 0;
  final static public int SOUTH = 1;
  final static public int EAST = 2;
  final static public int NORTH = 3;

Στην ουσία μπερδευτηκα με το 0 του WEST και το 0 που σημαινει πως ο τοιχος μενει ορθιος... :-\


Title: Re: Εργασία Α - Απορίες
Post by: johnny_d on December 03, 2006, 17:40:25 pm
ΑΝ θυμαμαι καλα το προβλημα παρουσιαζοταν  οταν εφτανα σε αδιεξοδο και επρεπε να επιστρεψω στο προηγουμενο δωματιο.Ειχα λαθος στην υλοποιηση κ επεστρεφε νουμερο εκτος οριων του πινακα με τα δωματια.
Τελικα απλα προσθεσα δυο μεταβλητες (για τις συντεταγμενες καθε δωματιου) στη κλαση room κ δουλεψε κανονικα

Eπειδή μάλλον έχω το ίδιο πρόβλημα,μου εξηγείς λίγο καλύτερα τι έκανες...? :-\ :-\ :-\


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on December 03, 2006, 17:45:09 pm
Αν σου επέστρεφε νούμερο εκτός ορίων του πίνακα δε θα έπρεπε να σου βγάλει μήνυμα λάθους; :???:


Title: Re: Εργασία Α - Απορίες
Post by: AnnieHall on December 03, 2006, 18:17:46 pm
Βασικά εγώ όταν το τρέχω δεν αργεί καθόλου, εμφανίζει αμέσως το λαβύρινθο.
Τελικά το εργαστήριο ΕΠΥ που είναι ; και το αρχείο zip θα πρέπει να περιέχει όλο το package??


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on December 03, 2006, 18:39:14 pm
Βάλ'το όλο για να'σαι μέσα.


Title: Re: Εργασία Α - Απορίες
Post by: MIMIRU on December 03, 2006, 18:42:01 pm
Αν κατάλαβα καλά από την εκφώνηση του project χρειάζεται σίγουρα την ότι άλλες καινούργιες κλάσεις έκανες.
Άλλα αυτό μπορεί ούτως ή άλλως να το ρωτήσουμε στο έργαστήριο ΕΠΥ αύριο.Αν μάθουμε που είναι βέβαια......
κ Ψωμόπουλε  ΣΟΣ!!


Title: Re: Εργασία Α - Απορίες
Post by: johnny_d on December 03, 2006, 18:44:55 pm
Δεν μπορώ να καταλάβω τι φταίει οταν βγάζει αυτό το σφάλμα.... :-\ :-\
Ειναι κατι με τον πίνακα μάλλον,αλλά τι πρέπει να αλλάξω??  :???:


Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
   at gr.auth.ee.dsproject.labyrinth.StackX.pop(StackX.java:20)
   at gr.auth.ee.dsproject.labyrinth.LabyrinthCreator.c reateLabyrinth(LabyrinthCreator.java:262)
   at gr.auth.ee.dsproject.labyrinth.Labyrinth.generate Labyrinth(Labyrinth.java:103)
   at gr.auth.ee.dsproject.labyrinth.Labyrinth.<init>(Labyrinth.java:154)
   at gr.auth.ee.dsproject.labyrinth.MainPlatform$2.actionPerformed(MainPlatform.java:57)
   at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
   at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.fireActionPerforme d(Unknown Source)
   at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
   at javax.swing.plaf.basic.BasicButtonListener.mouseR eleased(Unknown Source)
   at java.awt.Component.processMouseEvent(Unknown Source)
   at javax.swing.JComponent.processMouseEvent(Unknown Source)
   at java.awt.Component.processEvent(Unknown Source)
   at java.awt.Container.processEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Window.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForHiera rchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarc hy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on December 03, 2006, 18:56:13 pm
Κάνεις pop σε κάποια φάση που δεν πρέπει και αδειάζεις τη στοίβα.


Title: Re: Εργασία Α - Απορίες
Post by: OtiNaNAi on December 03, 2006, 19:06:54 pm
@Nessα

Για να καταλαβω τι εφταιγε ειχα βαλει το προγραμμα να μου εκτυπωνει καθε φορα τις συντεταγμενες του δωματιου
κ παρατηρησα οτι το προγραμμα εκτελουνταν μεχρι ενα σημειο κ μετα κολλουσε.


Αυτο που εκανα ειναι το εξης

Εβαλα στη Room 2 private μτβλητες current_i,current_j καθως κ 2 public συναρτησεις για να τις τροποποιω κ 2 public να τις διαβαζω απο τις αλλες κλασεις.
Ετσι οταν επιστρεφω στο προηγουμενο δωματιο κανω pop και μετα θετω τα i,j ισα με τα current_i,current_j του δωματιου το οποιο βρισκεται πλεον στην κορυφη της στοιβας...

Ελπιζω να βοηθησα :) :)


Title: Re: Εργασία Α - Απορίες
Post by: fpsom on December 03, 2006, 19:41:53 pm
Λοιπόν για να εξηγούμαστε:

στο zip που θα ανεβάσετε στο eTHMMY πρέπει να υπάρχουν όλες οι κλάσεις που αλλάξατε ή δημιουργήσατε. Για να μην υπάρχουν προβλήματα όμως, καλύτερα να βάλετε μέσα όλο το project. Επίσης, επίσης για να μην υπάρξουν προβλήματα, καλό θα ήταν να βάλετε μέσα και την αναφορά (doc, pdf).

Την ίδια την αναφορά, εκτυπωμένη, θα πρέπει να την φέρετε στο εργαστήριο ΕΠΥ. Αυτό είναι στον 3ο όροφο του κτιρίου Γ', δηλαδή στον όροφο πάνω από τη βιβλιοθήκη του ΤΗΜΜΥ. Μόνο μία πόρτα υπάρχει εκεί, οπότε απλά ρωτήστε πού να αφήσετε τις αναφορές για τις Δομές Δεδομένων.


Title: Re: Εργασία Α - Απορίες
Post by: alekos on December 03, 2006, 20:10:12 pm
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1
   at gr.auth.ee.dsproject.labyrinth.LabyrinthCreator.c reateLabyrinth(LabyrinthCreator.java:94)
   at gr.auth.ee.dsproject.labyrinth.Labyrinth.generate Labyrinth(Labyrinth.java:103)
   at gr.auth.ee.dsproject.labyrinth.Labyrinth.<init>(Labyrinth.java:154)
   at gr.auth.ee.dsproject.labyrinth.MainPlatform$2.actionPerformed(MainPlatform.java:57)
   at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
   at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.fireActionPerforme d(Unknown Source)
   at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
   at javax.swing.plaf.basic.BasicButtonListener.mouseR eleased(Unknown Source)
   at java.awt.Component.processMouseEvent(Unknown Source)
   at javax.swing.JComponent.processMouseEvent(Unknown Source)
   at java.awt.Component.processEvent(Unknown Source)
   at java.awt.Container.processEvent(Unknown Source)
   at java.awt.Component.dispatchEventImpl(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
   at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
   at java.awt.Container.dispatchEventImpl(Unknown Source)
   at java.awt.Window.dispatchEventImpl(Unknown Source)
   at java.awt.Component.dispatchEvent(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForHiera rchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarc hy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)


HELP HELP ^beg^ ^beg^ ^beg^


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on December 03, 2006, 20:32:19 pm
@Nessα

Για να καταλαβω τι εφταιγε ειχα βαλει το προγραμμα να μου εκτυπωνει καθε φορα τις συντεταγμενες του δωματιου
κ παρατηρησα οτι το προγραμμα εκτελουνταν μεχρι ενα σημειο κ μετα κολλουσε.


Αυτο που εκανα ειναι το εξης

Εβαλα στη Room 2 private μτβλητες current_i,current_j καθως κ 2 public συναρτησεις για να τις τροποποιω κ 2 public να τις διαβαζω απο τις αλλες κλασεις.
Ετσι οταν επιστρεφω στο προηγουμενο δωματιο κανω pop και μετα θετω τα i,j ισα με τα current_i,current_j του δωματιου το οποιο βρισκεται πλεον στην κορυφη της στοιβας...

Ελπιζω να βοηθησα :) :)
Μπα, τελικά δεν έχει σχέση με το πρόβλημα στο δικό μου πρόγραμμα... :(

Δε μπορώ να καταλάβω γιατί μερικές φορές δεν τελειώνει, με τον τρόπο που το κάνω λογικά δε μπορεί να ακολουθήσει την ίδια διαδρομή δύο φορές... πηγαίνει σε ένα δωμάτιο Α - βλέπει ότι μετά είναι αδιέξοδο - χτίζει όλους τους τοίχους του Α - πηγαίνει στο προηγούμενο (δηλ. πετάει το τελευταίο από τη στοίβα) - βλέπει ότι προς τη μεριά του Α υπάρχει γκρεμισμένος τοίχος (δεν τον ξαναέχτισε από αυτήν τη μεριά) και δεν πηγαίνει - αδιέξοδο και ξανά τα ίδια... κάνω κάτι λάθος; :(


Title: Re: Εργασία Α - Απορίες
Post by: giorgakis on December 03, 2006, 21:00:40 pm
στο θεωρητικο κομματι τι γραφουμε?


Title: Re: Εργασία Α - Απορίες
Post by: alekos on December 03, 2006, 21:18:22 pm
Πόσεσ σειρες κώδικα σας πήρε????????


Ενημερςτικά να ξέρω αν βαδίζω σωστα.


Title: Re: Εργασία Α - Απορίες
Post by: AnnieHall on December 03, 2006, 22:14:10 pm
Βασικά εγώ έχω την απορία πως αποθηκεύσατε τις συντεταγμένες i,j κάθε δωματίου στη στοίβα. Γιατί εγώ έκανα μία μέθοδο η οποία κωδικοποιεί κάπως, τις συντεταγμένες σε ένα αριθμό. Και μία αντίστοιχη μέθοδο για την αποκωδικοποίηση. Φαντάζομαι ότι θα υπάρχει απλούστερος τρόπος.


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on December 03, 2006, 22:18:25 pm
Ναι, υπάρχει... να υλοποιήσεις τη στοίβα με έναν πίνακα [max][2]

 :P


Title: Re: Εργασία Α - Απορίες
Post by: AnnieHall on December 03, 2006, 22:22:31 pm
Χμμ, βασικά δεν πρόκειται να το αλλάξω τώρα, αλλα πως μπορεί να υλοποιηθεί αυτό;
Γιατί στην αρχή μου είχε έρθει η ιδέα του πίνακα αλλά δεν κατάφερα να το κάνω. :-\


Title: Re: Εργασία Α - Απορίες
Post by: Krono on December 03, 2006, 22:28:56 pm
Ποπο, κίνηση που έχει πέσει! Το topic έχει πάρει φωτιά και καίει!


Title: Re: Εργασία Α - Απορίες
Post by: lefos on December 03, 2006, 22:54:46 pm
Να ρωτήσω και εγώ κάτι.Όταν πέφτω σε αδιέξοδο και πάει να κάνει pop το πρόγραμμα μου δεν λειτουργεί σωστά και βγάζει τα λάθη που αναφέρονται παραπάνω.Υποθέτω ότι φταίει το γεγονός ότι δεν έχουν τις σωστές τιμές τα i και j όπως λέτε και εσείς.Αν κάποιος έχει βρει μια λύση, αν θέλει ας μου στείλει παρακαλώ  ένα pm εξηγώντας μου περίπου τι μεθόδους χρησιμοποιήσε και τι έκαναν αυτές μήπως και μπορέσω να κάνω και το δικό μου πρόγραμμα να λειτουργήσει.
Ευχαριστώ πολύ.


Title: Re: Εργασία Α - Απορίες
Post by: alekos on December 04, 2006, 02:00:57 am
  μπορεί κάποιοσ να μου στήλει ένα print screan από ένα τέλειο λαβυρινθο??? ^beg^


Title: Re: Εργασία Α - Απορίες
Post by: Maverick on December 04, 2006, 02:42:33 am
Screenshot... :D


Title: Re: Εργασία Α - Απορίες
Post by: alekos on December 04, 2006, 02:46:15 am
Εμένα πάλι δεν μου προσπερνα όλα τα στοιχεια παντως thanks


Title: Re: Εργασία Α - Απορίες
Post by: johnny_d on December 04, 2006, 03:03:20 am
Kάτι παίζει με τον μετρήτη που έχεις βάλει για τα κελιά και έτσι δεν ολοκληρώνει όλο τον πίνακα...

Πρόσεξε ξανά τα break κσι τα continue που τυχόν έχεις κάνει... ;) ;)


Title: Re: Εργασία Α - Απορίες
Post by: alekos on December 04, 2006, 04:36:38 am
  Στις 3:30 δηλώνω οτι ο γ@@@@@@ λαβιρυνθος μου βγήκε.

Καθόμουν και χτυπιόμουν 4 ώρεσ επειδή ένας γ@@@@@@ δεικτης ηταν σε λάθος θέση.

Ηθικο δειδαγμα: προσοχή στους γ@@@@ δεικτες

Συγνώμη για τα @@@@@@


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on December 04, 2006, 11:51:36 am
Φαίνεται ότι σε κάποιες περιπτώσεις κολλάει σε loop (πάει να ακολουθήσει συνεχώς την ίδια αδιέξοδη διαδρομή). Πώς θα μπορούσε να γίνει αυτό; Κάθε φορά που εξετάζει μια πιθανή κατεύθυνση, ελέγχει τρεις συνθήκες: α) αν εκεί υπάρχει δωμάτιο, β) αν το δωμάτιο έχει τους τοίχους άθικτους και γ) αν υπάρχει ο τοίχος του τωρινού δωματίου προς την κατεύθυνση εκείνη (άρα έχουμε πάει εκεί και έχουμε ξαναγυρίσει). Αν μία από τις τρεις δεν ισχύει, αυξάνεται κατά ένα η μεταβλητή αποκλεισμού (στο 4 γυρίζουμε πίσω). Υπάρχει κάποιο λάθος στο σκεπτικό μου; :-[


Title: Re: Εργασία Α - Απορίες
Post by: corina on December 04, 2006, 15:31:58 pm
Ναι βρε παιδιά, μία εργασία ανά ομάδα!


Title: Re: Εργασία Α - Απορίες
Post by: Νessa on December 04, 2006, 17:10:52 pm
Βασικά από ό,τι διαπιστώσαμε, προς μεγάλη μου έκπληξη, είναι ότι το πρόγραμμα τελικά δουλεύει! Δεν πέφτει σε loop, κάποια στιγμή βγάζει το ζητούμενο λαβύρινθο, απλά αργεί πάρα πολύ!

Θα ήθελα να ρωτήσω αν θεωρείται σωστή μια τέτοια εργασία και πού θα μπορούσαμε να έχουμε περιττές πράξεις ώστε να ις μειώσουμε.


Title: Re: Εργασία Α - Απορίες
Post by: Appelsinpiken on December 04, 2006, 19:51:07 pm
στο eTHMMY στέλνουμε το αρχείο zip?


Title: Re: Εργασία Α - Απορίες
Post by: AnnieHall on December 04, 2006, 19:53:39 pm
Ναι στο "Εργαστήρια - Εργασίες" μπαίνεις στη ομάδα σου κι έχει υπολοβολή της εργασίας.


Title: Re: Εργασία Α - Απορίες
Post by: christinaki on December 05, 2006, 00:59:35 am
Βέβαια δεν μπορείς να διαγράψεις και να ξαναστείλεις εργασία οπως στη C,οπότε λίγο προσοχή πριν στείλεις