Περιεχόμενα
- Εισαγωγή
- Κανόνες ΠαιχνιδιοÏ
- Σχεδίαση στÏατηγικής με το εÏγαλείο Pacman4All
- ΕντολÎÏ‚ Pacman4All
- ΣυμπεÏιφοÏÎÏ‚
- ΕντολÎÏ‚ χÏήσης bonus
- ΔημιουÏγία Συνθηκών Μετάβασης
- Επεξήγηση σφαλμάτων
- Επεξήγηση Ï€Ïοειδοποιήσεων
- Tips & Tricks
1. Εισαγωγή
Στόχος του παÏόντος είναι η παÏουσίαση του εÏγαλείου σχεδίασης στÏατηγικής για το παιχνίδι Pacman με Ï€Ïαγματικά Ïομπότ, τα οποία δημιουÏγήθηκαν από την ομάδα Ïομποτικής Robotics 4 All και Ï€ÏοπτυχιακοÏÏ‚ φοιτητÎÏ‚ του τμήματος ΗλεκτÏολόγων Μηχανικών και Μηχανικών Υπολογιστών του ΑÏιστοτελείου Πανεπιστημίου Θεσσαλονίκης.
Το εÏγαλείο επιτÏÎπει σε οποιονδήποτε επιθυμεί να παίξει το θÏυλικό παιχνίδι Pacman στη μοντÎÏνα Ïομποτική εκδοχή του, να επικεντÏωθεί στη στÏατηγική του τόσο για το Ïόλο του Pacman όσο και για το Ïόλο του φαντάσματος. Λόγω του Ï„Ïόπου δημιουÏγίας του δεν απαιτοÏνται γνώσεις Ρομποτικής ή Μηχανικής Î›Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï Ï€Î±Ïά μόνο χÏήση λογικής, καθώς η επαλήθευση οÏθότητας των γÏαφικών εφαÏμογών και η μετατÏοπή τους σε εκτελÎσιμο κώδικα είναι αυτόματη. ΑκολοÏθως παÏουσιάζονται οι κανόνες της παÏοÏσας Îκδοσης του παιχνιδιοÏ, η τεκμηÏίωση της γÏαφικής γλώσσας σχεδίασης στÏατηγικής μÎσω παÏαδειγμάτων και ο κατάλογος επεξήγησης σφαλμάτων που εμφανίζονται στον χÏήστη κατά την επαλήθευση οÏθότητας της εφαÏμογής του από το παÏεχόμενο εÏγαλείο. Στο Ï„Îλος του παÏόντος ο αναγνώστης μποÏεί να βÏει χÏήσιμα tips χÏήσης του εÏγαλείου.
2. Κανόνες Παιχνιδιού
Î ÏοκειμÎνου να διεξαχθεί Îνας αγώνας ανάμεσα σε δÏο παίκτες, απαιτείται από τον καθÎνα μία στÏατηγική για τον Pacman και μία για το φάντασμα. Συνεπώς κάθε αγώνας αποτελείται από δÏο γÏÏους, σε κάθε Îναν από τους οποίους οι Ïόλοι των παικτών εναλλάσσονται Ï€ÏοκειμÎνου το παιχνίδι να είναι δίκαιο. Το παιχνίδι διεξάγεται σε μία πίστα όπως η ακολοÏθως απεικονιζόμενη, είτε σε πεÏιβάλλον Ï€Ïοσομοίωσης είτε σε φυσική πίστα, η οποία αποτελείται από Îνα σÏνολο τυχαία διασυνδεδεμÎνων κόμβων.
Σε κάθε γÏÏο του Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï Ï„ÏŒÏƒÎ¿ ο Pacman όσο και το φάντασμα ξεκινοÏν για λόγους δικαιοσÏνης από τον ίδιο κόμβο και Îχουν πάντοτε τον ίδιο Ï€Ïοσανατολισμό (κατεÏθυνση του απεικονιζόμενου μαÏÏου βÎλους). Τόσο ο Pacman όσο και το φάντασμα μποÏοÏν να κάνουν δÏο ειδών απλÎÏ‚ κινήσεις. Αφενός μποÏοÏν να μετακινηθοÏν από Îναν κόμβο σε Îνα γειτονικό, αφετÎÏου μποÏοÏν να κάνουν μια πεÏιστÏοφή στον κόμβο που βÏίσκονται την εκάστοτε στιγμή είτε Ï€Ïος τα αÏιστεÏά είτε Ï€Ïος τα δεξιά. Î ÏοκειμÎνου να μετακινηθεί Îνας παίχτης από Îναν κόμβο σε Îνα γειτονικό, Ï€ÏÎπει οι δÏο κόμβοι να συνδÎονται με μια γÏαμμή και ο Ï€Ïοσανατολισμός του παίχτη (μαÏÏο βÎλος) να δείχνει Ï€Ïος τον επιθυμητό κόμβο.
Σε κάποιους από τους κόμβους της πίστας δÏναται να υπάÏχουν bonus ή πόντοι. ΣυγκεκÏιμÎνα, σε 10 κόμβους της πίστας υπάÏχουν κάÏτες πόντων (χÏωματιστά σÏμβολα με κεÏασάκια) κάθε μία από τις οποίες πεÏιÎχει Îνα σÏνολο από πόντους. Κάποιες κάÏτες πόντων Îχουν 200 πόντους, κάκποιες 300 πόντους και μία 500. Το σÏνολο των πόντων στην πίστα σε κάθε γÏÏο είναι 2400. Πόντους μποÏεί να συλλÎγει μόνο ο Pacman. Î ÏοκειμÎνου ο Pacman να συλλÎξει πόντους, Ï€ÏÎπει να βÏεθεί πάνω σε Îνα κόμβο στον οποίο βÏίσκεται μία κάÏτα πόντων. Κάθε φοÏά που μία κάÏτα πόντων συλλÎγεται από τον Pacman αφαιÏείται από την πίστα και απομÎνει Îνας απλός κόμβος.
Από την άλλη, κάθε bonus, το οποίο απεικονίζεται με μωβ χÏώμα, αντιστοιχεί σε Îνα bonus πόντο. Οι bonus πόντοι συλλÎγονται όπως και οι πόντοι, καθώς Îνα παίκτης μετακινείται πάνω στον κόμβο που υπάÏχει bonus πόντος, ενώ και πάλι μετά τη συλλογή του ο κόμβος μετατÏÎπεται σε απλό κόμβο. Καθώς κάθε παίκτης συλλÎγει bonus πόντους, μποÏεί να τους χÏησιμοποιήσει κατά το δοκοÏν και ανά πάσα στιγμή Ï€ÏοκειμÎνου να επωφεληθεί στο πλαίσιο του εξελισσόμενου γÏÏου με Îναν από τους ακόλουθους Ï„Ïόπους:
- Ακινητοποίηση αντιπάλου: εφόσον Îνας παίκτης (είτε ο Pacman είτε το φάντασμα) χÏησιμοποιήσει bonus πόντους Ï€ÏοκειμÎνου να ακινητοποιήσει τον αντίπαλο, οι πόντοι που χÏησιμοποίησε αφαιÏοÏνται από τους διαθÎσιμους bonus πόντους του και ο αντίπαλος παÏαμÎνει ακινητοποιημÎνος για Îνα χÏονικό διάστημα. Το χÏονικό διάστημα ακινητοποίησης του είναι ανάλογο του αÏÎ¹Î¸Î¼Î¿Ï Ï„Ï‰Î½ χÏησιμοποιοÏμενων bonus πόντων. Με τη χÏήση ενός πόντου bonus ο αντίπαλος ακινητοποιείται για χÏονικό διάστημα που αντιστοιχεί πεÏίπου σε 4 απλÎÏ‚ κινήσεις (μετακίνηση από κόμβο σε κόμβο ή πεÏιστÏοφή στον κόμβο). Με χÏήση κάθε επιπλÎον bonus πόντου αυξάνεται αντίστοιχα το διάστημα ακινητοποίησης ώστε να αντιστοιχεί σε 8 απλÎÏ‚ κινήσεις, 12, 16 κ.Ï„.λ. Ο μÎγιστος αÏιθμός bonus πόντων που μποÏεί να χÏησιμοποιηθεί σε μία κίνηση παίκτη, είναι 5 και αντιστοιχοÏν σε 20 απλÎÏ‚ κινήσεις. Πιθανώς εναπομείναντες bonus πόντοι δÏνανται να χÏησιμοποιηθοÏν σε επόμενη κίνηση του παίκτη.
- Πολλαπλασιασμό πόντων: ο Pacman μποÏεί να αξιοποιήσει bonus πόντους που Îχει συλλÎξει για να πολλαπλασιάσει τους πόντους που Îχει μια δεδομÎνη χÏονική στιγμή. Σε μία κίνηση μποÏοÏν να χÏησιμοποιηθοÏν 2, 3, 4 ή 5 bonus πόντοι για τον ανάλογο πολλαπλασιαμό πόντων. Για παÏάδειγμα εάν μια δεδομÎνη χÏονική στιγμή ο Pacman Îχει 1000 πόντους και χÏησιμοποιήσει 2 bonus πόντους για πολλαπλασιασμό, θα Îχει 2000 πόντους, για 3 θα Îχει 3000 πόντους κ.Ï„.λ. Πιθανώς εναπομείναντες bonus πόντοι δÏνανται να χÏησιμοποιηθοÏν σε επόμενη κίνηση του παίκτη.
- ΤεÏματισμό παιχνιδιοÏ: εφόσον Îνας παίκτης (είτε ο Pacman είτε το φάντασμα) Îχει μαζÎψει τουλάχιστον 6 bonus πόντους, μποÏεί να Ï€ÏοκαλÎσει τον άμεσο τεÏματισμό του παιχνιδιοÏ. Είτε Ï€ÏοκαλÎσει τον τεÏματισμό του Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï Î¿ Pacman είτε το φάντασμα το αποτÎλεσμα είναι το ίδιο. Ο γÏÏος τελειώνει και ο Pacman διατηÏεί όσους πόντους είχε συλλÎξει ενώ το φάντασμα λαμβάνει το 25% των πόντων που θα λάμβανε αν Îπιανε τον Pacman εκείνη τη στιγμή (βλÎπε συνθήκες τεÏματισμοÏ).
Συνθήκες ΤεÏÎ¼Î±Ï„Î¹ÏƒÎ¼Î¿Ï ÎµÎ½ÏŒÏ‚ γÏÏου
Î ÏοκειμÎνου να ολοκληÏωθεί Îνας γÏÏος παιχνιδιοÏ, Ï€ÏÎπει να συμβεί Îνα από τα ακόλουθα:
- Συλλογή όλων των πόντων: αν ο Pacman συλλÎξει όλους τους διαθÎσιμους πόντους της πίστας, οι οποίοι ανÎÏχονται στους 2400, τότε ο γÏÏος τεÏματίζεται με το Pacman να λαμβάνει όλους τους πόντους, ενώ το φάντασμα 0. Εφόσον ο Pacman χÏησιμοποίησε κατά τη διάÏκεια του Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï Ï„Î· δυνατότητα Ï€Î¿Î»Î»Î±Ï€Î»Î±ÏƒÎ¹Î±ÏƒÎ¼Î¿Ï Ï€ÏŒÎ½Ï„Ï‰Î½, Ï€Ïοφανώς οι πόντοι του στο Ï„Îλος του γÏÏου θα είναι πεÏισσότεÏοι από 2400.
- Το φάντασμα πιάνει τον Pacman: αν το φάντασμα βÏεθεί στον ίδιο κόμβο με τον Pacman, θεωÏείται πως τον Îπιασε. Σε αυτή την πεÏίπτωση ο γÏÏος τεÏματίζεται άμεσα, ο Pacman διατηÏεί όσους πόντους μάζεψε μÎχÏι εκείνη τη στιγμή και το φάντασμα λαμβάνει τόσους πόντους ανάλογα με το πόσο γÏήγοÏα Îπιασε τον Pacman. Οι μÎγιστοι πόντοι που μποÏεί να λάβει το φάντασμα με αυτόν τον Ï„Ïόπο είναι 2400 (αν Îπιανε τον Pacman στιγμιαία κατά την εκκίνηση του γÏÏου). Συνεπώς, αν το φάντασμα πιάσει τον Pacman ενώ απομÎνει ο μισός χÏόνος για τη λήξη του γÏÏου, θα πάÏει 1200 πόντους, αν απομÎνει το 75% του χÏόνου θα πάÏει 1800 πόντους κ.Ï„.λ.
- Λήξη χÏόνου γÏÏου: Κάθε γÏÏος Îχει μία μÎγιστη χÏονική διάÏκεια η οποία οÏίζεται στα δÏο λεπτά. Εφόσον παÏÎλθουν τα δÏο λεπτά και δεν Îχει Ï€ÏοκÏψει Ï€ÏοηγουμÎνως κάποια από τις Ï€ÏοαναφεÏθείσες συνθήκες τεÏματισμοÏ, ο γÏÏος ολοκληÏώνεται. Στην πεÏίπτωση αυτή, ο Pacman διατηÏεί όσους πόντους είχε συλλÎξει και το φάντασμα δε λαμβάνει πόντους.
Îικητής αγώνα
Εφόσον διεξαχθοÏν και οι δÏο γÏÏοι, σε κάθε Îναν από τους οποίους κάθε παίκτης Îπαιξε εναλλάξ ως Pacman και ως φάντασμα, οι πόντοι που Îλαβε κάθε παίκτης σε κάθε γÏÏο αθÏοίζονται. Όποιος παίκτης συλλÎξει τους πιο πολλοÏÏ‚ πόντους κεÏδίζει τον αγώνα. Σε πεÏίπτωση ισοπαλίας μποÏεί να διεξαχθεί νÎος αγώνας με διαφοÏετικÎÏ‚ στÏατηγικÎÏ‚ (ή και τις ίδιες εφόσον το επιλÎξει ο διαιτητής του αγώνα) για την ανάδειξη του νικητή.
3. Σχεδίαση στρατηγικής με το εργαλείο Pacman4All
3.1 Χρησιμοποιώντας το εργαλείο Pacman4All
Με το εÏγαλείο Pacman4All είναι εφικτή η σχεδίαση στÏατηγικών για τον Pacman και το φάντασμα δίχως να απαιτοÏνται γνώσεις Ïομποτικής, μηχανικής Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï Î®/και Ï€ÏογÏαμματισμοÏ. Στην παÏακάτω εικόνα απεικονίζεται η γÏαφική διεπαφή μÎσω της οποίας οι παίκτες μποÏοÏν να καταστÏώσουν τις στÏατηγικÎÏ‚ τους. Η γÏαφική διεπαφή αποτελείται από Ï„ÎσσεÏις πεÏιοχÎÏ‚ οι οποίες επεξηγοÏνται ακολοÏθως.
- Λίστα στÏατηγικών: Στην πεÏιοχή εντός του κόκκινου πλαισίου φαίνεται η λίστα με τους φακÎλους στÏατηγικών του παίκτη. Σε κάθε φάκελο μποÏεί να υπάÏχει μόνο μία στÏατηγική και μποÏεί να είναι είτε για το φάντασμα είτε για τον Pacman.
- Καμβάς σχεδίασης στÏατηγικής: Ο καμβάς σχεδίασης στÏατηγικής βÏίσκεται εντός της μπλε πεÏιοχής. Στον καμβά μποÏεί να υπάÏχουν πάνω από μία ταμπÎλες (tabs), μία για κάθε στÏατηγική.
- ΕντολÎÏ‚ σχεδίασης στÏατηγικής: Στην Ï€Ïάσινη πεÏιοχή βÏίσκονται οι διαθÎσιμες γÏαφικÎÏ‚ εντολÎÏ‚ για τη σχεδίαση στÏατηγικής. Οι διαθÎσιμες εντολÎÏ‚ είναι διαφοÏετικÎÏ‚ ανάλογα αν η επιλεγμÎνη ταμπÎλα είναι για στÏατηγική Pacman ή για το φάντασμα.
- Ιδιότητες επιλεγμÎνης εντολής: ΤÎλος στην πεÏιοχή που σημειώνεται με μωβ χÏώμα ο παίκτης βλÎπει κάθε στιγμή τις ιδιότητες που μποÏεί να παÏαμετÏοποιήσει για μία γÏαφική εντολή εντός του καμβά σχεδίασης στÏατηγικών που Îχει επιλÎξει.
Î ÏοκειμÎνου ο παίκτης να σχεδιάσει μία στÏατηγική Ï€ÏÎπει να επιλÎξει και να σÏÏει(drag and drop) στον καμβά στÏατηγικής τις γÏαφικÎÏ‚ εντολÎÏ‚ που επιθυμεί. Οι διαθÎσιμες εντολÎÏ‚ βÏίσκονται στην εÏγαλειοθήκη “Robot State" που σημειώνεται με μωβ. Κάθε μία από αυτÎÏ‚ δηλώνει την ενÎÏγεια που θÎλει να κάνει ο παίκτης (κάθε εντολή επεξηγείται στις ακόλουθες ενότητες). Για παÏάδειγμα στην παÏακάτω εικόνα, ο παίκτης που σχεδιάζει μία στÏατηγική για το φάντασμα, Îχει επιλÎξει αμÎσως μόλις ξεκινήσει ο γÏÏος του Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï Ï„Î¿ φάντασμα να ξεκινήσει να κυνηγά τον Pacman.
Η μετάβαση από μία εντολή σε μία άλλη σημειώνεται με Îνα βÎλος (όπως το Ï€Ïάσινο της εικόνας). Για τη δημιουÏγία της μετάβασης ο παίκτης Ï€ÏÎπει να επιλÎξει το εÏγαλείο “Transition" που σημειώνεται στη μπλε πεÏιοχή και ακολοÏθως να κάνει αÏιστεÏÏŒ κλικ στην εντολή από την οποία θα ξεκινά και να σÏÏει μÎχÏι την εντολή όπου θα καταλήγει η μετάβαση, όπου και θα απελευθεÏώσει το ποντίκι. Συνεπώς στην πιο πάνω πεÏίπτωση ο παίκτης επÎλεξε το Transition, Îκανε Ï€Ïώτα κλικ στην εντολή Start και ακολοÏθως ÎσυÏε το ποντίκι στην εντολή Capture Pacman όπου και το απελευθÎÏωσε.
3.2 Σχεδίαση σύνθετων στρατηγικών
Î ÏοκειμÎνου να αυξήσει τις πιθανότητες επιτυχίας του κάθε παίκτης, πιθανότατα θα χÏειαστεί ωστόσο να σχεδιάσει πιο πεÏίτεχνες στÏατηγικÎÏ‚ από την Ï€ÏοαναφεÏθείσα. Για το σκοπό αυτό, ο παίκτης μποÏεί να χÏησιμοποιήσει επιπλÎον εντολÎÏ‚, να τις παÏαμετÏοποιήσει με βάση την επιθυμητή συμπεÏιφοÏά και να Ï€ÏοσθÎσει συνθήκες στις μεταβάσεις από μία ενÎÏγεια στην άλλη. Η ακόλουθη εικόνα δείχνει μία πιο πεÏίτεχνη στÏατηγική με τις Ï€ÏοαναφεÏθείσες Ï€Ïοσθήκες, η οποία επεξηγείται ακολοÏθως.
Στην πεÏίπτωση αυτή ο παίκτης σχεδιάζει μια στÏατηγική για τον Pacman. Σε αυτήν Îχει επιλÎξει 4 εντολÎÏ‚. Την υποχÏεωτική εντολή Start, την εντολή Go for bonus για να συλλÎξει bonus πόντους, την εντολή Go for points για να συλλÎξει πόντους και την εντολή ακινητοποίησης του φαντάσματος (οι εντολÎÏ‚ επεξηγοÏνται αναλυτικά στις ακόλουθες ενότητες). Όπως δείχνει η παÏαπάνω εικόνα κάποιες από τις εντολÎÏ‚ επιδÎχονται επιπλÎον παÏαμετÏοποίησης (Ï€.χ. η εντολή Go for points) και για το λόγο αυτό παÏÎχεται επιπλÎον χώÏος σε αυτήν (επισημαίνεται με μπλε).
ÎœÎσα σε αυτή την πεÏιοχή ο παίκτης μποÏεί να τοποθετήσει (drag and drop) μία ή πεÏισσότεÏες από τις διαθÎσιμες συμπεÏιφοÏÎÏ‚ που παÏÎχονται στην εÏγαλειοθήκη “Behavior Toolbar" (επισημαίνεται με μπλε στο δεξί μÎÏος). ΑυτÎÏ‚ οι συμπεÏιφοÏÎÏ‚ καθοÏίζουν την ιδιαίτεÏη συμπεÏιφοÏά που επιθυμεί ο παίκτης κατά την εκτÎλεση μιας εντολής. Για παÏάδειγμα, στη συγκεκÏιμÎνη πεÏίπτωση ο παίκτης επÎλεξε, καθώς ο Pacman πηγαίνει για πόντους (εντολή Go for points), να διαλÎξει με Ï„Îτοιο Ï„Ïόπο τον κόμβο-στόχο με πόντους που θα πάει, Îτσι ώστε α) κατά το δυνατόν να αποφεÏγει το φάντασμα και ταυτόχÏονα β) να διαλÎξει τον κόμβο με πόντους που είναι πιο κοντά. Οι συμπεÏιφοÏÎÏ‚ επεξηγοÏνται αναλυτικά στις επόμενες ενότητες.
ΕπιπλÎον στη συγκεκÏιμÎνη πεÏίπτωση ο παίκτης επÎλεξε να χÏησιμοποιεί, όταν το φάντασμα τον πλησιάζει, μεÏικοÏÏ‚ bonus πόντους ώστε να το ακινητοποιεί, ευελπιστώντας πως Îτσι θα το αποφÏγει. Για το σκοπό αυτό επÎλεξε την εντολή “Ghost Immobilization" από την εÏγαλειοθήκη με τις εντολÎÏ‚ που χÏησιμοποιοÏν bonus πόντους (ποÏτοκαλί πεÏιοχή). Πως όμως εκπληÏώνεται η επιθυμία του παίκτη η χÏήση bonus για την ακινητοποίηση του φαντάσματος να γίνεται μόνο όταν το φάντασμα είναι “κοντά"?
Όπως φαίνεται στην παÏαπάνω εικόνα, οι μεταβάσεις από μία εντολή σε μία άλλη μποÏεί να Îχουν κάποια συνθήκη. ΑυτÎÏ‚ λοιπόν που Îχουν μία απλή συνθήκη που Ï€ÏÎπει να ικανοποιηθεί για να εκτελεστεί η μετάβαση από μία εντολή σε μία άλλη σημειώνονται με ποÏτοκαλί χÏώμα. Οι μεταβάσεις που πεÏιÎχουν πιο πεÏίτεχνες συνθήκες ωστόσο σημειώνονται με μωβ. Σε αντίθετη πεÏίπτωση, όταν δηλαδή μια μετάβαση δεν Îχει κάποια συνθήκη σημειώνεται με Ï€Ïάσινο. Σε όλες τις πεÏιπτώσεις που υπάÏχει μία συνθήκη ή Îνας συνδυασμός συνθηκών, αυτή η συνθήκη εμφανίζεται επάνω στο βÎλος της μετάβασης. Για παÏάδειγμα η μετάβαση από την εντολή Go for bonus στην εντολή Ghost Immobilization γίνεται μόνο όταν η απόσταση σε κόμβους από τον αντίπαλο είναι μικÏότεÏη από 5 (“DIST_TO_OPP < 5").
Όποτε ο παίκτης δημιουÏγεί Îνα νÎο βÎλος μετάβασης από μία ενÎÏγεια σε μία άλλη, αυτή εξ΄οÏÎ¹ÏƒÎ¼Î¿Ï Î´ÎµÎ½ Îχει κάποια συνθήκη. Για να Ï€ÏοσθÎσει ο παίκτης μια ή πεÏισσότεÏες συνθήκες σε μία μετάβαση Ï€ÏÎπει να κάνει διπλό κλικ πάνω στο βÎλος της μετάβασης που επιθυμεί. Τότε ανοίγει μία νÎα καÏÏ„Îλα στον καμβά σχεδίασης στÏατηγικής, όπως φαίνεται στην παÏακάτω εικόνα.
Στη συγκεκÏιμÎνη πεÏίπτωση ο παίκτης επÎλεξε να Ï€ÏοσθÎσει στη μετάβαση Îνα συνδυασμό συνθηκών. Για το σκοπό αυτό ο παίκτης Ï€ÏÎπει να εναπωθÎσει (drag and drop) στον καμβά σχεδίασης Îνα “ConditionGroup" από την εÏγαλειοθήκη που σημειώνεται με μπλε πεÏίγÏαμμα. Τότε εμφανίζεται το γαλάζιο οÏθογώνιο στον καμβά, μÎσα στο οποίο ο παίκτης μποÏεί να εναποθÎσει μία ή πεÏισσότεÏες συνθήκες ή συνδυασμοÏÏ‚ συνθηκών κατά το δοκοÏν. Στην πεÏίπτωση αυτή ο παίκτης επÎλεξε να χÏησιμοποιήσει Îνα συνδυασμό δÏο απλών συνθηκών. Η μία ελÎγχει αν οι bonus πόντοι του παίκτη είναι ίσοι με μηδÎν (εντός του κόκκινου οÏθογωνίου), ενώ η άλλη ελÎγχει αν η απόσταση του παίκτη από τον κοντινότεÏο κόμβο με bonus είναι μικÏότεÏη από ότι ο κοντινότεÏος κόμβος με πόντους. Η εÏγαλειοθήκη με τις διαθÎσιμες συνθήκες επισημαίνεται με κόκκινο πεÏίγÏαμμα δεξιά στην εικόνα. Η πλήÏης επεξήγηση των συνθηκών παÏÎχεται σε ακόλουθες ενότητες.
3.3 Επαληθεύοντας την ορθότητα της στρατηγικής.
Καθώς ο παίκτης Ï€ÏοσθÎτει εντολÎÏ‚ και συνθήκες στη στÏατηγική του για να αυξήσει τις πιθανότητες νίκης, τόσο αυξάνεται η πιθανότητα η εφαÏμογή να πεÏιÎχει ατÎλειες και λογικά σφάλματα τα οποία είναι πιθανό να οδηγήσουν σε μη επιθυμητή συμπεÏιφοÏά του Pacman ή του φαντάσματος. Î Ïος αποφυγή Ï„Îτοιων καταστάσεων το εÏγαλείο Pacman4All παÏÎχει τη δυνατότητα επαλήθευσης της στÏατηγικής.
Όπως δείχνει η παÏαπάνω εικόνα, Ï€ÏοκειμÎνου ο παίκτης να επαληθεÏσει την οÏθότητα της στÏατηγικής του, Ï€ÏÎπει να πατήσει δεξί κλικ σε οποιοδήποτε σημείο του καμβά στÏατηγικής δεν πεÏιÎχει κάποια εντολή (στον κενό χώÏο) και ακολοÏθως να κάνει κλικ στην επιλογή “Validate diagram" όπως επισημαίνεται εντός του ποÏτοκαλί πεÏιγÏάμματος. Τότε το εÏγαλείο Pacman4All κάνει πολλαπλοÏÏ‚ λογικοÏÏ‚ ελÎγχους και εφόσον εντοπίσει Ï€Ïοβλήματα, τα επισημαίνει με κόκκινο σÏμβολο Χ (επισημαίνεται εντός μπλε κÏκλου).
ΤαυτόχÏονα ο παίκτης μποÏεί να δει το σÏνολο των σφαλμάτων στην καÏÏ„Îλα “Problems" στο κάτω μÎÏος της διεπαφής εντός του μπλε οÏθογωνίου. Κάθε σφάλμα συνοδεÏεται από μία πεÏιγÏαφή που βοηθά τον παίκτη να διοÏθώσει το λάθος και από Îνα κωδικό Ï€Ïοβλήματος (Ï€.χ. BA1, RS2 όπως στην εικόνα), με τον οποίο ο παίκτης μποÏεί να αναζητήσει επιπλÎον βοήθεια για την επίλυση του σφάλματος στην τελευταία ενότητα του παÏόντος. ΤÎλος εάν ο παίκτης κάνει διπλό κλικ σε Îνα από τα μηνÏματα σφάλματος της στÏατηγικής του, τότε επιλÎγεται αυτόματα η γÏαφική εντολή που Îχει το Ï€Ïόβλημα στον καμβά σχεδίασης Ï€Ïος διευκόλυνση του χÏήστη.
3.4 Παραγωγή εφαρμογής
Το τελικό στάδιο Ï€Ïιν την ÎναÏξη του αγώνα είναι η (αυτόματη) παÏαγωγή του Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï Î³Î¹Î± τον Pacman και το φάντασμα. Τονίζεται πως Ï€Ïιν ο παίκτης Ï€ÏοχωÏήσει στην παÏαγωγή του κώδικα Ï€ÏÎπει Ï€ÏοηγουμÎνως να Îχει επιδιοÏθώσει όλα τα Ï€Ïοβλήματα που Îχουν εντοπιστεί κατά την επαλήθευση της στÏατηγικής, ειδάλλως δÏναται να παÏαχθεί λογισμικό που δε θα Îχει την επιθυμητή συμπεÏιφοÏά. Όπως δείχνει η παÏακάτω εικόνα, για να παÏαχθεί το λογισμικό μιας στÏατηγικής, ο παίκτης Ï€ÏÎπει να επιλÎξει το αÏχείο με κατάληξη “pacmanmetamodel" στο φάκελο της, να πατήσει δεξί κλικ και στη συνÎχεια να πατήσει στην επιλογή “Generate Code". Κατόπιν θα εμφανιστεί ο φάκελος “output" όπως φαίνεται εντός του ποÏτοκαλί πλαισίου, ο οποίος πεÏιÎχει το απαιτοÏμενο λογισμικό. Τονίζεται πως αυτή η διαδικασία παÏαγωγής Î»Î¿Î³Î¹ÏƒÎ¼Î¹ÎºÎ¿Ï Ï€ÏÎπει να ακολουθηθεί για κάθε επιθυμητή στÏατηγική, Ï€.χ. μια φοÏά για τον Pacman και μία για το φάντασμα.
4 Εντολές Pacman4All
4.1. Start
ΠεÏιγÏαφή:
Η χÏήση της εντολής Start υποδηλώνει το σημείο από το οποίο θα αÏχίσει να εκτελείται η εκάστοτε στÏατηγική.
Ιδιότητες:
Το σÏμβολο Start δεν Îχει καμία ιδιότητα.
4.2. Capture Pacman
ΠεÏιγÏαφή:
Η χÏήση της εντολής Capture Pacman στη στÏατηγική του φαντάσματος, Îχει σαν αποτÎλεσμα το φάντασμα να αÏχίσει να κινείται με βÎλτιστο Ï„Ïόπο Ï€Ïος το σημείο που βÏίσκεται ο Pacman με απώτεÏο σκοπό να βÏεθεί στον ίδιο κόμβο με αυτόν και συνεπώς να τον πιάσει.
Ιδιότητες:
Η εντολή Capture Pacman δεν Îχει καμία παÏαμετÏοποιήσιμη ιδιότητα.
4.3. Go for bonus
ΠεÏιγÏαφή:
Η χÏήση της εντολής Go For bonus Îχει ως αποτÎλεσμα ο παίκτης (Pacman/φάντασμα) να μετακινηθεί Ï€Ïος Îναν από τους κόμβους της πίστας η οποία Îχει Îναν bonus πόντο. Συνεπώς όπως φαίνεται στην παÏακάτω εικόνα θα μετακινηθεί Ï€Ïος κάποιον από τους κόμβους που είναι επισημασμÎνοι με μπλε κÏκλο. Το ποιος από αυτοÏÏ‚ θα επιλεγεί, εξαÏτάται από το σÏνολο των συμπεÏιφοÏών που ο παίκτης Îχει Ï€ÏοσθÎσει στη συγκεκÏιμÎνη εντολή Go For bonus, Ï€.χ. απόσταση από τον αντίπαλο, κοντινότεÏο bonus κτλ. Οι συμπεÏιφοÏÎÏ‚ επεξηγοÏνται σε επόμενη ενότητα του παÏόντος.
Σημείωση: εφόσον κατά την Ï€Ïοσπάθεια λήψης bonus από τον Pacman, ο Pacman πεÏάσει πάνω από κόμβο που Îχει πόντους, συλλÎγει και τους πόντους.
Ιδιότητες:
- behaviors: πεÏιÎχει το σÏνολο συμπεÏιφοÏών οι οποίες καθοÏίζουν το bonus κόμβο που θα επιλεγεί από το σÏνολο των διαθεσιμων την Ï„ÏÎχουσα στιγμή στην πίστα. Οι πιθανÎÏ‚ επιλογÎÏ‚ είναι Distance from Points, Distance from Ghost/Pacman, Distance from Bonuses, Number of Escape Routes.
4.4. Go for points
ΠεÏιγÏαφή:
Η χÏήση της εντολής Go For points Îχει ως αποτÎλεσμα ο παίκτης (Pacman/φάντασμα) να μετακινηθεί Ï€Ïος Îναν από τους κόμβους της πίστας ο οποίος Îχει πόντους. Συνεπώς όπως φαίνεται στην παÏακάτω εικόνα θα μετακινηθεί Ï€Ïος κάποιον από τους κόμβους που είναι επισημασμÎνοι με κόκκινο κÏκλο. Το ποιος από αυτοÏÏ‚ θα επιλεγεί, εξαÏτάται από το σÏνολο των συμπεÏιφοÏών που ο παίκτης Îχει Ï€ÏοσθÎσει στη συγκεκÏιμÎνη εντολή Go For points, Ï€.χ. απόσταση από τον αντίπαλο, κοντινότεÏο bonus κτλ. Οι συμπεÏιφοÏÎÏ‚ επεξηγοÏνται σε επόμενη ενότητα του παÏόντος. Η εντολή Go for Points μποÏεί να χÏησιμοποιηθεί μόνο από τον Pacman.
Σημείωση: εφόσον κατά την Ï€Ïοσπάθεια λήψης πόντων από τον Pacman, ο Pacman πεÏάσει πάνω από κόμβο που Îχει bonus, συλλÎγει και το bonus.
Ιδιότητες:
- behaviors: πεÏιÎχει το σÏνολο συμπεÏιφοÏών οι οποίες καθοÏίζουν τον κόμβο με πόντους που θα επιλεγεί από το σÏνολο των διαθεσιμων την Ï„ÏÎχουσα στιγμή στην πίστα. Οι πιθανÎÏ‚ επιλογÎÏ‚ είναι Distance from Points, Distance from Ghost/Pacman, Distance from Bonuses, Number of Escape Routes.
4.5. Wander
ΠεÏιγÏαφή:
Η χÏήση της εντολής Wander Îχει ως αποτÎλεσμα ο παίκτης (Pacman/φάντασμα) να μετακινηθεί Ï€Ïος οποιοδήποτε κόμβο της πίστας. Συνεπώς όπως φαίνεται στην παÏακάτω εικόνα θα μετακινηθεί Ï€Ïος οποιοδήποτε από τους 86 κόμβους και όχι αναγκαστικά Ï€Ïος κόμβο πόντων ή κόμβο bonus. Το ποιος από αυτοÏÏ‚ θα επιλεγεί, εξαÏτάται από το σÏνολο των συμπεÏιφοÏών που ο παίκτης Îχει Ï€ÏοσθÎσει στη συγκεκÏιμÎνη εντολή Wander, Ï€.χ. απόσταση από τον αντίπαλο, κοντινότεÏο bonus κτλ. Οι συμπεÏιφοÏÎÏ‚ επεξηγοÏνται σε επόμενη ενότητα του παÏόντος.
Σημείωση 1: εφόσον κατά την Ï€Ïοσπάθεια πεÏιήγησης στην πίστα από τον Pacman, ο Pacman πεÏάσει πάνω από κόμβο που Îχει bonus ή πόντους, συλλÎγει και το bonus ή τους πόντους αντίστοιχα.
Σημείωση 2: εφόσον κατά την Ï€Ïοσπάθεια πεÏιήγησης στην πίστα από το φάντασμα, το φάντασμα πεÏάσει πάνω από κόμβο που Îχει bonus, συλλÎγει και το bonus.
Ιδιότητες:
- behaviors: πεÏιÎχει το σÏνολο συμπεÏιφοÏών οι οποίες καθοÏίζουν τον κόμβο που θα επιλεγεί από το σÏνολο των διαθεσιμων την Ï„ÏÎχουσα στιγμή στην πίστα. Οι πιθανÎÏ‚ επιλογÎÏ‚ είναι Distance from Points, Distance from Ghost/Pacman, Distance from Bonuses, Number of Escape Routes.
5. Συμπεριφορές.
5.1 Distance from Points
ΠεÏιγÏαφή: Η χÏήση της συμπεÏιφοÏάς Distance from points Îχει ως αποτÎλεσμα να επιλεγεί ως κόμβος-στόχος, κάποιος ο οποίος πληÏοί κάποιο κÏιτήÏιο απόστασης από πόντους όπως φαίνεται στις ιδιότητες πιο κάτω. Στην πεÏίπτωση συνεπώς που η συμπεÏιφοÏά αυτή χÏησιμοποιηθεί σε εντολή Go For Points, Go for Bonus ή Wandering θα επιλεγεί κάποιος κόμβος πόντων/μπονους ή οποιοδήποτε κόμβος της πίστας με βάση το κÏιτήÏιο αυτό.
Ιδιότητες:
- Importance: υποδηλώνει πόσο σημαντική θα Ï€ÏÎπει να θεωÏηθεί η συγκεκÏιμÎνη συμπεÏιφοÏά, αν σε μία εντολή χÏησιμοποιηθεί μαζί με άλλες συμπεÏιφοÏÎÏ‚. Μία συμπεÏιφοÏά με Importance HIGH ισοδυναμεί με 2 Importance NORMAL και με 4 συμπεÏιφοÏÎÏ‚ με Importance LOW.
- Type: υποδηλώνει τον Ï„Ïπο απόστασης από κόμβους πόντων που θα χÏησιμοποιηθεί για να επιλεγεί ο κόμβος στόχος.
- TO_CLOSEST_POINTS: δημιουÏγεί την τάση να πάει Ï€Ïος τον πιο κοντινό κόμβο με πόντους από την Ï„ÏÎχουσα θÎση του Pacman/Φαντάσματος.
- TO_MOST_POINTS: δημιουÏγεί την τάση να πάει Ï€Ïος τον κόμβο με τους πεÏισσότεÏους πόντους.
- TO_HIGH_SCORE_AREA: δημιουÏγεί την τάση να πάει Ï€Ïος πεÏιοχή η οποία βÏίσκεται κατά μÎσο ÏŒÏο κοντά σε αÏκετοÏÏ‚ κομβους με πόντους.
5.2 Distance from Pacman/Φάντασμα
ΠεÏιγÏαφή:
Η συμπεÏιφοÏά Distance from Pacman/Φάντασμα Îχει την τάση αντιστοίχως να μετακινεί το φάντασμα ή τον Pacman Ï€Ïος τον αντίπαλο ή μακÏυά από αυτόν. Στην πεÏίπτωση συνεπώς που η συμπεÏιφοÏά αυτή χÏησιμοποιηθεί σε εντολή Go For Points, Go for Bonus ή Wandering θα επιλεγεί κάποιος κόμβος πόντων/μπόνους ή οποιοδήποτε κόμβος της πίστας με βάση το κÏιτήÏιο αυτό.
Ιδιότητες:
- Importance: υποδηλώνει πόσο σημαντική θα Ï€ÏÎπει να θεωÏηθεί η συγκεκÏιμÎνη συμπεÏιφοÏά, αν σε μία εντολή χÏησιμοποιηθεί πάνω από μία. Μία συμπεÏιφοÏά με Importance HIGH ισοδυναμεί με 2 Importance NORMAL και με 4 συμπεÏιφοÏÎÏ‚ με Importance LOW.
- Type: υποδηλώνει τον Ï„Ïπο απόστασης από τον αντίπαλο που θα χÏησιμοποιηθεί για να επιλεγεί ο κόμβος στόχος.
- MAX: η επιλογή κόμβου γίνεται με βάση τη μÎγιστη απόσταση από τον αντίπαλο, συνεπώς η συμπεÏιφοÏά θα Îχει την τάση να απομακÏÏνει τον παίκτη από τον αντίπαλο.
- MIN: η επιλογή κόμβου γίνεται με βάση την ελάχιστη απόσταση από τον αντίπαλο, συνεπώς η συμπεÏιφοÏά θα Îχει την τάση ο παίκτης να Ï€Ïοσεγγίζει τον αντίπαλο.
5.3 Distance from Bonuses
ΠεÏιγÏαφή:
Η συμπεÏιφοÏά Distance from Bonuses Îχει την τάση να μετακινεί τον παίκτη με βάση κάποιο κÏιτήÏιο απόστασης από κόμβους bonus όπως αναλÏεται στις ιδιότητες. Στην πεÏίπτωση συνεπώς που η συμπεÏιφοÏά αυτή χÏησιμοποιηθεί σε εντολή Go For Points, Go for Bonus ή Wandering θα επιλεγεί κάποιος κόμβος πόντων/μπονους ή οποιοδήποτε κόμβος της πίστας με βάση το κÏιτήÏιο αυτό.
Ιδιότητες:
- Importance: υποδηλώνει πόσο σημαντική θα Ï€ÏÎπει να θεωÏηθεί η συγκεκÏιμÎνη συμπεÏιφοÏά, αν σε μία εντολή χÏησιμοποιηθεί πάνω από μία. Μία συμπεÏιφοÏά με Importance HIGH ισοδυναμεί με 2 Importance NORMAL και με 4 συμπεÏιφοÏÎÏ‚ με Importance LOW.
- Type: υποδηλώνει τον Ï„Ïπο απόστασης από κόμβους bonus που θα χÏησιμοποιηθεί για να επιλεγεί ο κόμβος στόχος.
- TO_CLOSEST_BONUS: η επιλογή κόμβου γίνεται με βάση τον κόμβο bonus που Îχει την ελάχιστη απόσταση από την Ï„ÏÎχουσα θÎση του παίκτη.
- TO_HIGH_BONUS_AREA: δημιουÏγεί την τάση να πάει ο παίκτης Ï€Ïος πεÏιοχή η οποία βÏίσκεται κατά μÎσο ÏŒÏο κοντά σε αÏκετοÏÏ‚ κομβους με bonus.
5.4 Number of Escape Routes
ΠεÏιγÏαφή:
Η συμπεÏιφοÏά Number of Escape Routes Îχει την τάση να μετακινεί τον παίκτη Ï€Ïος κόμβους οι οποίοι Îχουν αÏκετÎÏ‚ διεξόδους διαφυγής. Στην πεÏίπτωση συνεπώς που η συμπεÏιφοÏά αυτή χÏησιμοποιηθεί σε εντολή Go For Points, Go for Bonus ή Wandering θα επιλεγεί κάποιος κόμβος πόντων/μπόνους ή οποιοδήποτε κόμβος της πίστας αντίστοιχα ο οποίος θα Îχει αÏκετÎÏ‚ διεξόδους διαφυγής.
Ιδιότητες:
- Importance: υποδηλώνει πόσο σημαντική θα Ï€ÏÎπει να θεωÏηθεί η συγκεκÏιμÎνη συμπεÏιφοÏά, αν σε μία εντολή χÏησιμοποιηθεί πάνω από μία. Μία συμπεÏιφοÏά με Importance HIGH ισοδυναμεί με 2 Importance NORMAL και με 4 συμπεÏιφοÏÎÏ‚ με Importance LOW.
- Search Depth: δηλώνει το βάθος αναζήτησης διεξόδων από κάθε δυνατό κόμβο της πιστας. Συνεπώς, όσο μεγαλÏτεÏη η τιμή αυτής της παÏαμÎÏ„Ïου, τόσο ο εκάστοτε κόμβος θα διαθÎτει πεÏισσότÏες διεξόδους διαφυγής, άÏα θα βÏίσκεται κεντÏικότεÏα. Ως αποτÎλεσμα, ο παίκτης θα τείνει να κατευθÏνεται Ï€Ïος κεντÏικότεÏα σημεία.
6. Εντολές χρήσης bonus
6.1 Pacman/Ghost Immobilization
ΠεÏιγÏαφή:
Με τη χÏήση της εντολής Pacman/Ghost immobilization ο παίκτης ακινητοποιεί τον αντίπαλο για χÏονικό διάστημα ανάλογο των bonus πόντων που επιθυμεί να χÏησιμοποιήσει.
Ιδιότητες:
- type: Ï€Ïόκειται για το είδος ακινητοποίησης του αντιπάλου
- x1: χÏησιμοποιείται Îνας bonus πόντος και ο αντίπαλος ακινητοποιείται για χÏονική διάÏκεια που αντιστοιχεί σε πεÏίπου 4 απλÎÏ‚ κινήσεις (μετάβαση από κόμβο σε κόμβο/πεÏιστÏοφή).
- x2: χÏησιμοποιοÏνται δÏο bonus πόντοι και ο αντίπαλος ακινητοποιείται για χÏονική διάÏκεια που αντιστοιχεί σε πεÏίπου 8 απλÎÏ‚ κινήσεις.
- x3: χÏησιμοποιοÏνται Ï„Ïεις bonus πόντοι και ο αντίπαλος ακινητοποιείται για χÏονική διάÏκεια που αντιστοιχεί σε πεÏίπου 12 απλÎÏ‚ κινήσεις.
- x4: χÏησιμοποιοÏνται Ï„ÎσσεÏις bonus πόντοι και ο αντίπαλος ακινητοποιείται για χÏονική διάÏκεια που αντιστοιχεί σε πεÏίπου 16 απλÎÏ‚ κινήσεις.
- x5: χÏησιμοποιοÏνται Ï€Îντε bonus πόντοι και ο αντίπαλος ακινητοποιείται για χÏονική διάÏκεια που αντιστοιχεί σε πεÏίπου 20 απλÎÏ‚ κινήσεις.
6.2 Multiply Points
ΠεÏιγÏαφή:
Με τη χÏήση της εντολής Multiply Points ο Pacman μποÏεί να πολλαπλασιάσει τους πόντους που Îχει την Ï„ÏÎχουσα χÏονική στιγμή κατά Ï„Ïόπο ανάλογο με τη χÏήση bonus πόντων όπως επεξηγείται στις ιδιότητες.
Ιδιότητες:
- type: Ï€Ïόκειται για τον συντελεστή Ï€Î¿Î»Î»Î±Ï€Î»Î±ÏƒÎ¹Î±ÏƒÎ¼Î¿Ï Ï„Ï‰Î½ πόντων
- x2: χÏησιμοποιοÏνται δÏο bonus πόντοι και ο Pacman διπλασιάζει τους πόντους του.
- x3: χÏησιμοποιοÏνται Ï„Ïεις bonus πόντοι και ο Pacman Ï„Ïιπλασιάζει τους πόντους του.
- x4: χÏησιμοποιοÏνται Ï„ÎσσεÏις bonus πόντοι και ο Pacman τετÏαπλασιάζει τους πόντους του.
- x5: χÏησιμοποιοÏνται Ï€Îντε bonus πόντοι και ο Pacman πενταπλασιάζει τους πόντους του.
6.3 End Round
ΠεÏιγÏαφή:
Με τη χÏήση της εντολής End Round τόσο ο Pacman όσο και το φάντασμα μποÏοÏν να χÏησιμοποιήσουν Îξι bonus πόντους και να Ï€ÏοκαλÎσουν τον άμεσο τεÏματισμό του παιχνιδιοÏ.
Ιδιότητες:
Η εντολή χÏήσης bonus End Round δεν Îχει ιδιότητες.
7 Δημιουργία Συνθηκών Μετάβασης
7.1 Condition
ΠεÏιγÏαφή:
Με τη χÏήση condition ο παίκτης μποÏεί να Ï€ÏοσθÎσει συνθήκες στις μεταβάσεις από μία εντολή σε άλλη, Îτσι ώστε αυτÎÏ‚ να Ï€ÏαγματοποιοÏνται μόνο όταν η συνθήκη αληθεÏει.
Ιδιότητες:
- Operator: Ï€Ïόκειται για τον τελεστή σÏγκÏισης που θα χÏησιμοποιηθεί ανάμεσα στους δÏο τελεστÎους της συνθήκης.
- EQUAL: η συνθήκη είναι αληθής αν και μόνο αν οι δÏο τελεστÎοι της είναι ίσοι.
- NOT_EQUAL: η συνθήκη είναι αληθής αν και μόνο αν οι δÏο τελεστÎοι της διαφÎÏουν Î¼ÎµÏ„Î±Î¾Ï Ï„Î¿Ï…Ï‚.
- GREATER: η συνθήκη είναι αληθής αν και μόνο αν ο αÏιστεÏός τελεστÎος είναι μεγαλÏτεÏος από το δεξιό.
- GREATER_OR_EQUAL: η συνθήκη είναι αληθής αν και μόνο αν ο αÏιστεÏός τελεστÎος είναι μεγαλÏτεÏος ή ίσος από το δεξιό.
- LOWER: η συνθήκη είναι αληθής αν και μόνο αν ο αÏιστεÏός τελεστÎος είναι μικÏότεÏος από το δεξιό.
- LOWER_OR_EQUAL: η συνθήκη είναι αληθής αν και μόνο αν ο αÏιστεÏός τελεστÎος είναι μικÏότεÏος ή ίσος από το δεξιό.
7.2 Game Variable
ΠεÏιγÏαφή:
Ο ÏŒÏος Game Variable αντιπÏοσωπεÏει την τιμή κάποιας ποσότητας του Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï Î¼Î¹Î± δεδομÎνη χÏονική στιγμή. Οι διαθÎσιμες ποσότητες καταγÏάφονται στις ιδιότητες.
Ιδιότητες:
- Variable: Ï€Ïόκειται για τον Ï„Ïπο μεταβλητής που μποÏεί να λάβει μία από τις παÏακάτω τιμÎÏ‚:
- TIME: Ï€Ïόκειται για το χÏόνο που απομÎνει μÎχÏι τον τεÏματισμό ενός γÏÏου Ï€Î±Î¹Ï‡Î½Î¹Î´Î¿Ï ÏƒÎµ δευτεÏόλεπτα.
- MY_BONUS: οι bonus πόντοι του παίκτη.
- OPP_BONUS: οι bonus πόντοι του αντιπάλου.
- MY_POINTS: οι πόντοι του παίκτη.
- OPP_POINTS: οι πόντοι του αντιπάλου.
- UNTAKEN_POINT_CARDS: το πλήθος των κόμβων της πίστας που Îχουν ακόμη πόντους.
- UNTAKEN_BONUS_CARDS: το πλήθος των κόμβων της πίστας που Îχουν ακόμη μπόνους πόντους.
- UNTAKEN_POINTS: το πλήθος των πόντων που υπάÏχουν ακόμη στην πίστα.
- UNTAKEÎ_BONUS: το πλήθος των κόμβων της πίστας που Îχουν ακόμη bonus.
- DIST_TO_OPP: η απόσταση σε κόμβους του παίκτη από τον αντίπαλό του.
- DIST_TO_CLOSEST_POINTS: η απόσταση σε κόμβους του παίκτη από τον κοντινότεÏο κόμβο με πόντους.
- DIST_TO_CLOSEST_BONUS: η απόσταση σε κόμβους του παίκτη από τον κοντινότεÏο κόμβο με bonus.
- DIST_TO_MOST_POINTS: η απόσταση σε κόμβους του παίκτη από τον κόμβο με τους πεÏισσότεÏους πόντους.
- IS_OPP_FROZEN: μεταβλητή η οποία δηλώνει αν ο αντίπαλος την Ï„ÏÎχουσα χÏονική στιγμή είναι ακινητοποιημÎνος λόγω της χÏήσης εντολής Pacman/Ghost Immobilization. Λαμβάνει την τιμή 1 εάν ο αντίπαλος είναι ακινητοποιημÎνος και την τιμή 0 εάν ο αντίπαλος δεν είναι ακινητοποιημÎνος.
7.3 Condition Group
ΠεÏιγÏαφή:
Το Condition Group αντικατÏοπτίζει Îνα συνδυασμό από συνθήκες (conditions) ή/και άλλα Condition Groups Îτσι ώστε ο παίκτης να δημιουÏγήσει πιο σÏνθετες συνθήκες μετάβασης από μία εντολή σε μία άλλη.
Ιδιότητες:
- Evaluation Type: Ï€Ïόκειται για τη λογική Ï€Ïάξη που θα εκτελεστεί ανάμεσα στις συνθήκες (Conditions) και ομάδες συνθηκών (Condition Groups) του συγκεκÏιμÎνου Condition Group. Με τη λογική αυτή Ï€Ïάξη ελÎγχεται αν το Condition Group είναι άληθÎÏ‚ ή όχι, και συνεπώς αν η μετάβαση στην εντολή στόχο Ï€ÏÎπει να Ï€Ïαγματοποιηθεί ή όχι.
- AND: Ï€Ïόκειται για το “λογικό και" ανάμεσα στις συνθήκες. Στην πεÏίπτωση αυτή η ομάδα συνθηκών αληθεÏει αν και μόνο αν όλες οι πεÏιεχόμενες συνθήκες/ομάδες συνθηκών είναι αληθείς.
- OR: Ï€Ïόκειται για το “λογικό ή" ανάμεσα στις συνθήκες. Στην πεÏίπτωση αυτή η ομάδα συνθηκών αληθεÏει αν και μόνο αν Îστω μία από τις πεÏιεχόμενες συνθήκες/ομάδες συνθηκών είναι αληθής.
- XOR: στην πεÏίπτωση αυτή η ομάδα συνθηκών αληθεÏει αν και μόνο αν η μία από τις δÏο επιτÏεπτÎÏ‚ συνθήκες/ομάδες συνθηκών είναι αληθής και η άλλη είναι ψευδής.
- NOT: στην πεÏίπτωση αυτή η ομάδα συνθηκών αληθεÏει αν και μόνο αν η μία επιτÏεπτή συνθήκη/ομάδα συνθηκών είναι ψευδής.
7.4 Value
ΠεÏιγÏαφή:
Î Ïόκειται για μια αÏιθμητική τιμή που μποÏεί να χÏησιμοποιηθεί στη δημιουÏγία μιας συνθήκης για τη σÏγκÏισή της με την Ï„ÏÎχουσα τιμή μιας μεταβλητής του Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï (Game Variable).
Ιδιότητες:
- Value: Ï€Ïόκειται για την αÏιθμητική τιμή.
Δομικοί ΠεÏιοÏισμοί:
Ο ÏŒÏος Value δεν Îχει δομικοÏÏ‚ πεÏιοÏισμοÏÏ‚.
ΣυμπεÏιφοÏικοί ΠεÏιοÏισμοί:
Ο ÏŒÏος Value δεν Îχει δομικοÏÏ‚ πεÏιοÏισμοÏÏ‚.
8 Επεξήγηση σφαλμάτων
8.1 Error Code PA1
ΠεÏιγÏαφή: Σε κάθε στÏατηγική Ï€ÏÎπει να υπάÏχει μόνο Îνα σημείο ÎναÏξης. Για το λόγο αυτό, Ï€ÏÎπει να υπάÏχει μόνο μία εντολή Start στο διάγÏαμμα.
ΕπιδιόÏθωση: Î ÏοκειμÎνου να διοÏθωθεί το σφάλμα:
- εάν Îχετε πάνω από μία εντολÎÏ‚ Start, επιλÎξτε και διαγÏάψτε τις πλεονάζουσες Start εντολÎÏ‚, αφήνοντας μόνο μία.
- εάν δεν είχατε καμία εντολή Start, Ï€ÏοσθÎστε μία εντολή Start.
8.2 Error Code PA3
ΠεÏιγÏαφή: Στο διάγÏαμμα της στÏατηγικής που κατασκευάζετε για το Pacman Ï€ÏÎπει να δηλώσετε πως αφοÏά το Pacman και όχι το φάντασμα. Για το λόγο αυτό, Ï€ÏÎπει το Player Type στο διάγÏαμμα να είναι επιλεγμÎνο ως Pacman.
ΕπιδιόÏθωση: Î ÏοκειμÎνου να διοÏθωθεί το σφάλμα, κάντε κλικ σε Îνα κενό σημείο στον καμβά σχεδίασης στÏατηγικής. Έπειτα, επιλÎξτε από το Î¼ÎµÎ½Î¿Ï ÏƒÏ„Î¿ κάτω μÎÏος της οθόνης την καÏÏ„Îλα Properties και εκεί επιλÎξτε ως Player Type τον Pacman.
8.3 Error Code PA4
ΠεÏιγÏαφή: Στο διάγÏαμμα της στÏατηγικής που κατασκευάζετε για το φάντασμα Ï€ÏÎπει να δηλώσετε πως αφοÏά το φάντασμα και όχι τον Pacman. Για το λόγο αυτό, Ï€ÏÎπει το Player Type στο διάγÏαμμα να είναι επιλεγμÎνο ως φάντασμα.
ΕπιδιόÏθωση: Î ÏοκειμÎνου να διοÏθωθεί το σφάλμα, κάντε κλικ σε Îνα κενό σημείο στον καμβά σχεδίασης στÏατηγικής. Έπειτα, επιλÎξτε από το Î¼ÎµÎ½Î¿Ï ÏƒÏ„Î¿ κάτω μÎÏος της οθόνης την καÏÏ„Îλα Properties και εκεί επιλÎξτε ως Player Type το Ghost.
8.4 Error Code RS2
ΠεÏιγÏαφή: Κάθε μία εντολή μποÏεί να Îχει μόνο μία μετάβαση (Transition) χωÏίς συνθήκη ή συνδυασμό συνθηκών Ï€Ïος μία άλλη εντολή.
ΕπιδιόÏθωση: Î ÏοκειμÎνου να διοÏθωθεί το σφάλμα, Ï€ÏÎπει να αποφασίσετε ποια μετάβαση χωÏίς συνθήκες επιθυμείτε να διατηÏήσετε στη στÏατηγική σας. Έπειτα, επιλÎξτε τις κενÎÏ‚ μεταβάσεις, αφήνοντας εκτός επιλογής εκείνη τη μετάβαση που αποφασίσατε, και Ï€ÏοχωÏήστε στη διαγÏαφή τους (delete).
8.5 Error Code RS3
ΠεÏιγÏαφή: Μία εντολή δε γίνεται να πεÏιÎχει παÏαπάνω από μία συμπεÏιφοÏÎÏ‚ που να αφοÏοÏν την απόσταση από τον αντίπαλο (είτε pacman είτε φάντασμα). Για το λόγο αυτό δε γίνεται να υπάÏχουν σε μία εντολή παÏαπάνω από μία συμπεÏιφοÏÎÏ‚ Distance from Pacman ή Distance from Ghost.
ΕπιδιόÏθωση: Î ÏοκειμÎνου να διοÏθωθεί το σφάλμα, Ï€ÏÎπει να αποφασίσετε ποια συμπεÏιφοÏά σχετικά με την απόσταση από τον αντίπαλο επιθυμείτε να διατηÏήσετε στη στÏατηγική σας. Έπειτα, επιλÎξτε όποια άλλη συμπεÏιφοÏά του ίδιου Ï„Ïπου υπάÏχει και διαγÏάψτε την (delete).
8.6 Error Code RS4
ΠεÏιγÏαφή: Μία εντολή δε γίνεται να πεÏιÎχει παÏαπάνω από μία συμπεÏιφοÏÎÏ‚ που να αφοÏοÏν την απόσταση από τους πόντους της πίστας, με την ίδια ιδιότητα. Για το λόγο αυτό δε γίνεται να υπάÏχουν σε μία εντολή παÏαπάνω από μία συμπεÏιφοÏÎÏ‚ Distance from Points με το ίδιο type.
ΕπιδιόÏθωση: Î ÏοκειμÎνου να διοÏθωθεί το σφάλμα, υπάÏχουν διαφοÏετικÎÏ‚ επιλογÎÏ‚ που μποÏείτε να ακολουθήσετε. Στην Ï€Ïώτη πεÏίπτωση, Ï€ÏÎπει να αποφασίσετε ποια συμπεÏιφοÏά Distance from Points επιθυμείτε να διατηÏήσετε στη στÏατηγική σας, να επιλÎξετε τις υπόλοιπες και να τις διαγÏάψετε. Στη δεÏτεÏη πεÏίπτωση, Ï€ÏÎπει να αναθεωÏήσετε τις ιδιότητες των συμπεÏιφοÏών Distance from Points που θÎλετε να Îχει το Ïομπότ σε αυτή την εντολή και να Ï„Ïοποποιήσετε τις συμπεÏιφοÏÎÏ‚ απόστασης, ώστε να Îχουν όλες διαφοÏετική ιδιότητα (type).
8.7 Error Code RS5
ΠεÏιγÏαφή: Μία εντολή δε γίνεται να πεÏιÎχει παÏαπάνω από μία συμπεÏιφοÏÎÏ‚ που να αφοÏοÏν τις διεξόδους διαφυγής από Îναν κόμβο. Για το λόγο αυτό δε γίνεται να υπάÏχουν σε μία εντολή παÏαπάνω από μία συμπεÏιφοÏÎÏ‚ Escape Routes.
ΕπιδιόÏθωση: Î ÏοκειμÎνου να διοÏθωθεί το σφάλμα, Ï€ÏÎπει να αποφασίσετε ποια συμπεÏιφοÏά Escape Routes επιθυμείτε να διατηÏήσετε στη στÏατηγική σας, να επιλÎξετε τις υπόλοιπες και να τις διαγÏάψετε.
8.8 Error Code RS6
ΠεÏιγÏαφή: Μία εντολή δε γίνεται να πεÏιÎχει παÏαπάνω από μία συμπεÏιφοÏÎÏ‚ που να αφοÏοÏν την απόσταση από τους bonus πόντους της πίστας, με την ίδια ιδιότητα. Για το λόγο αυτό δε γίνεται να υπάÏχουν σε μία εντολή παÏαπάνω από μία συμπεÏιφοÏÎÏ‚ Distance from Bonuses με το ίδιο type.
ΕπιδιόÏθωση: Î ÏοκειμÎνου να διοÏθωθεί το σφάλμα, υπάÏχουν διαφοÏετικÎÏ‚ επιλογÎÏ‚ που μποÏείτε να ακολουθήσετε. Στην Ï€Ïώτη πεÏίπτωση, Ï€ÏÎπει να αποφασίσετε ποια συμπεÏιφοÏά Distance from Bonuses επιθυμείτε να διατηÏήσετε στη στÏατηγική σας, να επιλÎξετε τις υπόλοιπες και να τις διαγÏάψετε. Στη δεÏτεÏη πεÏίπτωση, Ï€ÏÎπει να αναθεωÏήσετε τις ιδιότητες των συμπεÏιφοÏών Distance from Bonuses που θÎλετε να Îχει το Ïομπότ σε αυτή την εντολή και να Ï„Ïοποποιήσετε τις συμπεÏιφοÏÎÏ‚ απόστασης, ώστε να Îχουν όλες διαφοÏετική ιδιότητα (type).
8.9 Error Code RS8
ΠεÏιγÏαφή: Δε γίνεται να υπάÏχει στο διάγÏαμμα εντολή χωÏίς να είναι Ï€Ïοσπελάσιμη. Για το λόγο αυτό δε γίνεται να υπάÏχει εντολή που να μην είναι στόχος κάποιας μετάβασης (Transition).
ΕπιδιόÏθωση: Î ÏοκειμÎνου να διοÏθωθεί το σφάλμα, υπάÏχουν διαφοÏετικÎÏ‚ επιλογÎÏ‚ που μποÏείτε να εκτελÎσετε. Στην Ï€Ïώτη πεÏίπτωση, Ï€ÏÎπει να Ï„Ïοποποιήσετε τη στÏατηγική σας, και να Ï€ÏοσθÎσετε μία μετάβαση, επιλÎγοντας το Transition από το Transition Toolbar, η οποία θα ξεκινά από μία άλλη εντολή και θα Îχει ως στόχο την εντολή που υπάÏχει το σφάλμα. Στη δεÏτεÏη πεÏίπτωση, Ï€ÏÎπει να αναθεωÏήσετε και πάλι τη στÏατηγική σας και να σβήσετε την εντολή που Ï€Ïοκαλεί το σφάλμα.
8.10 Error Code RS9
ΠεÏιγÏαφή: Η εντολή αυτή Ï€ÏÎπει να πεÏιÎχει τουλάχιστον μία συμπεÏιφοÏά. Για το λόγο αυτό, η εντολή Ï€ÏÎπει να εχει τουλάχιστον Îνα από τα παÏακάτω: Distance from Points, Distance from Bonuses, Number of Escape Routes, Distance from Pacman/Ghost.
ΕπιδιόÏθωση: Î ÏοκειμÎνου να διοÏθωθεί το σφάλμα, Ï€ÏÎπει να Ï€ÏοσθÎσετε στην εντολή μία συμπεÏιφοÏά της επιλογής σας από το Behavior Toolbar.
8.11 Error Code RS10
ΠεÏιγÏαφή: Όλες οι μεταβάσεις αυτής της εντολής Ï€ÏÎπει να πεÏιÎχουν τουλάχιστον μία συνθήκη ή Îναν συνδυασμό συνθηκών.
ΕπιδιόÏθωση: Î ÏοκειμÎνου να διοÏθωθεί το σφάλμα, Ï€ÏÎπει να αναθεωÏήσετε τη στÏατηγική σας και να αποφασίσετε ή να διαγÏάψετε κάποια κενή μετάβαση ή να της Ï€ÏοσθÎσετε συνθήκες. Στην Ï€Ïώτη πεÏίπτωση, Ï€ÏÎπει να επιλÎξετε τις μεταβάσεις που δε θÎλετε να Îχετε πλÎον στη στÏατηγική σας και να τις διαγÏάψετε. Στη δεÏτεÏη πεÏίπτωση, Ï€ÏÎπει να κάνετε διπλό κλικ σε κάθε κενή μετάβαση και να Ï€ÏοσθÎσετε είτε μία συνθήκη από το Condition Toolbar, είτε Îνα συνδυασμό συνθηκών, Ï€ÏοσθÎτοντας Îνα Condition Group από το ConditionGroup Toolbar.
8.12 Error Code RS11
ΠεÏιγÏαφή: Η εντολή πεÏιÎχει μόνο μία συμπεÏιφοÏά, η οποία αφοÏά την απόσταση του παίκτη από τους bonus πόντους της πίστας. Αν όμως κατά την εκτÎλεση της εντολής πάψουν να υπάÏχουν διαθÎσιμα μπόνους στην πίστα η εντολή δε θα μποÏεί να εκτελεστεί σωστά. Î ÏÎπει λοιπόν να Ï€Ïοστεθεί μία μετάβαση που να πεÏιλαμβάνει απόκλειστικά τη σÏνθηκη UNTAKEN_BONUS = 0 και να Îχει ως στόχο μία από τις εντολÎÏ‚ Wander ή Go for points αν σχεδιάζετε στÏατηγική για Pacman ή Wander/Capture Pacman πεÏίπτωση που σχεδιάζετε στÏατηγική για το φάντασμα.
ΕπιδιόÏθωση: Î ÏοκειμÎνου να διοÏθωθεί το σφάλμα, Ï€ÏÎπει να Ï€ÏοσθÎσετε μία μετάβαση (Transition) από το Transition Toolbar. Σε πεÏίπτωση που σχεδιάζετε στÏατηγική για το pacman, η μετάβαση Ï€ÏÎπει να ξεκινά από την εντολή με το Ï€Ïόβλημα και να κατευθÏνεται σε μία εντολή Wander ή Go for Points, ενώ αν σχεδιάζετε στÏατηγική για το φάντασμα σε μία εντολή Wander ή Capture Pacman. Έπειτα, κάνετε διπλό κλικ στη μετάβαση που μόλις δημιουÏγήσατε, και Ï€ÏοσθÎστε μία συνθήκη Ï„Ïπου Equal από το Condition Toolbar. Συνεχίζοντας, Ï€ÏοσθÎστε δÏο τελεστÎÏ‚, Îναν Game Variable και Îναν Value, ώστε να σχηματίσετε τη συνθήκη UNTAKEN_BONUS = 0.
8.13 Error Code S2
ΠεÏιγÏαφή: Μία εντολή Start Ï€ÏÎπει να Îχει τουλάχιστον μία μετάβαση (Transition) Ï€Ïος κάποια άλλη εντολή
ΕπιδιόÏθωση: Εάν δεν υπάÏχει ήδη, Ï€ÏοσθÎστε τουλάχιστον μία επιπλÎον εντολή στο διάγÏαμμα και στην συνÎχεια Ï€ÏοσθÎστε μία μετάβαση από την εντολή Start Ï€Ïος μία οποιαδήποτε άλλη εντολή.
8.14 Error Code S3
ΠεÏιγÏαφή: Μία εντολή Start δεν μποÏεί να διαθÎτει μετάβαση Ï€Ïος μία εντολή χÏήσης bonus (Pacman/Ghost Immobilization, Multiply Points ή End Round).
ΕπιδιόÏθωση: Εντοπίστε την μετάβαση (Transition) η οποία αÏχίζει από την εντολή Start και καταλήγει σε κάποια εντολή χÏήσης bonus. ΕπιλÎξτε το βÎλος της εν λόγω μετάβασης και διαγÏάψτε το (delete).
8.15 Error Code BA1
ΠεÏιγÏαφή: Μία εντολή Go for bonus θα Ï€ÏÎπει πάντα να διαθÎτει μία μετάβαση (Transition), η οποία να συμπεÏιλαμβάνει την εντολή “UNTAKEN_BONUS_CARDS = 0" ή την “UNTAKEN_BONUS = 0" Ï€Ïος μία άλλη εντολή Wander, Capture Pacman ή Gor for points.
Î Ïοσοχή, στην πεÏίπτωση που σχεδιάζετε στÏατηγική για τον Pacman θα Ï€ÏÎπει η εντολή-στόχος της συγκεκÏιμÎνης μετάβασης, να είναι μία εντολή χÏήσης bonus, Go for points ή μία εντολή Wander. Εάν η στÏατηγικη που σχεδιάζετε αφοÏά το Ghost, τότε η εντολή στην οποία καταλήγει η συγκεκÏιμÎνη μετάβαση μποÏεί να είναι εντολή χÏήσης bonus, εντολή Wander ή εντολή Capture Pacman.
ΕπιδιόÏθωση: ΥπάÏχουν δÏο πιθανοί Ï„Ïόποι να επιλÏσετε το σφάλμα.
- Ο Ï€Ïώτος είναι να εντοπίσετε την εντολή η οποία Ï€Ïοκαλεί το σφάλμα και να κατασκευάσετε μία νÎα μετάβαση από την συγκεκÏιμÎνη εντολή Ï€Ïος μία άλλη εντολή-στόχο. Η εντολή-στόχος Ï€ÏÎπει να Îιναι εντολή χÏήσης Bonus, Go for points ή εντολή Wander στην πεÏίπτωση του Pacman. Αντίθετα για το φάντασμα, η εντολή-στόχος μποÏεί να είναι εντολη Capture Pacman, Wander ή χÏήσης Bonus. Εάν δεν υπάÏχει ήδη μία κατάλληλη εντολή για να οÏίσετε την μετάβαση Ï€Ïος αυτήν, τότε θα Ï€ÏÎπει να δημιουÏγήσετε μία νÎα.
- ΔιαφοÏετικά, επιλÎξτε μία από τις υπάÏχουσες μεταβάσεις που Îχετε δημιουÏγήσει και Ï„Ïοποποιήστε την κατάλληλα, ώστε να πεÏιÎχει μία από τις εντολÎÏ‚ “UNTAKEN_BONUS_CARDS = 0" ή την “UNTAKEN_BONUS = 0".
8.16 Error Code SM1
ΠεÏιγÏαφή: Μία εντολή Multiply Points Ï€ÏÎπει να διαθÎτει τουλάχιστον μία μετάβαση Ï€Ïος κάποια άλλη εντολή
ΕπιδιόÏθωση: Î ÏοσθÎστε μία μετάβαση από την εντολή MultiplyPoints Ï€Ïος μία οποιαδήποτε άλλη εντολή.
8.17 Error Code SM2.n
ΠεÏιγÏαφή: Αν μια εντολή Multiply Points δε διαθÎτει κάποια μετάβαση χωÏίς συνθήκη σε εντολή που δεν αφοÏά χÏήση μπόνους, Ï€ÏÎπει να διαθÎτει μία μετάβαση, η οποια θα πεÏιÎχει μόνο τη συνθήκη “MY_BONUS < n", και δε θα καταλήγει σε εντολή χÏήσης μπόνους. To n συμβολίζει τον αÏιθμό με τον οποίο θα πολλαπλασιαστοÏν οι πόντοι (πχ αν n = 2 ,θÎλουμε διπλασιασμό των πόντων).
ΕπιδιόÏθωση: Εντοπίστε την εντολή MultiplyPoints που Ï€Ïοκαλεί το σφάλμα. Ανάλογα με την στÏατηγική που θÎλετε να αναπτÏξετε μποÏείτε να δημιουÏγήσετε Îνα Transition που δε θα καταλήγει σε εντολή χÏήσης μπόνους, είτε με μοναδική συνθήκη “MY_BONUS < n " είτε χωÏίς καμία συνθήκη.
8.18 Error Code EM1
ΠεÏιγÏαφή: Μία εντολή Pacman/Ghost Immobilization Ï€ÏÎπει να διαθÎτει τουλάχιστον μία μετάβαση Ï€Ïος κάποια άλλη εντολή
ΕπιδιόÏθωση: Î ÏοσθÎστε μία μετάβαση από την εντολή Pacman/Ghost Immobilization Ï€Ïος μία οποιαδήποτε άλλη εντολή.
8.19 Error Code EM2.n
ΠεÏιγÏαφή: Αν μια εντολή Pacman/Ghost Immobilization δε διαθÎτει κάποια μετάβαση χωÏίς συνθήκη σε εντολή που δεν αφοÏά χÏήση μπόνους, Ï€ÏÎπει να διαθÎτει μία μετάβαση, η οποια θα πεÏιÎχει μόνο τη συνθήκη “MY_BONUS < n", και δε θα καταλήγει σε εντολή χÏήσης μπόνους. To n αφοÏά την επιλογή σας όσον αφοÏά τον χÏόνο της ακινητοποίησης (πχ αν Îχετε επιλÎξει Type = x2 το n = 2).
ΕπιδιόÏθωση: Εντοπίστε την εντολή Pacman/Ghost Immobilization που Ï€Ïοκαλεί το σφάλμα. Ανάλογα με την στÏατηγική που θÎλετε να αναπτÏξετε μποÏείτε να δημιουÏγήσετε Îνα Transition που δε θα καταλήγει σε εντολή χÏήσης μπόνους, είτε με μοναδική συνθήκη “MY_BONUS < n" είτε χωÏίς καμία συνθήκη.
8.20 Error Code ER1
ΠεÏιγÏαφή: Μία συμπεÏιφοÏά Number of Escape Routes Îχει Îνα χαÏακτηÏιστικό με το όνομα Search Depth. Η τιμή που θα λάβει το αντίστοιχο χαÏακτηÏιστικό (το Search Depth) Ï€ÏÎπει να είναι θετική (αυστηÏά > 0).
ΕπιδιόÏθωση: ΕπιλÎξτε την συμπεÏιφοÏά που Ï€Ïοκαλεί το σφάλμα και θα εμφανιστοÏν στο Î¼ÎµÎ½Î¿Ï ÏƒÏ„Î¿ κάτω μÎÏος της οθόνης (στην καÏÏ„Îλα Properties) οι τιμÎÏ‚ των χαÏακτηÏιστικών της. Στο πεδίο με όνομα Search Depth θÎστε μία θετική τιμή (αυστηÏά > 0). Το σφάλμα Îχει πλÎον αποκατασταθεί.
8.21 Error Code ER2
ΠεÏιγÏαφή: Η συμπεÏφιÏά Number of Escape Routes πεÏιÎχει τη μεταβλητή Search Depth για τη οποία Îχει τεθεί μÎγιστη δυνατή τιμή 5.
ΕπιδιόÏθωση: Εντοπίστε τη συμπεÏιφοÏά Number of Escape Routes η οποία Ï€Ïοκαλεί το σφάλμα και Ï„Ïοποποιήστε την τιμή της μεταβλητής Search Depth εντός του οÏίου 0-6
8.22 Error Code CG1
ΠεÏιγÏαφή: Ένα Condition Group που Îχει ως Evaluation Type το XOR θα Ï€ÏÎπει να πεÏιÎχει ακÏιβώς δÏο συνθήκες/Condition Groups ή μία συνθήκη και Îνα Condition Group. Σε κάθε πεÏίπτωση Ï€ÏÎπει να πεÏιÎχει ακÏιβώς δÏο στοιχεία.
ΕπιδιόÏθωση: ΔιαγÏάψτε ή Ï€ÏοσθÎστε Conditions ή Condition Groups Ï€ÏοκειμÎνου τα στοιχεία που πεÏιÎχονται μÎσα στο συγκεκÏιμÎνο ConditionGroup να είναι δÏο.
8.23 Error Code CG2
ΠεÏιγÏαφή: Ένα Condition Group που Îχει ως Evaluation Type το NOT θα Ï€ÏÎπει να πεÏιÎχει ακÏιβώς μία συνθήκη, ή Îνα Condition Group.
ΕπιδιόÏθωση: ΔιαγÏάψτε ή Ï€ÏοσθÎστε μία/πολλÎÏ‚ συνθήκες ή ConditionGroups Ï€ÏοκειμÎνου το ConditionGroup να πεÏιÎχει Îνα μόνο Condition/ConditionGroup.
8.24 Error Code CG3
ΠεÏιγÏαφή: Ένα Condition Group που Îχει ως Evaluation Type το AND ή το OR θα Ï€ÏÎπει να πεÏιÎχει τουλάχιστον μία συνθήκη, ή τουλάχιστον δÏο Condition Groups, ή τουλάχιστον μία συνθήκη και Îνα ConditionGroup.
ΕπιδιόÏθωση: Î ÏοσθÎστε όσες συνθήκες (Conditions) ή Condition Groups απαιτοÏνται Ï€ÏοκειμÎνου τα πεÏιεχόμενα του συγκεκÏιμÎνου ConditionGroup να Îιναι τουλάχιστον δÏο.
8.25 Error Code CD1
ΠεÏιγÏαφή: Μία συνθήκη (Condition) δεν μποÏεί να κάνει σÏγκÏιση Î¼ÎµÏ„Î±Î¾Ï Î´Ïο αÏιθμητικών τιμών (Value). Για τον λόγο αυτό Îνα Condition δεν Ï€ÏÎπει να Îχει δÏο τελεστÎÏ‚ Ï„Ïπου Value.
ΕπιδιόÏθωση: Î ÏοκειμÎνου να διοÏθωθεί το σφάλμα, επιλÎξτε Îναν από τους δÏο αÏιθμητικοÏÏ‚ τελεστÎÏ‚ (Value) και διαγÏάψτε τον (delete). Στην θÎση του Ï€ÏοσθÎστε Îναν τελεστή Game Variable από το Operand Toolbar.
8.26 Error Code CD2
ΠεÏιγÏαφή: Μία συνθήκη (Condition) δεν Îχει νόημα να κάνει σÏγκÏιση Î¼ÎµÏ„Î±Î¾Ï Î´Ïο Game Variable τα οποία Îχουν τον ίδιο Ï„Ïπο μεταβλητής (Variable). Για τον λόγο αυτό Îνα Condition δεν Ï€ÏÎπει να Îχει δÏο τελεστÎÏ‚ GameVariable με την ίδια τιμή στο πεδίο Variable.
ΕπιδιόÏθωση: Î ÏοκειμÎνου να διοÏθωθεί το σφάλμα, επιλÎξτε τον Îναν από τους δÏο τελεστÎÏ‚ και είτε αλλάξτε τον Ï„Ïπο μεταβλητής (Variable) του (πχ από TIME σε MY_BONUS) είτε διαγÏάξτε τον. Αν διαγÏάψετε τον τελεστή, στην θÎση του Ï€ÏÎπει να οÏίσετε Îναν αÏιθμητικό τελεστή (Value).
8.27 Error Code CD3
ΠεÏιγÏαφή: Μία συνθήκη (Condition) η οποία πεÏιÎχει Îναν τελεστή με Ï„Ïπο μεταβλητής TIME δεν Îχει νόημα να συγκÏίνει αυτόν τον τελεστή με οτιδήποτε άλλο Ï€ÎÏαν μιας αÏιθμητικής τιμής (Value). Για τον λόγο αυτόν, αν μια συνθήκη πεÏιλαμβάνει τελεστή με Variable = TIME, τότε υποχÏεωτικά ο άλλος τελεστής Ï€ÏÎπει να Îιναι Ï„Ïπου Value και η τιμή του να είναι εντός των οÏίων 0.0-120.0 sec.
ΕπιδιόÏθωση: Εάν ο άλλος τελεστής είναι Ï„Ïπου Game Variable τότε Ï€ÏÎπει να τον διαγÏάψετε (delete) και στην συνÎχεια να Ï€ÏοσθÎσετε στην θÎση του Îναν τελεστή Ï„Ïπου Value με θετική τιμή. Εάν πάλι, ο άλλος τελεστής Îιναι ήδη Ï„Ïπου Value μεταβάλετε την τιμή του ώστε να ισχÏει “0.0 <= Value <= 120.0".
8.28 Error Code CD4
ΠεÏιγÏαφή: Ο τελεστής μιας συνθήκης (Condition), ο οποίος αναφÎÏεται στους πόντους του παίκτη σας, δεν Îχει νόημα να συγκÏίνεται με άλλου Ï„Ïπου μεταβλητÎÏ‚. Για τον λόγο αυτό, αν μία συνθήκη πεÏιÎχει Îναν τελεστή με Variable = MY_POINTS, τότε ο άλλος τελεστής Ï€ÏÎπει να είναι είτε μία μη αÏνητική τιμή (Value), είτε Îνας τελεστής με μεταβλητή Ï„Ïπου (Variable) ίση με OPP_POINTS, ή UNTAKEN_POINTS.
ΕπιδιόÏθωση: Εάν ο άλλος τελεστής είναι αÏιθμητική τιμή (Value) τότε θα Ï€ÏÎπει να μεταβάλετε την τιμή του, ώστε αυτή να καταστεί θετική (αυστηÏά μεγαλÏτεÏη του 0). Εάν πάλι, ο άλλος τελεστής είναι Ï„Ïπου Variable τότε θα Ï€ÏÎπει να θÎσετε την μεταβλητή Ï„Ïπου (Variable) του τελεστή, ίση με μία από τις επιλογÎÏ‚ OPP_POINTS ή UNTAKEN_POINTS.
8.29 Error Code CD5
ΠεÏιγÏαφή: Ο τελεστής μιας συνθήκης (Condition), ο οποίος αναφÎÏεται στους πόντους του αντιπάλου, δεν Îχει νόημα να συγκÏίνεται με άλλου Ï„Ïπου μεταβλητή. Για τον λόγο αυτό, αν μία συνθήκη πεÏιÎχει Îναν τελεστή με Variable = OPP_POINTS, τότε ο άλλος τελεστής Ï€ÏÎπει να είναι είτε μία μη αÏνητική τιμή (Value), είτε Îνας τελεστής με μεταβλητή Ï„Ïπου (Variable) ίση με MY_POINTS, ή UNTAKEN_POINTS.
ΕπιδιόÏθωση: Εάν ο άλλος τελεστής είναι αÏιθμητική τιμή (Value) τότε θα Ï€ÏÎπει να μεταβάλετε την τιμή του, ώστε αυτή να καταστεί μη αÏνητική. Εάν πάλι, ο άλλος τελεστής είναι Ï„Ïπου GameVariable τότε θα Ï€ÏÎπει να θÎσετε τη μεταβλητή Ï„Ïπου (Variable) του τελεστή, ίση με μία από τις επιλογÎÏ‚ MY_POINTS ή UNTAKEN_POINTS.
8.30 Error Code CD6
ΠεÏιγÏαφή: Ο τελεστής μιας συνθήκης (Condition), ο οποίος αναφÎÏεται στο bonus του παίχτη σας, δεν Îχει νόημα να συγκÏίνεται με άλλου Ï„Ïπου μεταβλητή. Για τον λόγο αυτό, αν μία συνθήκη πεÏιÎχει Îναν τελεστή με Variable = MY_BONUS, τότε ο άλλος τελεστής Ï€ÏÎπει να είναι είτε μία μη αÏνητική τιμή (Value), είτε Îνας τελεστής με μεταβλητή Ï„Ïπου (Variable) ίση με OPP_BONUS, ή UNTAKEN_BONUS.
ΕπιδιόÏθωση: Εάν ο άλλος τελεστής είναι αÏιθμητική τιμή (Value) τότε θα Ï€ÏÎπει να μεταβάλετε την τιμή του, ώστε αυτή να καταστεί θετική (αυστηÏά μεγαλÏτεÏη του 0). Εάν πάλι, ο άλλος τελεστής είναι Ï„Ïπου Variable τότε θα Ï€ÏÎπει να θÎσετε την μεταβλητή Ï„Ïπου (Variable) του τελεστή, ίση με μία από τις επιλογÎÏ‚ OPP_BONUS ή UNTAKEN_BONUS.
8.31 Error Code CD7
ΠεÏιγÏαφή: Ο τελεστής μιας συνθήκης (Condition), ο οποίος αναφÎÏεται στο bonus του αντιπάλου, δεν Îχει νόημα να συγκÏίνεται με άλλου Ï„Ïπου μεταβλητή. Για τον λόγο αυτό, αν μία συνθήκη πεÏιÎχει Îναν τελεστή με Variable = OPP_BONUS, τότε ο άλλος τελεστής Ï€ÏÎπει να είναι είτε μία μη αÏνητική τιμή (Value), είτε Îνας τελεστής με μεταβλητή Ï„Ïπου (Variable) ίση με MY_BONUS, ή UNTAKEN_BONUS.
ΕπιδιόÏθωση: Εάν ο άλλος τελεστής είναι αÏιθμητική τιμή (Value) τότε θα Ï€ÏÎπει να μεταβάλετε την τιμή του, ώστε αυτή να καταστεί μη αÏνητική. Εάν πάλι, ο άλλος τελεστής είναι Ï„Ïπου GameVariable τότε θα Ï€ÏÎπει να θÎσετε την μεταβλητή Ï„Ïπου (Variable) του τελεστή, ίση με μία από τις επιλογÎÏ‚ MY_BONUS ή UNTAKEN_BONUS.
8.32 Error Code CD8
ΠεÏιγÏαφή: Ο τελεστής μιας συνθήκης (Condition), ο οποίος αναφÎÏεται στο πλήθος των κόμβων της πίστας που Îχουν ακόμη πόντους, δεν Îχει νόημα να συγκÏίνεται με άλλου Ï„Ïπου μεταβλητÎÏ‚ ή αÏνητικÎÏ‚ τιμÎÏ‚. Για τον λόγο αυτό όταν η συνθήκη πεÏιÎχει τελεστή, του οποίου η μεταβλητή Ï„Ïπου (Variable) είναι ίση με UNTAKEN_POINTS_CARDS θα Ï€ÏÎπει ο άλλος τελεστής να είναι μία μη αÏνητική τιμή (Value).
ΕπιδιόÏθωση: Εάν ο άλλος τελεστής είναι αÏιθμητική τιμή (Value) τότε θα Ï€ÏÎπει να μεταβάλετε την τιμή του, ώστε αυτή να καταστεί μη αÏνητική καθώς και να επιλÎξετε μία μη αÏνητική τιμή. Εάν πάλι, ο άλλος τελεστής είναι Ï„Ïπου GameVariable τότε θα Ï€ÏÎπει να τον διαγÏάψετε και στην θÎση του να Ï€ÏοσθÎσετε Îναν αÏιθμητικό τελεστή (Value) με θετική τιμή.
8.33 Error Code CD9
ΠεÏιγÏαφή: Ο τελεστής μιας συνθήκης (Condition), ο οποίος αναφÎÏεται στο πλήθος των πόντων που Îχουν απομείνει στην πίστα, Îχει νόημα να συγκÏιθεί μόνο με μια μη αÏνητική τιμή, τους πόντους του παίκτη σας ή του αντιπάλου. Για τον λόγο αυτό κάθε συνθήκη που πεÏιÎχει τελεστή με μεταβλητή Ï„Ïπου (Variable) ίση με UNTAKEN_POINTS θα Ï€ÏÎπει να Îχει ως δεÏτεÏο τελεστή Îναν αÏιθμητικό τελεστή (Value) με μη αÏνητική τιμή, ή Îναν τελεστή Ï„Ïπου Game Variable, του οποίου η μεταβλητή Ï„Ïπου (Variable) είναι ίση με MY_POINTS ή OPP_POINTS.
ΕπιδιόÏθωση: Εάν ο άλλος τελεστής είναι αÏιθμητική τιμή (Value) τότε θα Ï€ÏÎπει να μεταβάλετε την τιμή του, ώστε αυτή να καταστεί μη αÏνητική. Εάν πάλι, ο άλλος τελεστής είναι Ï„Ïπου GameVariable τότε θα Ï€ÏÎπει να θÎσετε την μεταβλητή Ï„Ïπου (Variable) του τελεστή, ίση με μία από τις επιλογÎÏ‚ MY_POINTS ή OPP_POINTS.
8.34 Error Code CD10
ΠεÏιγÏαφή: Ο τελεστής μιας συνθήκης (Condition), ο οποίος αναφÎÏεται στο πλήθος των κόμβων με μπόνους που Îχουν απομείνει στην πίστα, Îχει νόημα να συγκÏιθεί μόνο με Îναν τελεστή με μια αÏιθμητική τιμή, τα bonus του παίκτη σας ή του αντιπάλου. Για τον λόγο αυτό κάθε συνθήκη που πεÏιÎχει τελεστή με μεταβλητή Ï„Ïπου (Variable) ίση με UNTAKEN_BONUS θα Ï€ÏÎπει να Îχει ως δεÏτεÏο τελεστή Îναν αÏιθμητικό τελεστή (Value) με μη αÏνητική τιμή, ή Îναν τελεστή Ï„Ïπου Game Variable, του οποίου η μεταβλητή Ï„Ïπου (Variable) είναι ίση με MY_BONUS ή OPP_BONUS.
ΕπιδιόÏθωση: Εάν ο άλλος τελεστής είναι αÏιθμητική τιμή (Value) τότε θα Ï€ÏÎπει να μεταβάλετε την τιμή του, ώστε αυτή να καταστεί μη αÏνητική. Εάν πάλι, ο άλλος τελεστής είναι Ï„Ïπου GameVariable τότε θα Ï€ÏÎπει να θÎσετε την μεταβλητή Ï„Ïπου (Variable) του τελεστή, ίση με μία από τις επιλογÎÏ‚ MY_BONUS ή OPP_BONUS.
8.35 Error Code CD11
ΠεÏιγÏαφή: Ο τελεστής μιας συνθήκης (Condition), ο οποίος αφοÏά απόσταση από τον αντίπαλο, θα Ï€ÏÎπει να συγκÏίνεται με αÏιθμητική τιμή ή τελεστÎÏ‚ που αφοÏουν απόσταση. Για τον λόγο αυτό κάθε συνθήκη που πεÏιÎχει τελεστή με Variable = DIST_TO_OPP θα Ï€ÏÎπει να πεÏιÎχει ως δεÏτεÏο τελεστή μία αÏιθμητική τιμή (Value) με μη αÏνητική τιμή, ή Îναν τελεστή Game Variable με μεταβλητή Ï„Ïπου (Variable) ίση με DIST_TO_CLOSEST_POINTS, DIST_TO_CLOSEST_BONUS ή DIST_TO_MOST_POINTS.
ΕπιδιόÏθωση: Εάν ο άλλος τελεστής είναι αÏιθμητική τιμή (Value) τότε θα Ï€ÏÎπει να μεταβάλετε την τιμή του, ώστε αυτή να καταστεί μη αÏνητική. Εάν πάλι, ο άλλος τελεστής είναι Ï„Ïπου GameVariable τότε θα Ï€ÏÎπει να θÎσετε την μεταβλητή Ï„Ïπου (Variable) του τελεστή, ίση με μία από τις επιλογÎÏ‚ DIST_TO_CLOSEST_POINTS, DIST_TO_CLOSEST_BONUS ή DIST_TO_MOST_POINTS.
8.36 Error Code CD12
ΠεÏιγÏαφή: Ο τελεστής μιας συνθήκης (Condition), ο οποίος αφοÏά απόσταση από τον κοντινότεÏο κόμβο με πόντους, θα Ï€ÏÎπει να συγκÏίνεται με αÏιθμητική τιμή ή τελεστÎÏ‚ που αφοÏουν απόσταση. Για τον λόγο αυτό κάθε συνθήκη που πεÏιÎχει τελεστή με Variable = DIST_TO_CLOSEST_POINTS θα Ï€ÏÎπει να πεÏιÎχει ως δεÏτεÏο τελεστή μία αÏιθμητική τιμή (Value) με μη αÏνητική τιμή, ή Îναν τελεστή Game Variable με μεταβλητή Ï„Ïπου (Variable) ίση με DIST_TO_OPP, DIST_TO_CLOSEST_BONUS ή DIST_TO_MOST_POINTS.
ΕπιδιόÏθωση: Εάν ο άλλος τελεστής είναι αÏιθμητική τιμή (Value) τότε θα Ï€ÏÎπει να μεταβάλετε την τιμή του, ώστε αυτή να καταστεί μη αÏνητική. Εάν πάλι, ο άλλος τελεστής είναι Ï„Ïπου GameVariable τότε θα Ï€ÏÎπει να θÎσετε την μεταβλητή Ï„Ïπου (Variable) του τελεστή, ίση με μία από τις επιλογÎÏ‚ DIST_TO_OPP, DIST_TO_MOST_POINTS ή DIST_TO_CLOSEST_BONUS.
8.37 Error Code CD13
ΠεÏιγÏαφή: Ο τελεστής μιας συνθήκης (Condition), ο οποίος αφοÏά απόσταση από τον κοντινότεÏο κόμβο με bonus, θα Ï€ÏÎπει να συγκÏίνεται με αÏιθμητική τιμή ή τελεστÎÏ‚ που αφοÏουν απόσταση. Για τον λόγο αυτό κάθε συνθήκη που πεÏιÎχει τελεστή με Variable = DIST_TO_CLOSEST_BONUS θα Ï€ÏÎπει να πεÏιÎχει ως δεÏτεÏο τελεστή μία αÏιθμητική τιμή (Value) με μη αÏνητική τιμή, ή Îναν τελεστή Game Variable με μεταβλητή Ï„Ïπου (Variable) ίση με DIST_TO_CLOSEST_POINTS, DIST_TO_MOST_POINTS ή DIST_TO_OPP.
ΕπιδιόÏθωση: Εάν ο άλλος τελεστής είναι αÏιθμητική τιμή (Value) τότε θα Ï€ÏÎπει να μεταβάλετε την τιμή του, ώστε αυτή να καταστεί μη αÏνητική. Εάν πάλι, ο άλλος τελεστής είναι Ï„Ïπου GameVariable τότε θα Ï€ÏÎπει να θÎσετε την μεταβλητή Ï„Ïπου (Variable) του τελεστή, ίση με μία από τις επιλογÎÏ‚ DIST_TO_CLOSEST_POINTS, DIST_TO_MOST_POINTS ή DIST_TO_OPP.
8.38 Error Code CD14
ΠεÏιγÏαφή: Ο τελεστής μιας συνθήκης (Condition), ο οποίος αφοÏά απόσταση από τον κόμβο με τους πεÏισσότεÏους πόντους, θα Ï€ÏÎπει να συγκÏίνεται με αÏιθμητική τιμή ή τελεστÎÏ‚ που αφοÏουν απόσταση. Για τον λόγο αυτό κάθε συνθήκη που πεÏιÎχει τελεστή με Variable = DIST_TO_MOST_POINTS θα Ï€ÏÎπει να πεÏιÎχει ως δεÏτεÏο τελεστή μία αÏιθμητική τιμή (Value) με μη αÏνητική τιμή, ή Îναν τελεστή Game Variable με μεταβλητή Ï„Ïπου (Variable) ίση με DIST_TO_CLOSEST_POINTS, DIST_TO_CLOSEST_BONUS ή DIST_TO_OPP.
ΕπιδιόÏθωση: Εάν ο άλλος τελεστής είναι αÏιθμητική τιμή (Value) τότε θα Ï€ÏÎπει να μεταβάλετε την τιμή του, ώστε αυτή να καταστεί μη αÏνητική. Εάν πάλι, ο άλλος τελεστής είναι Ï„Ïπου GameVariable τότε θα Ï€ÏÎπει να θÎσετε την μεταβλητή Ï„Ïπου (Variable) του τελεστή, ίση με μία από τις επιλογÎÏ‚ DIST_TO_CLOSEST_POINTS, DIST_TO_OPP ή DIST_TO_CLOSEST_BONUS.
8.39 Error Code CD15
ΠεÏιγÏαφή: Μία συνθήκη (Condition) οÏίζεται ως LEFT_OPERAND <'operator'> RIGHT_OPERAND. Δεν είναι λοιπόν δυνατόν να υπάÏξει συνθήκη η οποία να Îχει δÏο αÏιστεÏοÏÏ‚ ή δÏο δεξιοÏÏ‚ τελεστÎÏ‚ (operands).
ΕπιδιόÏθωση: ΕπιλÎξτε τον Îναν από τους δÏο τελεστÎÏ‚ της συνθήκης στην οποία εμφανίζεται το σφάλμα. Μετά την επιλογή του, εμφανίζεται στην καÏÏ„Îλα ιδιότητες η τιμή Type. Αν η τιμή του πεδίου είναι LEFT αλλάξτε την σε RIGHT και αντίστÏοφα.
8.40 Error Code CD16
ΠεÏιγÏαφή: Μία συνθήκη (Condition) η οποία πεÏιλαμβάνει τη μεταβλητή του Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï IS_OPP_FROZEN Ï€ÏÎπει να είναι Ï„Ïπου “EQUAL" ή “ÎΟΤ EQUAL".
ΕπιδιόÏθωση: ΕπιλÎξτε τη συνθήκη στην οποία εμφανίζεται το σφάλμα. Μετά την επιλογή της, εμφανίζεται στην καÏÏ„Îλα ιδιότητες η τιμή Operator. Αλλάξτε την τιμή στο πεδίο αυτό, ώστε να είναι “EQUAL" ή “NOT EQUAL" .
8.41 Error Code CD17
ΠεÏιγÏαφή: Μία συνθήκη (Condition) η οποία πεÏιλαμβάνει τη μεταβλητή του Ï€Î±Î¹Ï‡Î½Î¹Î´Î¹Î¿Ï IS_OPP_FROZEN Ï€ÏÎπει να συγκÏίνεται μόνο με μία τιμή Value, 0.0 ή 1.0. Η τιμή 0.0 αντιστοιχεί στην πεÏίπτωση που ο αντίπαλος δεν είναι ακινητοποιημÎνος, ενώ η τιμή 1.0 υποδηλώνει την ακινητοποίηση του.
ΕπιδιόÏθωση: ΕπιλÎξτε τη συνθήκη στην οποία εμφανίζεται το σφάλμα. Σε πεÏίπτωση που συγκÏίνετε στη συνθήκη αυτή τη μεταβλητή IS_OPP_FROZEN με μία άλλη μεταβλητή του παιχνιδοÏ, τότε διαγÏάψτε την άλλη μεταβλητή και Ï€ÏοσθÎστε μία τιμή (Value), με την τιμή 0.0 ή 1.0. ΔιαφοÏετικά, εάν Îχετε ήδη μία τιμή Value στην οποία Îχετε θÎσει τιμή διαφοÏετική από 0.0 ή 1.0, Ï„Ïοποποιήστε την, ώστε να Îχει μία από τις δÏο τιμÎÏ‚.
8.42 Error Code IVR
ΠεÏιγÏαφή: Η μετάβαση από μία εντολή σε μία άλλη (Transition) συμβαίνει όταν πλοιÏοÏνται Îνα σÏνολο από συνθήκες, οι οποίες οÏίζονται στο αντίστοιχο διάγÏαμμα κάθε Transition (δημιουÏγείται/ανοίγει με διπλό κλικ στο Transition). Μία, ή πεÏισσότεÏες, από τις συνθήκες Î±Ï…Ï„Î¿Ï Ï„Î¿ διαγÏάμματος Îχει σφάλματα.
ΕπιδιόÏθωση: Πατήστε διπλό κλικ για να ανοίξει το διάγÏαμμα συνθηκών της εν λόγω μετάβασης. Στο νÎο διάγÏαμμα που Îχετε ανοίξει κάντε εκ νÎου validate και διοÏθώστε τα λάθη που εμφανίζονται, ακολουθώντας τις οδηγίες επιδιόÏθωσης, ανάλογα με τους κωδικοÏÏ‚ σφαλμάτων που εμφανίζονται.
8.43 Error Code ELT-RS10
ΠεÏιγÏαφή: Μια εντολή Ï„Ïπου Wander, EnemyCapture, Go for bonus, ή Go for points δεν μποÏεί να Îχει καμία μετάβαση που Îχει συνθήκες οι οποίες αληθεÏουν για οποιαδήποτε τιμή των μεταβλητών (GameVariable) τους (λογικό λάθος).
ΕπιδιόÏθωση: Εντοπίστε την μετάβαση (ή τις μεταβάσεις) της οποίας η συνθήκη αληθεÏει σε κάθε πεÏίπτωση, ανεξαÏτήτως από τις τιμÎÏ‚ που παίÏνουν οι μεταβλητÎÏ‚ τους. Μεταβάλετε τις συνθήκες αυτής της μετάβασης (ή μεταβάσεων) ώστε αυτό να μην συμβαίνει.
8.44 Error Code ELT-RS2
ΠεÏιγÏαφή: Μια εντολή επιτÏÎπεται να Îχει μία ή καμία (ανάλογα τον Ï„Ïπο της εντολής) μετάβαση χωÏίς συνθήκες. Στην πεÏίπτωση αυτή, κάποια μετάβαση (ή μεταβάσεις) που ξεκινά από αυτήν την εντολή, διαθÎτει συνθήκες που ικανοποιοÏνται σε κάθε πεÏίπτωση (ανεξαÏτήτως των τιμών των μεταβλητών τους).
ΕπιδιόÏθωση: Εντοπίστε την μετάβαση (ή τις μεταβάσεις) της οποίας η συνθήκη αληθεÏει σε κάθε πεÏίπτωση, ανεξαÏτήτως από τις τιμÎÏ‚ που παίÏνουν οι μεταβλητÎÏ‚ τους. Μεταβάλετε τις συνθήκες αυτής της μετάβασης (ή μεταβάσεων) ώστε αυτό να μην συμβαίνει.
8.45 Error Code ELC-RS10
ΠεÏιγÏαφή: Μια εντολή Ï„Ïπου Wander, EnemyCapture, Go for bonus, ή Go for points δεν μποÏεί να Îχει καμία μετάβαση της οποία οι συνθήκες δεν αληθεÏουν για οποιαδήποτε τιμή μεταβλητών (GameVariable) τους (λογικό λάθος).
ΕπιδιόÏθωση: Εντοπίστε την μετάβαση (ή τις μεταβάσεις) της οποίας η συνθήκη είναι ψευδής σε κάθε πεÏίπτωση, ανεξαÏτήτως από τις τιμÎÏ‚ που παίÏνουν οι μεταβλητÎÏ‚ τους. Μεταβάλετε τις συνθήκες αυτής της μετάβασης (ή μεταβάσεων) ώστε αυτό να μην συμβαίνει.
8.46 Error Code ELC-RS2
ΠεÏιγÏαφή: Μια εντολή επιτÏÎπεται να Îχει μία ή καμία (ανάλογα τον Ï„Ïπο της εντολής) μετάβαση χωÏίς συνθήκες. Στην πεÏίπτωση αυτή, κάποια μετάβαση (ή μεταβάσεις) που ξεκινά από αυτήν την εντολή, διαθÎτει συνθήκες που δεν ικανοποιοÏνται σε καμία πεÏίπτωση (ανεξαÏτήτως των τιμών των μεταβλητών τους).
ΕπιδιόÏθωση: Εντοπίστε την μετάβαση (ή τις μεταβάσεις) της οποίας η συνθήκη Îιναι ψευδής σε κάθε πεÏίπτωση, ανεξαÏτήτως από τις τιμÎÏ‚ που παίÏνουν οι μεταβλητÎÏ‚ τους. Μεταβάλετε τις συνθήκες αυτής της μετάβασης (ή μεταβάσεων) ώστε αυτό να μην συμβαίνει.
8.47 Error Code RS14
ΠεÏιγÏαφή: Η εντολή Ï„Ïπου Bonus Use (Pacman/Ghost Immobilization, Multiply Points ή End Round) που Ï€Ïοκαλεί το σφάλμα, Îχει μία η πεÏισσότεÏες μεταβάσεις (Transition), των οποίων οι συνθήκες δεν ικανοποιοÏνται ποτÎ. Αυτό δεν επιτÏÎπται για εντολÎÏ‚ Ï„Ïπου Bonus Use.
ΕπιδιόÏθωση: Εντοπίστε την μετάβαση (ή τις μεταβάσεις) της οποίας η συνθήκη Îιναι ψευδής σε κάθε πεÏίπτωση, ανεξαÏτήτως από τις τιμÎÏ‚ που παίÏνουν οι μεταβλητÎÏ‚ τους. Μεταβάλετε τις συνθήκες αυτής της μετάβασης (ή μεταβάσεων) ώστε αυτό να μην συμβαίνει.
8.48 Error Code RS15
ΠεÏιγÏαφή: Η εντολή στην οποία εμφανίζεται το σφάλμα, διαθÎτει δÏο, ή πεÏισσότÏες μεταβάσεις οι οποίες αληθεÏουν ταυτόχÏονα, είναι δηλαδή εννοιολογικά ίδιες.
ΕπιδιόÏθωση: Εντοπίστε τις μεταβάσεις των οποίων οι συνθήκες είναι εννοιολογικά ίδιες και μεταβάλλεται τις συνθήκες μίας εξ αυτών.
8.49 Error Code TRS1
ΠεÏιγÏαφή: Μία μετάβαση(Transition) είναι δυνατό να πεÏιÎχει είτε μόνο μία συνθήκη είτε μόνο Îνα group από συνθήκες.
ΕπιδιόÏθωση: Εντοπίστε τη μετάβαση η οποία πεÏιÎχει Îνα group από συνθήκες και μία συνθήκη εκτός Î±Ï…Ï„Î¿Ï ÎºÎ±Î¹ Ï„Ïοποποιήστε την κατάλληλα, σβήνοντας είτε το Îνα είτε το άλλο, ανάλογα με τη στÏατγική που επιθυμείτε να ακολουθήσετε.
9 Επεξήγηση προειδοποιήσεων
9.1 Warning Code PA5
ΠεÏιγÏαφή: Έχετε επιλÎξει μία εντολή χÏήσης bonus, χωÏίς ωστόσο να υπάÏχει εντολή για συλλογή bonus. Στο διάγÏαμμα Ï€ÏÎπει να Ï€Ïοστεθεί μία εντολή Go for bonus ή να σβήσετε την εντολή χÏήσης bonus. ΔιαφοÏετικά, η χÏήση μπόνους θα καταστεί δυνατή μόνο εάν τυχαία ο παίκτης βÏεθεί σε κόμβο που Îχει μπόνους.
ΕπιδιόÏθωση: Î ÏοκειμÎνου να διοÏθωθεί το πιθανό αυτό σφάλμα, εάν επιθυμείτε να διατηÏήσετε την εντολή χÏήσης bonus, τότε Ï€ÏοσθÎστε μία εντολή Go for bonus από το Robot State Toolbar. ΔιαφοÏετικά, μποÏείτε να επιλÎξετε και να διαγÏάψετε την εντολή χÏήσης bonus (delete).
9.1 Warning Code RS13
ΠεÏιγÏαφή: Η εντολή στην οποία εμφανίζεται αυτό το σφάλμα Îχει μία ή πεÏισσότεÏες μεταβάσεις (Transitions) των οποίων οι συνθήκες πληÏοÏνται πάντα (ανεξαÏτήτως των μεταβλητών που εμφανίζονται εντός των συνθηκών).
ΕπιδιόÏθωση: Πιθανότατα να χÏησιμοποιείτε συνθήκες εντός ενός Transition για να Ï€ÏοσδιοÏίσετε πότε αυτό θα συμβεί (όταν οι συνθήκες πληÏοÏνται). Δεν Îχει, λοιπόν, νόημα οι συνθήκες να Îιναι πάντα αληθείς. Συνεπώς, σας Ï€Ïοτείνουμε να εντοπισετε και στην συνÎχεια να μεταβάλετε τις συνθήκες εντός μίας (ή πεÏισσότεÏων) μεταβάσεων Ï€ÏοκειμÎνου να μην Îιναι πάντα αληθείς.
10 Tips & Tricks
10.1 Εξαφάνιση/Εμφάνιση της καρτέλας Properties και Problems
ΠεÏιγÏαφή: Εάν για κάποιο λόγο Îχετε κλείσει μία καÏÏ„Îλα από το Î¼ÎµÎ½Î¿Ï ÏƒÏ„Î¿ κάτω μÎÏος της οθόνης, μποÏείτε εÏκολα να την εμφανίσετε ξανά όπως παÏουσιάζεται στην ακόλουθη εικόνα.
10.2 Εμφάνιση μηνύματος κατά την καταχώρηση τιμής Value
ΠεÏιγÏαφή: Το σÏστημα Îχει υλοποιηθεί με Ï„Ïόπο, ώστε να δÎχεται δεκαδικÎÏ‚ τιμÎÏ‚ στον τελεστή Value. Εάν Ï€Ïοσπαθήσετε να καταχωÏήσετε ακÎÏαια τιμή, είναι πιθανό να εμφανιστεί το παÏακάτω μήνυμα στην οθόνη σας.
Τότε, κάνετε κλικ στην επιλογή “Use new value from the model" και συνεχίστε κανονικά τη σχεδίαση της στÏατηγικής σας.
10.3 Επιλογή διαφορετικής εντολής-στόχου σε ένα Transition
ΠεÏιγÏαφή: Εάν Îχετε διαμοÏφώσει μία μετάβαση (Transition) και τελικά αποφασίσετε πως επιθυμείτε να κατευθÏνεται σε διαφοÏετική εντολή από την Ï„ÏÎχουσα, δε χÏειάζεται να σβήσετε τη μετάβαση σας. Αντίθετα, κάνοντας κλικ στο άκÏο του βÎλους που οδηγεί στην εντολή, όπως φαίνεται στην ακόλουθη εικόνα, μποÏείτε να το σÏÏετε σε κάποια άλλη εντολή της επιλογής σας.
10.4 Επεξήγηση του μεγέθους της πίστας
ΠεÏιγÏαφή: Το μÎγεθος της πίστας δεν είναι Ï€ÏοκαθοÏισμÎνο. Για το ακÏιβÎÏ‚ μÎγεθος αυτή Ïωτήστε τους διαιτητÎÏ‚ των αγώνων. Πάντως συνήθως είναι τάξης μεγÎθους 6 x 10 κόμβων. Οι αποστάσεις Î¼ÎµÏ„Î±Î¾Ï Ï„Ï‰Î½ κόμβων είναι πάντοτε σταθεÏÎÏ‚, ωστόσο Îνας κόμβος μποÏεί να μην ενώνεται με όλους τους διπλανοÏÏ‚ του. Αυτό σημαίνει πως θα Ï€ÏÎπει να λάβετε υπόψη σας τις διαδÏομÎÏ‚ που μποÏεί να ακολουθήσει το Ïομπότ μÎσω των γÏαμμών που εννώνουν τους κόμβους. Μια ενδεικτική πίστα φαίνεται στην παÏακάτω εικόνα.
Î Ïοσοχή, όταν σχεδιάζετε τη στÏατηγική σας, να θυμάστε πως η στÏοφή στον ίδιο κόμβο θεωÏείται κίνηση του Ïομπότ!
10.5 Αντιγραφή-Επικόλληση
ΠεÏιγÏαφή: Έχετε δημιουÏγήσει οÏισμÎνες εντολÎÏ‚ (States) ή συνδυασμοÏÏ‚ συνθηκών (Condition Groups) και θÎλετε να τα χÏησιμοποιήσετε ξανά μÎσα στη στÏατηγική σας; Ο πιο γÏήγοÏος Ï„Ïοπος για το να κάνετε αυτό είναι φυσικά μÎσω της διαδικασίας copy-paste. Το Ï€Ïώτο βήμα είναι να επιλÎξετε τα στοιχεία που επιθυμείτε να αντιγÏάψετε, κÏατώντας πατημÎνο το πλήκτÏο CTR. Έπειτα πατήστε τα πλήκτÏα CTR+C και Î±Ï†Î¿Ï ÎºÎ¬Î½ÎµÏ„Îµ κλικ σε Îνα κενό σημείο στο διάγÏαμμα (λευκό background), πατήστε τα πλήκτÏα CTR+V. Η αντιγÏαφή των στοιχείων θα Îχει πλÎον Ï€Ïαγματοποιηθεί.
Î Ïοσοχή:
- ÎœÎσω αυτής της διαδικασίας θα αντιγÏαφοÏν όλα εκείνα τα επιμÎÏους στοιχεία που αφοÏοÏν τα επιλεγμÎνα στοιχεία σας. Για παÏάδειγμα, εάν μία εντολή πεÏιÎχει μία μετάβαση, τότε αντιγÏάφοντας και επικολλώντας την εντολή, θα αναπαÏαχθεί αυτόματα και η μετάβαση της. Συνεπώς, Ï€ÏÎπει να Ï€ÏοσÎξετε Ï€Î¿Î»Ï Ï€Î¿Î¹Î± στοιχεία επιθυμείτε να κÏατήσετε μετά την επικόλληση.
- Εάν επιλÎξετε πολλά στοιχεία, τότε κατά την επικόλληση όλα τα στοιχεία αναπαÏάγονται γÏαφικά το Îνα πάνω στο άλλο. Θα Ï€ÏÎπει συνεπώς ακολοÏθως να τα τοποθετήσετε στις επιθυμητÎÏ‚ θÎσεις.
- Η αντιγÏαφή – επικόλληση λειτουÏγεί κανονικά αποκλειστικά και μόνο σε μία στÏατηγική. Δεν Ï€ÏÎπει σε καμία πεÏίπτωση να αντιγÏάψετε στοιχεία από μία στÏατηγική για τον Pacman σε στÏατηγική για το φάντασμα και αντιστÏόφως.
10.6 Διαδοχική Χρήση Bonus
ΠεÏιγÏαφή: Όπως Îχει παÏουσιαστεί παÏαπάνω οι εντολÎÏ‚ χÏήσης bonus δεν πεÏιλαμβάνουν συμπεÏιφοÏÎÏ‚, καθώς εκτελοÏνται ακαÏιαία.
Εάν λοιπόν θÎλετε να παÏαμείνετε σε μία εντολή χÏήσης bonus όσο ικανοποιείται μία συνθήκη, τότε και μόνο τότε μποÏείτε να Ï€ÏοσθÎσετε μία μετάβαση η οποία θα ξεκινά και θα καταλήγει στην ίδια εντολή. Μία Ï„Îτοια πεÏίπτωση απεικονίζεται στην ακόλουθη εικόνα.
Î Ïοσοχή, σε αυτή την πεÏίπτωση να μην παÏαλείψετε να θÎσετε σωστÎÏ‚ συνθήκες ελÎγχου, ώστε να μη χÏησιμοποιήσετε καταλάθος όλους τους bonus πόντους σας σε μία εντολή.