Π Α Ν Δ Π Η Σ Ζ Μ Η Ο Π ΑΣ Ρ Χ Ν ΠΟΛΤΣΔΥΝΗΚΖ ΥΟΛΖ ΓΖΜΗΟΤΡΓΗΑ ΠΡΑΚΣΟΡΑ ΣΔΥΝΖΣΖ ΝΟΖΜΟΤΝΖ ΓΗΑ ΠΑΗΥΝΗΓΗ ΣΡΑΣΖΓΗΚΖ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Π Α Ν Δ Π Η Σ Ζ Μ Η Ο Π ΑΣ Ρ Χ Ν ΠΟΛΤΣΔΥΝΗΚΖ ΥΟΛΖ ΓΖΜΗΟΤΡΓΗΑ ΠΡΑΚΣΟΡΑ ΣΔΥΝΖΣΖ ΝΟΖΜΟΤΝΖ ΓΗΑ ΠΑΗΥΝΗΓΗ ΣΡΑΣΖΓΗΚΖ"

Transcript

1 Π Α Ν Δ Π Η Σ Ζ Μ Η Ο Π ΑΣ Ρ Χ Ν ΠΟΛΤΣΔΥΝΗΚΖ ΥΟΛΖ ΣΜΖΜΑ ΖΛΔΚΣΡΟΛΟΓΧΝ ΜΖΥΑΝΗΚΧΝ & ΣΔΥΝΟΛΟΓΗΑ ΤΠΟΛΟΓΗΣΧΝ ΣΟΜΔΑ ΣΖΛΔΠΗΚΟΗΝΧΝΗΧΝ & ΣΔΥΝΟΛΟΓΗΑ ΣΖ ΠΛΖΡΟΦΟΡΗΑ ΔΡΓΑΣΖΡΗΟ ΔΝΤΡΜΑΣΖ ΣΖΛΔΠΗΚΟΗΝΧΝΗΑ ΓΖΜΗΟΤΡΓΗΑ ΠΡΑΚΣΟΡΑ ΣΔΥΝΖΣΖ ΝΟΖΜΟΤΝΖ ΓΗΑ ΠΑΗΥΝΗΓΗ ΣΡΑΣΖΓΗΚΖ ΓΗΠΛΧΜΑΣΗΚΖ ΔΡΓΑΗΑ ΓΗΧΡΓΟΤ ΓΟΤΡΓΗΧΣΖ ΔΠΙΒΛΔΠΩΝ: Κ.ΓΑΡΜΠΑ ΠΑΣΡΑ-ΙΟΤΛΙΟ

2 ΠΗΣΟΠΟΗΖΖ Πηζηνπνηείηαη φηη ε δηπισκαηηθή εξγαζία κε ζέκα: «ΓΖΜΗΟΤΡΓΗΑ ΠΡΑΚΣΟΡΑ ΣΔΥΝΖΣΖ ΝΟΖΜΟΤΝΖ ΓΗΑ ΠΑΗΥΝΗΓΗ ΣΡΑΣΖΓΗΚΖ» Σνπ θνηηεηή ηνπ ηκήκαηνο Ηιεθηξνιφγσλ Μεραληθψλ & Σερλνινγίαο Τπνινγηζηψλ: Γοςπγιώηη Γιώπγος (Α.Μ. 6231) Παξνπζηάζηεθε δεκφζηα θαη εμεηάζηεθε ζην Σκήκα Ηιεθηξνιφγσλ Μεραληθψλ & Σερλνινγίαο Τπνινγηζηψλ ζηηο 18/7/11 Ο Δπηβιέπσλ Ο Γηεπζπληήο ηνπ Σνκέα Κ. γάπμπαρ Ν. Φακωηάκηρ Δπ. Καθηγηηήρ Καθηγηηήρ 2

3 ΣΗΣΛΟ: Γεκηνπξγία πξάθηνξα ηερλεηήο λνεκνζχλεο γηα παηρλίδη ζηξαηεγηθήο ΤΓΓΡΑΦΔΑ: Γηψξγνο Γνπξγηψηεο (Α.Μ. 6231) ΠΔΡΗΛΖΦΖ: ηελ παξνχζα δηπισκαηηθή εξγαζία παξνπζηάδεηαη ε δεκηνπξγία ελφο πξάθηνξα Σερλεηήο Ννεκνζχλεο (AI agent) πνπ κπνξεί λα παίδεη ην απιφ παηρλίδη ζηξαηεγηθήο Ναπκαρία ελαληίνλ ελφο αλζξψπνπ-παίρηε. Η εξγαζία ζπκπεξηιακβάλεη ηελ αλάπηπμε δνκψλ γηα ηελ αλαπαξάζηαζε ηεο θαηάζηαζεο ηνπ παηρληδηνχ ελφο γχξνπ (κηαο παξηίδαο), ην game engine πνπ πξνσζεί ην παηρλίδη ζε θάζε γχξν, ην API κεηαμχ AI θαη κεραλήο θαη έλαλ AI παίρηε. Αξρηθά δεκηνπξγείηαη ν ράξηεο πάλσ ζηνλ νπνίν ζα παηρηεί ην παηρλίδη. Ο ράξηεο πεξηιακβάλεη ζεκεία ζάιαζζαο φπνπ ζα γίλεη ε ηνπνζέηεζε ησλ πινίσλ αιιά θαη λεζηά. ηε ζπλέρεηα ν δηαηηεηήο, ν νπνίνο έρεη ζηε γλψζε ηνπ ηνπο θαλφλεο, ζπληνλίδεη ην παηρλίδη. Ο πξάθηνξαο έρεη επηιεγεί ψζηε λα έρεη αξθεηά επίπεδα επθπΐαο ζην παηρλίδη ηνπ. Σέινο παξνπζηάδεηαη ελδεηθηηθά κηα αλαπαξάζηαζε κεηαμχ δχν πξαθηφξσλ πνπ παίδνπλ αληίπαινη ψζηε λα θαλεί ε νξζή ιεηηνπξγία ηνπο. Ο θψδηθαο είλαη γξακκέλνο ζηελ γιψζζα αληηθεηκελνζηξαθνχο πξνγξακκαηηζκνχ JAVA, κε ηελ νπνία εχθνια έγηλε ε αλαπαξάζηαζε ηεο αιιειεπίδξαζεο κεηαμχ ησλ αληηθεηκέλσλ ηνπ ζπζηήκαηφο καο. ABSTRACT: This diploma dissertation presents the creation of an Articial Intelligence agent who can play the simple strategy game Battleship against a human player. The dissertation includes a development of structures for the representation of the state of one round of the game, the game engine which promotes the game in each round, the API (application-programming-interface) between AI agent and computer and an AI player. At first the map in which the game will be played, is created. The map includes points of sea in which the boats and the islands will be placed. Afterwards the referee, who has in his knowledge the rules, coordinates the game. The agent has been selected so that he has enough levels of intelligence in his game. Finally is presented indicatively a representation between two agents who play against each other so as to show their correct operation. The code was written in object-oriented programming language JAVA, with which easily programmed the representation of interaction between the objects of our system. 3

4 ΠΡΟΛΟΓΟ Η εξγαζία απηή εθπνλήζεθε θαηά ην ρξνληθφ δηάζηεκα Η πινπνίεζε ηεο άξρηζε ηνλ επηέκβξην ηνπ 2010 θαη πξαγκαηνπνηήζεθε θπξίσο εμ απνζηάζεσο απφ ην ζπίηη ηνπ γξάθνληα ζηελ Πάηξα, ππφ ηελ επίβιεςε ηνπ εξεπλεηή θπξίνπ Γ. Παπαδφπνπινπ θαη ηνπ θαζεγεηή θπξίνπ Κ. γάξκπα. Αξθεηέο ηδέεο γηα ηελ αλάπηπμε δνκψλ ηεο εξγαζίαο ζπιιήθζεθαλ κε ηελ ζπλεξγαζία ηνπ θπξίνπ Γ. Παπαδφπνπινπ ζην εξγαζηήξην Δλζχξκαηνπ Σειεπηθνηλσλίαο ηνπ ηκήκαηνο Ηιεθηξνιφγσλ Μεραληθψλ & Σερλνινγίαο Τπνινγηζηψλ ηνπ Παλεπηζηεκίνπ Παηξψλ, φπσο θαη αξθεηέο δηνξζψζεηο θαη βειηηψζεηο επί ηνπ θψδηθα. Λφγσ ηεο εθηεηακέλεο ελαζρφιεζεο κε ην δήηεκα, ζηνλ θψδηθα ζπκπεξηιακβάλνληαη αξθεηέο κέζνδνη νη νπνίεο είηε ζηελ πνξεία εγθαηαιείθηεθαλ, είηε εκπινπηίζηεθαλ κε θαηλνχξγηα θνκκάηηα θψδηθα γηα λα βειηησζεί ε ιεηηνπξγία ηνπ πξνγξάκκαηνο (κε ηα απαξαίηεηα ζρφιηα βεβαίσο). Έηζη δηαθαίλεηαη φιε ε πνξεία πνπ πξαγκαηνπνηήζεθε κέρξη ηελ νινθιήξσζε ηεο εξγαζίαο, πξάγκα ην νπνίν βνεζάεη φζνπο πηζαλφλ αζρνιεζνχλ κε αληίζηνηρν δήηεκα ζην κέιινλ, αιιά θαη φζνπο ζέινπλ λα βειηηζηνπνηήζνπλ ηελ ιεηηνπξγία ηνπ πξνγξάκκαηνο. Αθφκα έηζη παξνπζηάδνληαη θαη νη δπζθνιίεο πνπ παξνπζηάζηεθαλ θαηά ηελ δηάξθεηα ηεο ζπγγξαθήο ηνπ θψδηθα θαη πσο μεπεξάζηεθαλ απηέο. Η ρξνληθή δηάξθεηα πινπνίεζεο ηεο εξγαζίαο ήηαλ πεξίπνπ 11 κήλεο, κέρξη θαη ηελ παξνπζίαζε ηεο, ρσξίο λα ζπκπεξηιακβάλεηαη ζ απηφ ε απαξαίηεηε κειέηε πνπ πξαγκαηνπνηήζεθε θπξίσο ζε δεηήκαηα πξνγξακκαηηζκνχ, αιιά θαη Σερλεηήο Ννεκνζχλεο. 4

5 ΠΙΝΑΚΑ ΠΕΡΙΕΧΟΜΕΝΩΝ 1. ΔΗΑΓΧΓΖ 1.1 Σο θζμα τησ διπλωματικήσ και ο ςτόχοσ τησ Χρηςιμότητα τησ εφαρμογήσ Πρακτικζσ δυςκολίεσ και πολυπλοκότητεσ του θζματοσ Παρόμοιεσ εργαςίεσ / προςεγγίςεισ και ςχετικζσ πληροφορίεσ ΓΔΝΗΚΔ ΓΝΧΔΗ 2.1 Πράκτορασ Σεχνητήσ Νοημοςφνησ Ειςαγωγή Ορθολογικότητα Περιβάλλοντα Εργαςίασ Θ δομή των πρακτόρων Παιχνίδι ςτρατηγικήσ Ναυμαχία Αντικειμενοςτρεφήσ προγραμματιςμόσ JAVA Επιλογή γλώςςασ προγραμματιςμοφ Περιβάλλον ανάπτυξησ λογιςμικοφ CRC κάρτεσ για την αλληλεπίδραςη αντικειμζνων Ζ ΔΦΑΡΜΟΓΖ 3.1 Βαςικζσ κλάςεισ τησ κατάςταςησ μιασ παρτίδασ Αναπαράςταςη τησ κατάςταςησ ενόσ γφρου του παιχνιδιοφ Δημιουργία του χάρτη του παιχνιδιοφ Δημιουργία χάρτη από την κλάςη Map() Σοποθζτηςη νηςιών ςτον χάρτη από την κλάςη Map() Σοποθζτηςη ςτόλου από τουσ παίχτεσ και οι κανόνεσ του παιχνιδιοφ Επικοινωνία διαιτητή και παιχτών για την τοποθζτηςη ςτόλου Σοποθζτηςη του ςτόλου από τουσ παίχτεσ Βαςικόσ κανόνασ του παιχνιδιοφ για την τοποθζτηςη των πλοίων Εκτφπωςη οθόνησ μζχρι αυτό το ςημείο Ζλεγχοσ τησ ροήσ του παιχνιδιοφ Σρόποσ διεξαγωγήσ του παιχνιδιοφ και κλήςη τησ μεθόδου ControlTheGame() Θ μζθοδοσ ControlTheGame()

6 3.6 Ο παίχτησ Θ διεπαφή Player Ο παίχτησ RandomPlayer Ο παίχτησ StupidPlayer Ο παίχτησ SmartPlayer Ο παίχτησ GeniousPlayer ΠΑΡΑΓΔΗΓΜΑΣΑ ΥΡΖΖ 4.1 Διαδικαςία εγκατάςταςησ Εκτζλεςη του προγράμματοσ ΓΔΝΗΚΔ ΜΔΣΡΖΔΗ 5.1 Ειςαγωγή Πειράματα που ζχουν γίνει με το αποτζλεςμα τησ εργαςίασ ΤΜΠΔΡΑΜΑΣΑ & ΜΔΛΛΟΝΣΗΚΔ ΒΔΛΣΗΧΔΗ 6.1 Πλεονεκτήματα και περιοριςμοί τησ εργαςίασ Μελλοντικζσ βελτιώςεισ Μπορεί ο πράκτορασ να παίξει άλλο παιχνίδι εκτόσ τησ Ναυμαχίασ; ΠΑΡΑΡΣΘΜΑ Α - Θ ΚΛΑΘ REFEREE ΠΑΡΑΡΣΘΜΑ Β - Θ ΚΛΑΘ POINT ΠΑΡΑΡΣΘΜΑ Γ - Θ ΚΛΑΘ MAP ΠΑΡΑΡΣΘΜΑ Δ - Θ INTERFACE PLAYER ΚΑΙ ΟΙ ΜΕΘΟΔΟΙ ΠΟΤ ΧΡΘΙΜΟΠΟΙΟΤΝ ΟΙ ΠΑΙΧΣΕ ΜΕ ΟΜΟΙΟ ΣΡΟΠΟ ΠΑΡΑΡΣΘΜΑ Ε - Θ ΚΛΑΘ RANDOMPALYER ΠΑΡΑΡΣΘΜΑ Η - Θ ΚΛΑΘ STUPIDPLAYER ΠΑΡΑΡΣΘΜΑ Θ - Θ ΚΛΑΘ SMARTPLAYER ΠΑΡΑΡΣΘΜΑ Θ - Θ ΚΛΑΘ GENIOUSPLAYER ΒΙΒΛΙΟΓΡΑΦΙΑ

7 ΚΔΦΑΛΑΗΟ 1 ΔΗΑΓΧΓΖ 1.1 Σο θέμα ηηρ διπλωμαηικήρ και ο ζηόσορ ηηρ Σν ζέκα απηήο ηεο δηπισκαηηθήο εξγαζίαο είλαη ε δεκηνπξγία ελφο Πξάθηνξα Σερλεηήο Ννεκνζχλεο (AI agent) πνπ λα κπνξεί λα παίδεη έλα απιφ παηρλίδη ζηξαηεγηθήο ελαληίνλ ελφο αλζξψπνπ παίρηε. πγθεθξηκέλα επηιέρηεθε ην παηρλίδη Ναπκαρία ιφγσ ηεο απιφηεηαο πνπ παξνπζηάδεη ζηελ ζηξαηεγηθή πνπ ζα αθνινπζήζεη ν θάζε παίρηεο γηα λα θηάζεη ζηελ λίθε, κε ηελ έλλνηα φηη ν θάζε παίρηεο δελ γλσξίδεη ην παίμηκν ηνπ αληηπάινπ θαη έηζη ζρεδηάδεη ηελ ζηξαηεγηθή ηνπ αλεμάξηεηα απφ ηελ ζηξαηεγηθή ηνπ αληηπάινπ. Ο ζηφρνο ηψξα ηεο ζπγθεθξηκέλεο εξγαζίαο είλαη λα κπνξέζνπκε λα αλαπαξαζηήζνπκε ηελ θαηάζηαζε ηνπ παηρληδηνχ ελφο γχξνπ, αιιά θαη ηελ αλαπαξάζηαζε κηαο νιφθιεξεο παξηίδαο κεηαμχ δπν παηρηψλ (Πξαθηφξσλ Σερλεηήο Ννεκνζχλεο). Με ηελ αλάπηπμε ζπγθεθξηκέλσλ δνκψλ δεκηνπξγνχληαη νη ζπληειεζηέο ηνπ παηρληδηνχ, δειαδή ν δηαηηεηήο ηνπ παηρληδηνχ, ν ράξηεο θαη νη παίρηεο. Απηφ πνπ καο ελδηαθέξεη θπξίσο είλαη λα θαλεί ε ζπλεξγαζία ησλ ζπληειεζηψλ απηψλ ζε έλαλ γχξν ηνπ παηρληδηνχ, δειαδή ε αιιεινπρία κελπκάησλ πνπ ζηέιλεη ν έλαο ζηνλ άιινλ (π.ρ. Γηαηηεηήο : «Παίρηε 1 είλαη ε ζεηξά ζνπ λα παίμεηο»), φπσο αθξηβψο ζπκβαίλεη θαη ζην πξαγκαηηθφ παηρλίδη Ναπκαρία. Δπίζεο καο ελδηαθέξεη ε ζηξαηεγηθή ηνπ παίρηε, δειαδή ε δεκηνπξγία ελφο αξθεηά έμππλνπ παίρηε ν νπνίνο ζα ζθέθηεηαη φπσο έλαο θνηλφο άλζξσπνο γηα λα θηάζεη ζηελ λίθε. Όζνλ αθνξά ηελ δνκή ηεο δηπισκαηηθήο εξγαζίαο απηή ρσξίδεηαη ζε 6 ζπλνιηθά θεθάιαηα ηα νπνία είλαη : 1. Διζαγωγή 2. Γενικέρ Γνώζειρ 3. Ζ Δθαπμογή 4. Παπαδείγμαηα σπήζηρ 5. Γενικέρ Μεηπήζειρ 6. ςμπεπάζμαηα & Μελλονηικέρ βεληιώζειρ Δπίζεο ζην ηέινο ηεο εξγαζίαο πεξηιακβάλεηαη παξάξηεκα ην νπνίν πεξηέρεη ηνλ θψδηθα πνπ αλαπηχρζεθε αιιά θαη ζρεηηθή βηβιηνγξαθία γηα ηελ δηεπθφιπλζε ηνπ αλαγλψζηε. 7

8 1.2 Υπηζιμόηηηα ηηρ εθαπμογήρ Η ζπγθεθξηκέλε εθαξκνγή είλαη ρξήζηκε ηφζν ζηνλ ηνκέα ηεο ςπραγσγίαο φζν θαη γηα δηδαθηηθνχο ιφγνπο. Αλαπαξηζηά πιήξσο έλα παηρλίδη Ναπκαρίαο, νπφηε ν θαζέλαο κπνξεί λα ην ρξεζηκνπνηήζεη γηα λα παίμεη αληίπαινο κε ηνλ αξθεηά επθπή Πξάθηνξα πνπ δεκηνπξγήζακε θαη λα δνθηκάζεη ηηο ηθαλφηεηεο ηνπ ζ απηφ ην παηρλίδη. Δπηπιένλ κπνξεί λα ρξεζηκνπνηεζεί γηα λα εηζάγεη κειινληηθνχο κειεηεηέο ηεο Σερλεηήο Ννεκνζχλεο ζηελ ηδέα ηνπ Δπθπή Πξάθηνξα θαη ζηελ κειέηε ηνπ πξνβιήκαηνο ηεο δεκηνπξγίαο πξαθηφξσλ πνπ είλαη επθπείο κε ηελ έλλνηα λα πξαγκαηνπνηνχλ ηελ θαιχηεξε δπλαηή ελέξγεηα ζε κηα θαηάζηαζε. Λφγσ ηεο θχζεο ηνπ παηρληδηνχ ηεο Ναπκαρίαο (ε ζηξαηεγηθή ηνπ θάζε παίρηε δελ εμαξηάηαη απφ ην παίμηκν ηνπ αληηπάινπ), ε ζπγθεθξηκέλε εθαξκνγή είλαη ε απινχζηεξε θαη ε γη απηφ ε πην θαηάιιειε ζην λα θέξεη ηνπο κειεηεηέο ηεο Σερλεηήο Ννεκνζχλεο ζε κηα πξψηε επαθή κε ηελ ζεσξία παηγλίσλ (αληαγσληζηηθά πνιππξαθηνξηθά πεξηβάιινληα). Σα παηρλίδηα παξνπζηάδνπλ εμαηξεηηθφ ελδηαθέξνλ θαη κεγάιε ρξεζηκφηεηα γηαηί, φπσο θαη ν πξαγκαηηθφο θφζκνο, απαηηνχλ ηελ ηθαλφηεηα λα παίξλεηαη θάπνηα απφθαζε αθφκα θαη φηαλ ν ππνινγηζκφο ηεο βέιηηζηεο απφθαζεο είλαη αλέθηθηνο. Η ζεσξία παηγλίσλ είλαη πνιχ πνιχπινθε θαη ρξεζηκνπνηείηαη ζε πνιχ ζνβαξέο πεξηπηψζεηο ιήςεο απνθάζεσλ, φπσο νη δηαδηθαζίεο πηψρεπζεο, ή δεκνπξάηεζεο αζχξκαησλ θαζκάησλ ζπρλνηήησλ, ε αλάπηπμε πξντφλησλ θαη νη απνθάζεηο ηηκνιφγεζεο θαη ε εζληθή άκπλα- πεξηπηψζεηο πνπ αθνξνχλ εθαηνληάδεο ρηιηάδεο δσέο. Γη απηφ ε κειέηε ηεο ζπγθεθξηκέλεο εθαξκνγήο είλαη ηθαλή λα αλαδείμεη ηελ ρξεζηκφηεηα θαη ηελ πνιππινθφηεηα ηεο δεκηνπξγίαο ηέηνησλ ζπζηεκάησλ αιιά είλαη θαη έλα αξθεηά ελδηαθέξνλ θαη απιφ παξάδεηγκα ζρεδηαζκνχ επθπψλ ζπζηεκάησλ. 1.3 Ππακηικέρ δςζκολίερ και πολςπλοκόηηηερ ηος θέμαηορ Καηά ηελ πινπνίεζε ηεο εθαξκνγήο παξνπζηάζηεθαλ δηάθνξεο πξαθηηθέο δπζθνιίεο ζε αξθεηά πνιχπινθα ζέκαηα. Καη αξρήλ ζηελ πηνζέηεζε ησλ θαλφλσλ ηεο Ναπκαρίαο, θαη απηφ γηαηί ζην δηαδίθηπν αιιά θαη ζην επηηξαπέδην παηρλίδη νη θαλφλεο δηαθνξνπνηνχληαη απφ παηρλίδη ζε παηρλίδη. Σν δήηεκα ζα αλαιπζεί εθηελέζηεξα θαη ζηε ζπλέρεηα ηεο εξγαζίαο. ηε ζπλέρεηα έπξεπε λα κειεηεζνχλ βαζηθέο γλψζεηο ηεο γιψζζαο πξνγξακκαηηζκνχ JAVA θαη ρξεζηκνπνίεζεο ηεο πιαηθφξκαο ECLIPSE φπνπ θαη έγηλε ε δεκηνπξγία ηεο εθαξκνγήο. Αθνχ ιχζεθαλ απηά ηα δεηήκαηα, καο απαζρφιεζαλ πξνγξακκαηηζηηθά θπξίσο πξνβιήκαηα πνπ έρνπλ λα θάλνπλ κε ηελ δεκηνπξγία κεηαβαιιφκελνπ ράξηε θαη ζηφινπ, ηελ ζσζηή επηθνηλσλία κεηαμχ ησλ ζπληειεζηψλ ηνπ παηρληδηνχ (θιάζεσλ ζην πξφγξακκα καο), ε ζσζηή αλαπαξάζηαζε κηαο παξηίδαο ελφο παηρληδηνχ θ.α. ε απηφ ην ζεκείν έπξεπε λα απαληεζνχλ εξσηήκαηα φπσο : 1. Πνην αληηθείκελν είλαη ππεχζπλν γηα κέξνο ηεο φιεο ζπκπεξηθνξάο; (αλάζεζε ζπκπεξηθνξάο ζε θιάζεηο) 8

9 2. Πνηεο ζπλεξγαζίεο κεηαμχ αληηθεηκέλσλ είλαη απαξαίηεηεο γηα ηελ πινπνίεζε ηεο ζπλνιηθήο ζπκπεξηθνξάο ηεο εθαξκνγήο; (ηη κελχκαηα θαη ππφ πνηεο ζπλζήθεο) Η ζπγθεθξηκέλε δπζθνιία καο απαζρφιεζε αξθεηά θαη μεπεξάζηεθε κε ηελ κειέηε θαη ηελ ζσζηή εθαξκνγή ηεο ηερληθήο ησλ CRC CARDS. Σερληθή ε νπνία επηηξέπεη ηελ θαηαλφεζε θαη εχθνιε πινπνίεζε ηεο επηθνηλσλίαο θαη ζπλεξγαζίαο κεηαμχ ησλ αληηθεηκέλσλ ηνπ ζπζηήκαηνο καο θαη είλαη ζεκειηψδεο γηα ηελ αληηθεηκελνζηξεθή πξνζέγγηζε ζηνλ πξνγξακκαηηζκφ. Αξθεηά καο απαζρφιεζε θαη ε ζηξαηεγηθή ηνπ παίρηε - πξάθηνξα. Γειαδή ην πψο ζα αλαπηχμνπκε θαηάιιειεο κεζφδνπο πνπ λα θάλνπλ ηνλ παίρηε καο φιν θαη πην επθπή, ψζηε ε ζηξαηεγηθή ηνπ λα κελ δηαθέξεη θαζφινπ απφ απηή ελφο αλζξψπνπ. Η επίιπζε φισλ απηψλ ησλ δπζθνιηψλ ζηελ πξάμε δηθαηνινγεί ηελ αθηέξσζε ηφζεο δνπιείαο ζ απηφ ην ζέκα. 1.4 Παπόμοιερ επγαζίερ / πποζεγγίζειρ και ζσεηικέρ πληποθοπίερ Λφγσ ηεο ηξνκεξήο εμάπισζεο ηνπ ζπγθεθξηκέλνπ παηρληδηνχ, ζην δηαδίθηπν κπνξεί λα βξεη θαλείο πιεζψξα παξφκνησλ εθαξκνγψλ, απφ ζρεηηθά αηειείο εθαξκνγέο κέρξη θαη πιήξσο νινθιεξσκέλεο εθαξκνγέο κε ηελ ππνζηήξημε γξαθηθψλ. Παξαζέηνπκε παξαθάησ ηηο πην δεκνθηιείο : Αο κελ μερλάκε θαη ηελ χπαξμε ηνπ θιαζζηθνχ επηηξαπέδηνπ παηρληδηνχ Ναπκαρία πνπ είλαη αξθεηά δηαδεδνκέλν. Δπίζεο ζην δηαδίθηπν έρνπλ «αλεβάζεη» αξθεηνί ρξήζηεο θαη ηνλ θψδηθα πνπ έγξαςαλ γηα ηελ πινπνίεζε ηεο εθαξκνγήο, φπσο νη εμήο : ip.java.html Η εθαξκνγή ζηελ νπνία ν πξάθηνξαο πνπ παίδεη ην παηρλίδη είλαη ν επθπέζηεξνο είλαη ζην παξαθάησ link, θαη ε ζπκπεξηθνξά ηνπ θπξηνιεθηηθά δελ δηαθέξεη απφ απηήλ ελφο αλζξψπνπ-παίρηε. 9

10 Καη ην πην εληππσζηαθφ πνπ εληνπίζακε κεηά απφ ζρεηηθή κειέηε είλαη φηη ιφγσ ηεο πιεζψξαο ρξεζηψλ πνπ αζρνιήζεθαλ κε ην ζέκα, ππάξρεη κέρξη θαη ζρεηηθφ forum φπνπ δηάθνξνη ρξήζηεο πνπ αλαπηχζζνπλ παξφκνηα εθαξκνγή γηα ηελ Ναπκαρία παξαζέηνπλ δπζθνιίεο πνπ ζπλαληνχλ θαη βνεζνχλ άιινπο ζηελ επίιπζε ηέηνησλ δπζθνιηψλ : απηφ ην ζεκείν πξέπεη λα ηνληζηεί φηη ζηελ παξνχζα δηπισκαηηθή εξγαζία δελ πάξζεθε θαλέλα ηκήκα θψδηθα απφ θακία άιιε εθαξκνγή θαη φηη ε ζχιιεςε ηνπ πξνγξάκκαηνο, ν ζρεδηαζκφο ηνπ αιιά θαη ε πινπνίεζε ηνπ απνηειεί απνθιεηζηηθά πξντφλ ηνπ γξάθνληα θνηηεηή ππφ ηελ επίβιεςε ηνπ εξεπλεηή θπξίνπ Γ. Παπαδφπνπινπ θαη ηνπ θαζεγεηή θπξίνπ Κ. γάξκπα. Βεβαίσο ππάξρνπλ θαη πνιιέο άιιεο παξφκνηεο εθαξκνγέο πνπ έρνπλ λα θάλνπλ κε ηελ κειέηε δηαθνξεηηθψλ παηρληδηψλ ζηξαηεγηθήο, φπσο ην ζθάθη, θαη κάιηζηα ππάξρνπλ θαη αξθεηέο αλάινγεο δηπισκαηηθέο εξγαζίεο απφ ηελ Οκάδα Σερλεηήο Ννεκνζχλεο ηνπ εξγαζηεξίνπ Δλζχξκαηνπ Σειεπηθνηλσλίαο ηνπ ηκήκαηνο Ηιεθηξνιφγσλ Μεραληθψλ & Σερλνινγίαο Τπνινγηζηψλ ηνπ Παλεπηζηεκίνπ Παηξψλ. 10

11 ΚΔΦΑΛΑΗΟ 2 ΓΔΝΗΚΔ ΓΝΧΔΗ 2.1 Ππάκηοπαρ Σεσνηηήρ Νοημοζύνηρ Δηζαγσγή Απφ ηα πξψηα ρξφληα ηεο χπαξμεο ηνπ, ν άλζξσπνο πξνζπαζεί λα θαηαλνήζεη ην πψο ζθέθηεηαη, πσο δειαδή αληηιακβάλεηαη ηνλ θφζκν ζηνλ νπνίν δεη, πσο ηνλ θαηαλνεί, ηη ζπκπεξάζκαηα βγάδεη θαη πσο ηα ρξεζηκνπνηεί απηά γηα λα δξάζεη θαη λα ρεηξηζηεί ηνλ θφζκν απηφλ. Όιε ε γλψζε πνπ ζπζζσξεχηεθε απφ απηήλ ηελ δηαδηθαζία θαηαλφεζεο ηεο ζθέςεο ηνπ αλζξψπνπ, νδήγεζε ζηελ αλάπηπμε ηνπ επηζηεκνληθνχ πεδίνπ ηεο ηερλεηήο λνεκνζχλεο. Η ηερλεηή λνεκνζχλε επηρεηξεί φρη κφλν λα θαηαλνήζεη αιιά θαη λα θαηαζθεπάζεη λνήκνλεο νληφηεηεο. Δπεηδή κάιηζηα ε ηερλεηή λνεκνζχλε αζρνιείηαη θπξίσο κε ηελ δξάζε ησλ νληνηήησλ απηψλ, κειεηνχκε απηήλ ηελ επηζηήκε σο ηελ ζρεδίαζε πξαθηφξσλ. Αο εμεγήζνπκε φκσο ηψξα ηη αθξηβψο είλαη ν πξάθηνξαο. Μειεηψληαο ηελ ζρεηηθή βηβιηνγξαθία πάλσ ζην επηζηεκνληθφ απηφ πεδίν ζπλαληάκε αξθεηνχο δηαθνξεηηθνχο νξηζκνχο. χκθσλα κε ηνπο Russel θαη Norvig «πξάθηνξαο είλαη νηηδήπνηε κπνξεί λα αληηιεθζεί ην πεξηβάιινλ ηνπ κέζσ αηζζεηήξσλ θαη λα αληηδξάζεη πάλσ ζην πεξηβάιινλ κέζσ κεραληζκώλ δξάζεο». Καηά ηνλ Maes, πνπ δίλεη έκθαζε ζηελ απηνλνκία, «νη πξάθηνξεο είλαη ππνινγηζηηθά ζπζηήκαηα πνπ δξνπλ ζε έλα πνιύπινθν πεξηβάιινλ, αληηιακβάλνληαη θαη δξνπλ απηόλνκα πάλσ ζ απηό, πεηπραίλνληαο έηζη έλα ζύλνιν από ζηόρνπο γηα ηνπο νπνίνπο έρνπλ θαηαζθεπαζηεί». Ο Hayes θαη Roth δίλνπλ έκθαζε ζηε ζπιινγηζηηθή θαη ζεσξνχλ φηη «νη επθπείο πξάθηνξεο θάλνπλ ζπλερψο ηηο εμήο ηξεηο ιεηηνπξγίεο: (α) αληηιακβάλνληαη ηηο δπλακηθέο ζπλζήθεο ηνπ πεξηβάιινληνο, (β) δξνπλ πάλσ ζην πεξηβάιινλ ψζηε λα ην αιιάμνπλ θαη (γ) ζπιινγίδνληαη ψζηε λα εξκελεχζνπλ απηά πνπ αληηιακβάλνληαη, λα ιχζνπλ πξνβιήκαηα, λα ζπκπεξάλνπλ θαη λα θαζνξίζνπλ ηε δξάζε ηνπο». Σέινο, ζχκθσλα κε ηνλ Coen «ινγηζκηθνί πξάθηνξεο είλαη πξνγξάκκαηα πνπ δηελεξγνχλ δηάινγν, δηαπξαγκαηεχνληαη θαη ζπληνλίδνπλ ηε ξνή πιεξνθνξηψλ». Οη πξάθηνξεο πνπ ρξεζηκνπνηνχκε ζηνπο ππνινγηζηέο νλνκάδνληαη νξζνινγηθνί πξάθηνξεο, κνηάδνπλ αξθεηά κε ηα πξνγξάκκαηα ππνινγηζηψλ, αιιά έρνπλ κηα πνιχ ζεκαληηθή δηαθνξά, έρνπλ ηελ ηθαλφηεηα λα ζθέθηνληαη. Με ηελ πξφνδν πνπ ζπληειέζηεθε κε ην πέξαζκα ησλ ρξφλσλ νη νξζνινγηθνί πξάθηνξεο κεηαηξάπεθαλ ζηνπο επθπείο πξάθηνξεο νη νπνίνη ηδαληθά πξαγκαηνπνηνχλ ηελ θαιχηεξε δπλαηή ελέξγεηα ζε θάζε θαηάζηαζε, δξνχλε δειαδή κε επθπΐα. Ση ζεκαίλεη φκσο απηφ; Πσο κπνξνχκε λα κεηξήζνπκε αλ κηα πξάμε είλαη επθπήο ή φρη; ην εξψηεκα απηφ ζα κπνξνχζαλ λα δνζνχλ εθαηνληάδεο δηαθνξεηηθέο απαληήζεηο, νη πεξηζζφηεξεο απφ ηηο νπνίεο ζα επαθίνληαλ κάιινλ ζηελ θαιή ζέιεζε ησλ πξαθηφξσλ παξά ζηελ αληηθεηκεληθή αιήζεηα. Όκσο νη επηζηήκνλεο ηεο 11

12 ηερλεηήο λνεκνζχλεο απέθπγαλ επηκειψο απηήλ ηελ παγίδα θαη αληηθαηέζηεζαλ ηελ επθπΐα κε ηελ νξζνινγηθφηεηα. Έηζη ν επθπήο πξάθηνξαο ζα πξέπεη πάληνηε λα δξα νξζνινγηθά. Γηα λα γξάςνπκε ηψξα έλα πξφγξακκα πξάθηνξα ρξεηαδφκαζηε ηελ πιεξνθνξία απφ ηνπο αηζζεηήξεο θάζε ρξνληθή ζηηγκή. Απηέο ηηο αληηιήςεηο ηηο θξαηάκε ζε έλα πιήξεο ηζηνξηθφ ρξνληθά ηαμηλνκεκέλν γηα λα απεηθνλίζνπκε θάζε αθνινπζία αληηιήςεσλ ζε ελέξγεηεο. Έηζη δεκηνπξγνχκε ηελ ζπλάξηεζε πξάθηνξα θαη ηελ πινπνηνχκε ζε έλαλ ππνινγηζηή κε ην πξφγξακκα πξάθηνξα. Η έλλνηα ηνπ πξάθηνξα κπνξεί λα εμεηαζηεί απφ δηαθνξεηηθέο ζθνπηέο. ην ζεσξεηηθφ θνκκάηη ηεο ηερλεηήο λνεκνζχλεο ζεσξνχληαη επθπείο νληφηεηεο, ελψ ζην πξαθηηθφ ηνπ αληηθεηκελνζηξεθνχο πξνγξακκαηηζκνχ πνπ ρξεζηκνπνηνχκε, ζεσξνχληαη αληηθείκελα (θιάζεηο) Οξζνινγηθόηεηα Δίδακε ζηελ πξνεγνχκελε ελφηεηα φηη ε νξζνινγηθφηεηα ζηνπο πξάθηνξεο έρεη λα θάλεη κε ηελ ηθαλφηεηα ηνπο λα ζθέθηνληαη, ζε αληίζεζε κε ηα πξνγξάκκαηα ππνινγηζηψλ πνπ απιά εθηεινχλ εληνιέο. Γειαδή ζα ιέγακε φηη έλαο νξζνινγηθφο πξάθηνξαο είλαη έλαο πξάθηνξαο πνπ ελεξγεί έηζη ψζηε λα επηηπγράλεη ην θαιχηεξν απνηέιεζκα ή, φηαλ ππάξρεη αβεβαηφηεηα, ην θαιχηεξν αλακελφκελν απνηέιεζκα. Η κειέηε ηεο ηερλεηήο λνεκνζχλεο σο ζρεδίαζεο νξζνινγηθψλ πξαθηφξσλ είλαη: πην γεληθή απφ ηελ πξνζέγγηζε πνπ βαζίδεηαη ζηνπο λφκνπο ηεο ζθέςεο «επθνιφηεξε» απφ ηηο πξνζεγγίζεηο πνπ βαζίδνληαη ζηελ αλζξψπηλε ζθέςε ή δξάζε Γηα λα κεηξήζνπκε ηελ απφδνζε ελφο νξζνινγηθνχ πξάθηνξα, δειαδή ην θαηά πφζν απηφο επηηπγράλεη ην θαιχηεξν απνηέιεζκα, εμεηάδνπκε ην ηη ζέινπκε λα θάλεη θαη φρη πσο ζα ην θάλεη. Μαο ελδηαθέξεη επνκέλσο ε επίδξαζε ηνπ ζην πεξηβάιινλ θαη φρη ε ζπκπεξηθνξά ηνπ. Με βάζε απηήλ ηελ πξνζέγγηζε, ν πην νινθιεξσκέλνο νξηζκφο ηνπ νξζνινγηθνχ πξάθηνξα δίλεηαη απφ ην ζχγγξακκα «Σερλεηή Ννεκνζχλε Μηα ζχγρξνλε πξνζέγγηζε (2003)» ησλ Stuart Russel θαη Peter Norvig : «Γηα θάζε δπλαηή αθνινπζία αληηιήςεσλ, έλα νξζνινγηθόο πξάθηνξαο ζα πξέπεη λα επηιέγεη κηα ελέξγεηα πνπ αλακέλεηαη λα κεγηζηνπνηήζεη ην κέηξν απόδνζεο ηνπ, κε δεδνκέλεο ηηο καξηπξίεο πνπ παξέρνληαη από ηελ αθνινπζία αληηιήςεσλ θαη ηελ νπνηαδήπνηε ελζσκαησκέλε γλώζε πνπ έρεη ν πξάθηνξαο.» Αλαθέξακε πξνεγνπκέλσο φηη ν νξζνινγηθφο πξάθηνξαο ελεξγεί έηζη ψζηε λα επηηπγράλεη ην θαιχηεξν αλακελφκελν απνηέιεζκα ζε πεξίπησζε αβεβαηφηεηαο. Απηφ είλαη ινγηθφ απφ ηελ ζηηγκή πνπ έλαο πξάθηνξαο δελ κπνξεί λα ηα γλσξίδεη φια. πγθεληξψλεη κέζσ ησλ αηζζεηήξσλ αληηιήςεηο απφ ην πεξηβάιινλ ηνπ θαη κε βάζε απηέο αιιά θαη ηνλ ζηφρν πνπ ηνπ έρνπκε ζέζεη επηιέγεη ηηο ελέξγεηεο ηνπ. Με ιίγα ιφγηα δελ κπνξεί λα παίξλεη πάληα ηηο θαιχηεξεο δπλαηέο απνθάζεηο απφ ηελ ζηηγκή πνπ δελ κπνξεί λα γλσξίδεη ηα πάληα γηα ην πεξηβάιινλ ηνπ, παξά κφλν φηη 12

13 γλψζε πάξεη απφ ηνπο αηζζεηήξεο. Σν παξαθάησ ραξαθηεξηζηηθφ παξάδεηγκα μεθαζαξίδεη απηήλ ηελ αβεβαηφηεηα: «Πεξπαηψ κηα κέξα ζην Champs Elysees θαη βιέπσ ζηελ απέλαληη πιεπξά ηνπ δξφκνπ έλαλ παιηφ κνπ θίιν. Γελ ππάξρεη θπθινθνξία ζηνλ δξφκν θαη εγψ δελ είκαη απαζρνιεκέλνο κε θάηη άιιν, θαη έηζη, ελεξγψληαο νξζνινγηθά αξρίδσ λα δηαζρίδσ ηνλ δξφκν. ην κεηαμχ, ζε πφδηα χςνο, κηα πφξηα απνζεθεπηηθνχ ρψξνπ μεθνιιά απφ έλα πεξαζηηθφ αεξνπιάλν θαη πξηλ πξνιάβσ λα πεξάζσ ζηελ απέλαληη πιεπξά ηνπ δξφκνπ γίλνκαη ραιθνκαλία. Θα ήκνπλ παξάινγνο πνπ δηέζρηζα ηνλ δξφκν? Γε λνκίδσ φηη ε λεθξνινγία κνπ ζα έγξαθε : Αλφεηνο πξνζπαζεί λα δηαζρίζεη δξφκν» ην πνιχ γιαθπξφ απηφ παξάδεηγκα θαίλεηαη φηη κε βάζε ηελ γλψζε πνπ είρακε επηιέμακε ηελ θαιχηεξε δπλαηή ελέξγεηα. Ωζηφζν απηήλ δελ ήηαλ θαη ε ζσζηφηεξε θαζψο ην απνηέιεζκα δελ καο δηθαίσζε. Γη απηφ ηνλ ιφγν (δελ κπνξεί έλαο πξάθηνξαο λα γλσξίδεη ηα πάληα γηα ην πεξηβάιινλ ηνπ), ε νξζνινγηθφηεηα έρεη λα θάλεη κε ηελ κεγηζηνπνίεζε ηεο αλακελφκελεο απφδνζεο θαη φρη κε ηελ παληνγλσζία. ηε ζπλέρεηα ηνπ θεηκέλνπ ζα ρξεζηκνπνηνχκε θπξίσο ηελ έλλνηα ηνπ επθπνχο πξάθηνξα αληί ηνπ νξζνινγηθνχ. Η εμέιημε ηεο ηερλνινγίαο θαη ε πξφνδνο πνπ ζπληειέζηεθε ζηνλ ηνκέα ηεο ηερλεηήο λνεκνζχλεο έρεη επηηξέςεη ηελ δεκηνπξγία πξαθηφξσλ κε ζπκπεξηθνξά φρη απιά νξζνινγηθή αιιά παξφκνηα έμππλε κε απηήλ ελφο αλζξψπνπ Πεξηβάιινληα Δξγαζίαο Δίδακε πξνεγνπκέλσο φηη νη επθπείο πξάθηνξεο είλαη κεραληζκνί πνπ έρνπλ ηελ δπλαηφηεηα λα δξνπλ κε επθπΐα. Απηή ε δξάζε λνείηαη θαη πξαγκαηνπνηείηαη κφλν ζηα πιαίζηα ελφο πεξηβάιινληνο, ην νπνίν νλνκάδεηαη πεξηβάιινλ εξγαζίαο. Η παξαηήξεζε, θαηαλφεζε θαη αιιειεπίδξαζε κε ην πεξηβάιινλ απηφ είλαη ζεκειηψδεο ζηφρνο ηεο ηερλεηήο λνεκνζχλεο, αθξηβψο φπσο θαη γηα ηνλ άλζξσπν ην πξψην κέιεκα ηνπ ήηαλ ε πξνζπάζεηα «απνθσδηθνπνίεζεο» ηεο θχζεο πνπ ηνλ πεξηβάιιεη. Γη απηφ ηνλ ιφγν νη επηζηήκνλεο ηεο ηερλεηήο λνεκνζχλεο πξνζπάζεζαλ απφ λσξίο λα θαζνξίζνπλ απηά ηα πεξηβάιινληα εξγαζίαο, κέζα ζηα νπνία ζα ζρεδηάδνληαλ νη νξζνινγηθνί πξάθηνξεο. Ο θαζνξηζκφο ελφο πεξηβάιινληνο εξγαζηψλ πεξηιακβάλεη : Σν κέηξν ηεο απφδνζεο Σν εμσηεξηθφ πεξηβάιινλ Σνπο κεραληζκνχο δξάζεο Σνπο αηζζεηήξεο Γηα πιήξε θαηαλφεζε ζα εμεηάζνπκε ην παξάδεηγκα ηεο ζρεδίαζεο έλαο πξαγκαηηθνχ παίρηε ηνπ παηρληδηνχ Ναπκαρία. Σν κέηξν απφδνζεο πνπ ζα ζέιακε λα επηδηψθεη ν πξαγκαηηθφο παίρηεο είλαη ε αλάπηπμε ζσζηήο ζηξαηεγηθήο ψζηε λα 13

14 θαηαθέξεη λα πεηχρεη, πξψηνο απφ ηνλ αληίπαιν ηνπ, ηα πινία ηνπ αληηπάινπ ψζηε λα θηάζεη ζηελ λίθε. Έπεηηα, ην πεξηβάιινλ πνπ ζα αληηκεησπίζεη ζα είλαη ν ράξηεο ηνπ παηρληδηνχ κε ηα λεζηά ηνπ, ηα πινία θαη ε ηνπνζέηεζε ηνπο ζηνλ ράξηε, αιιά θαη ν αληίπαινο ηνπ. Οη κεραληζκνί δξάζεο πνπ ζα έρεη ζηελ δηάζεζε ηνπ ν παίρηεο είλαη ε ηνπνζέηεζε ησλ πινίσλ ζηνλ ράξηε ηνπ θαη νη βφκβεο κε ηηο νπνίεο ζα πξνζπαζήζεη λα βπζίζεη ηα πινία ηνπ αληηπάινπ. Σέινο γηα λα επηηχρεη ηνλ ζηφρν ηνπ ζα πξέπεη λα γλσξίδεη ζε πηα ζεκεία έρεη ήδε ξίμεη βφκβα ζηνλ ράξηε ηνπ αληηπάινπ ψζηε λα ππνινγίζεη ηελ επφκελε βνιή ηνπ. Απηφ ζα ην επηηχρεη κε ηα κάηηα ηνπ, ηα νπνία απνηεινχλ ζ απηήλ ηελ πεξίπησζε ηνπο αηζζεηήξεο ηνπ. Άιια παξαδείγκαηα ηχπσλ πξαθηφξσλ θαίλνληαη ζηνλ παξαθάησ πίλαθα : 1 Πίνακασ Παραδείγματα διάφορων τφπων πρακτόρων Σύπορ ππάκηοπα Μέηπο απόδοζηρ Πεπιβάλλον Μησανιζμοί δπάζηρ Αιζθηηήπερ Οδεγόο ηαμί Σσζηό, αζθαιέο, γξήγνξν, λόκηκν, άλεην δξνκνιόγην, κεγηζηνπνίεζ ε ησλ θεξδώλ Γξόκνη, άιια νρήκαηα, πεδνί, πειάηεο Τηκόλη, γθάδη, θξέλν, ζήκα, θόξλα, νζόλε Κάκεξεο, ζόλαξ, ηαρύκεηξν, GPS, νδόκεηξν, επηηαρπλζηόκεηξ ν, αηζζεηήξεο θηλεηήξα, πιεθηξνιόγην Σπζηήκαηα ηαηξηθήο δηάγλσζεο Υγηήο αζζελήο, ειαρηζηνπνίε ζε θόζηνπο θαη κελύζεσλ Αζζελήο, λνζνθνκείν, πξνζσπηθό Δκθάληζε εξσηήζεσλ, εμεηάζεσλ, δηαγλώζεσλ, ζεξαπεηώλ, παξαπνκπώλ Πιεθηξνιόγεζε ζπκπησκάησλ, επξεκάησλ, απαληήζεσλ αζζελή Σύζηεκα αλάιπζεο δνξπθνξηθώλ εηθόλσλ Σσζηή θαηάηαμε εηθόλσλ ζε θαηεγνξίεο Σύλδεζε κε δνξπθόξν πνπ είλαη ζε ηξνρηά Δκθάληζε θαηεγνξηνπνίε ζεο ζθελήο Γηαηάμεηο έγρξσκσλ εηθνλνζηνηρείσλ Διεγθηήο δηπιηζηεξίνπ Αιιειεπηδξαζηηθ όο εθπαηδεπηήο Μεγηζηνπνίεζ ε θαζαξόηεηαο, απόδνζεο, αζθάιεηαο Μεγηζηνπνίεζ ε βαζκνινγίαο Γηπιηζηήξην, ρεηξηζηέο Σύλνιν ζπνπδαζηώλ, ππεξεζία Βαιβίδεο, αληιίεο, ζεξκαληήξεο, νζόλεο Δκθάληζε αζθήζεσλ, ππνδείμεσλ, Θεξκνθξαζία, πίεζε, ρεκηθνί αηζζεηήξεο Πιεθηξνιόγεζε 1 Τεχνητή Νοημοςύνη Μια ςύγχρονη προςέγγιςη (ςελ. 72)», Stuart Russel και Peter Norvig 14

15 Αγγιηθήο γιώζζαο ζπνπδαζηώλ ζηηο εμεηάζεηο εμεηάζεσλ δηνξζώζεσλ Σα πεξηβάιινληα εξγαζίαο ραξαθηεξίδνληαη απφ κηα απνδεδεηγκέλα κεγάιε πνιππινθφηεηα. Έηζη, γηα λα κειεηήζνπκε θαιχηεξα ηελ ζπκπεξηθνξά ηνπο, ηα θαηεγνξηνπνηήζακε κε βάζε θάπνηα ραξαθηεξηζηηθά ηα νπνία έρνπλ ζεκαληηθή επίδξαζε ζηνλ ηξφπν κε ηνλ νπνίν ν πξάθηνξαο ηα αληηιακβάλεηαη. Έλα πεξηβάιινλ εξγαζίαο ινηπφλ κπνξεί λα είλαη : Πιήξσο παξαηεξήζηκν ή κεξηθψο παξαηεξήζηκν Αλ ν επθπήο πξάθηνξαο έρεη ηελ δπλαηφηεηα λα παξαηεξεί ηα πάληα ζην πεξηβάιινλ ηνπ, ηφηε ην πεξηβάιινλ ραξαθηεξίδεηαη πιήξσο παξαηεξήζηκν, ελψ αλ έρεη ηελ δπλαηφηεηα κεξηθήο παξαηήξεζεο ραξαθηεξίδεηαη κεξηθψο παξαηεξήζηκν. ην παξάδεηγκα ηνπ παίρηε Ναπκαρίαο ην πεξηβάιινλ είλαη κεξηθψο παξαηεξήζηκν, αθνχ ν παίρηεο δελ γλσξίδεη ηελ ζέζε ησλ πινίσλ ηνπ αληηπάινπ. Αηηηνθξαηηθφ ή ζηνραζηηθφ Θα έρεη ν πξάθηνξαο ηελ δπλαηφηεηα λα γλσξίδεη κε βεβαηφηεηα ηελ αηηηνθξαηία ησλ ζπκβάλησλ (ηφζν σο πξνο ην αίηην φζν θαη σο ην απνηέιεζκα); Αλ λαη ηφηε βξίζθεηαη κέζα ζε έλα αηηηνθξαηηθφ πεξηβάιινλ. Δηδάιισο, ζε έλα ζηνραζηηθφ πεξηβάιινλ ζα είλαη αλαγθαζκέλνο λα θάλεη ζπλερψο ππνζέζεηο σο πξνο ηελ αηηία θαη ηηο ζπλέπεηεο ησλ ελεξγεηψλ. Σν πεξηβάιινλ ζην παξάδεηγκα καο είλαη αηηηνθξαηηθφ θπζηθά, αθνχ ν ράξηεο πξνζδηνξίδεηαη ζε θάζε γχξν απφ ηελ κνξθή ηνπ ζηνλ πξνεγνχκελν γχξν θαη ηηο βνιέο ηνπ ηξέρνληνο γχξνπ. Δπεηζνδηαθφ ή αθνινπζηαθφ ηα επεηζνδηαθά πεξηβάιινληα ν πξάθηνξαο θαιείηαη κφλν λα αληηκεησπίζεη έλα ζπγθεθξηκέλν πξφβιεκα δελ έρεη λα αζρνιεζεί θαζφινπ κε ην ηη ζα γίλεη κεηά (δελ αζρνιείηαη κε ην κέιινλ). Αληίζεηα ζηα αθνινπζηαθά πεξηβάιινληα νη ηξέρνπζεο ελέξγεηεο επεξεάδνπλ ηηο κειινληηθέο θαηαζηάζεηο θαη ελέξγεηεο. Η Ναπκαρία είλαη έλα αθνινπζηαθφ πεξηβάιινλ, αλ ν παίρηεο βξεη ζηφρν ηφηε νη επφκελεο βνιέο ηνπ επεξεάδνληαη κηαο θαη πξέπεη λα είλαη γεηηνληθέο ηεο πεηπρεκέλεο βνιήο. ηαηηθφ ή δπλακηθφ ην δπλακηθφ πεξηβάιινλ κπνξνχλ λα πξνθχςνπλ αιιαγέο ελψ ν πξάθηνξαο κειεηά ηελ επφκελε ελέξγεηα ηνπ ζε αληίζεηε πεξίπησζε ην πεξηβάιινλ ζεσξείηαη ζηαηηθφ. Απφ ηελ άπνςε απηή, ε Ναπκαρία είλαη έλα ζηαηηθφ πεξηβάιινλ. Γηαθξηηφ ή ζπλερέο 15

16 Δδψ ε δηαθνξά έγθεηηαη ζην αλ ν πξάθηνξαο ζα έρεη αληίιεςε ζπλερψλ (πξαγκαηηθψλ) ηηκψλ γηα ηηο δηάθνξεο κεηαβιεηέο ή ζα ηηο αληηκεησπίδεη σο ηηκέο απφ έλα πεπεξαζκέλν ζχλνιν δηαθξηηψλ θαηαζηάζεσλ. Η Ναπκαρία είλαη έλα πεξηβάιινλ δηαθξηηψλ θαηαζηάζεσλ γηαηί θάζε παξηίδα απνηειείηαη απφ έλα πεπεξαζκέλν αξηζκφ θαηαζηάζεσλ. Αληίζεηα ζε έλα ζπλερέο πεξηβάιινλ έρνπκε ζπλερή ξνή ηνπ ρξφλνπ, ησλ αληηιήςεσλ θαη ησλ ελεξγεηψλ ηνπ πξάθηνξα. Μνλνπξαθηνξηθφ ή πνιππξαθηνξηθφ Δδψ ηα πξάγκαηα θαίλνληαη θαηαξρήλ απιά εμεηάδνπκε ην αλ ππάξρεη έλαο πξάθηνξαο ζην πεξηβάιινλ ή πεξηζζφηεξνη. Όκσο ζηα πνιππξαθηνξηθά πεξηβάιινληα εηζέξρνληαη δηάθνξα δεηήκαηα, φπσο ηα δεηήκαηα ηεο ζπλεξγαζίαο, ηνπ αληαγσληζκνχ θαη ηεο επηθνηλσλίαο. Η Ναπκαρία είλαη έλα πεξηβάιινλ δχν πξαθηφξσλ θαη κάιηζηα ραξαθηεξίδεηαη θαη σο αληαγσληζηηθφ απφ ηελ ζηηγκή πνπ νη παίρηεο αληαγσλίδνληαη ν έλαο ηνλ άιιν γηα λα θηάζνπλ ζηελ λίθε Η δνκή ησλ πξαθηόξσλ Δίπακε φηη κειεηάκε ηελ ηερλεηή λνεκνζχλε σο ηελ κειέηε ηεο ζρεδίαζεο νξζνινγηθψλ πξαθηφξσλ. Άξα ε ηερλεηή λνεκνζχλε είλαη εθ ησλ πξνηέξσλ κηα θαζαξά πξαθηηθή έλλνηα, αθνχ δελ κπνξεί λα πθίζηαηαη ρσξίο λα ππάξρεη δξάζε. Πην ζπγθεθξηκέλα, απηφ πνπ έρνπκε λα θάλνπκε είλαη λα ζρεδηάζνπκε ην πξφγξακκα πξάθηνξα, ην νπνίν πινπνηεί ηελ ζπλάξηεζε πξάθηνξα, θαη λα θαζνξίζνπκε ηελ αξρηηεθηνληθή ηνπ πξάθηνξα καο. Γειαδή : πξάθηνξαο = αξρηηεθηνληθή + πξφγξακκα ηελ πεξίπησζε καο σο αξρηηεθηνληθή ρξεζηκνπνηνχκε έλαλ ειεθηξνληθφ ππνινγηζηή. ε άιιεο πεξηπηψζεηο ε αξρηηεθηνληθή δηαθέξεη, κπνξεί λα είλαη έλα ξνκπφη κε θάκεξεο θαη αηζζεηήξεο π.ρ. Όια ηα πξνγξάκκαηα πξαθηφξσλ βαζίδνληαη ζηελ εμήο ινγηθή : δέρνληαη σο είζνδν κία αληίιεςε απφ ην πεξηβάιινλ θαη επηζηξέθνπλ γηα έμνδν κηα ελέξγεηα. Απηφ πνπ έρεη κεγάιε ζεκαζία είλαη φηη ηα πξνγξάκκαηα πξαθηφξσλ ζρεδηάδνληαη έηζη ψζηε κε ιίγεο γξακκέο θψδηθα λα κπνξνχλ λα παξάγνπλ νξζνινγηθή ζπκπεξηθνξά. Υαξαθηεξηζηηθφ παξάδεηγκα ηέηνηνπ πξνγξάκκαηνο είλαη ην πξφγξακκα ησλ θνηλψλ αξηζκνκεραλψλ πνπ ρξεζηκνπνηνχκε. Οη αξηζκνκεραλέο έρνπλ θαηαθέξεη κε ιίγεο γξακκέο θψδηθα λα αληηθαηαζηήζνπλ ηνπο ηεξάζηηνπο πίλαθεο πξνπαίδεηαο, ινγαξίζκσλ θαη ηεηξαγσληθψλ ξηδψλ. Ο ζηφρνο ηεο Σερλεηήο Ννεκνζχλεο είλαη ζην κέιινλ ε δεκηνπξγία πξαθηφξσλ πνπ ηα πξνγξάκκαηα ηνπο ζα αληηθαζηζηνχλ ηξνκεξά επθπείο ζπκπεξηθνξέο. Σα πξνγξάκκαηα πξαθηφξσλ κπνξνχλ λα ρσξηζηνχλ ζε ηέζζεξηο βαζηθέο θαηεγνξίεο : απινί αληαλαθιαζηηθνί πξάθηνξεο αληαλαθιαζηηθνί πξάθηνξεο βαζηζκέλνη ζε κνληέιν 16

17 πξάθηνξεο βαζηζκέλνη ζην ζηφρν πξάθηνξεο βαζηζκέλνη ζηε ρξεζηκφηεηα Απινί αληαλαθιαζηηθνί πξάθηνξεο Οη απινί αληαλαθιαζηηθνί πξάθηνξεο απνηεινχλ ην πην απιφ είδνο πξάθηνξα, θαη ην πην «ραδφ» ζα πξφζζεηε θαλείο, κε ηελ έλλνηα φηη παξνπζηάδνπλ πνιχ πεξηνξηζκέλνη επθπΐα. Η ιεηηνπξγία ηνπο είλαη πνιχ απιή, ελεξγνχλ κε βάζε κφλν ηελ ηξέρνπζα αληίιεςε θαη φρη κε φιν ην ηζηνξηθφ ησλ αληηιήςεσλ. ε ςεπδνθψδηθα απηφ κπνξνχκε λα ην παξνπζηάζνπκε σο εμήο : εάν (θαηάζηαζε θόζκνπ = θαηάζηαζε1) τότε επέστρεψε ελέξγεηα1 αλλιώς εάν (θαηάζηαζε θόζκνπ= θαηάζηαζε2) τότε επέστρεψε ελέξγεηα2 αλλιώς εάν (θαηάζηαζε θόζκνπ= θαηάζηαζε3) τότε επέστρεψε ελέξγεηα3 ην παξάδεηγκα καο, αλ πινπνηνχζακε ηνλ παίρηε Ναπκαρίαο κε απιφ αληαλαθιαζηηθφ πξάθηνξα, ηφηε απηφο αλ ζε κηα βνιή ηνπ «ρηππνχζε» πινίν αληηπάινπ, ηφηε ε ελέξγεηα πνπ ζα επέιεγε ζα ήηαλ απιψο λα μαλαπαίμεη ζε έλα ηπραίν ζεκείν ηνπ ράξηε πξνθαλψο, θαη απηφ γηαηί δελ ζα έρεη θακία γλψζε γηα ην πνπ βξίζθεηαη ην ζεκείν πνπ «ρηχπεζε». Τπάξρεη πηζαλφηεηα λα «ρηππνχζε» αθφκα θαη ζην ίδην ζεκείν. Θα είρε δειαδή κεησκέλε απφδνζε. Σν ζρεκαηηθφ δηάγξακκα ελφο αληαλαθιαζηηθνχ πξάθηνξα θαίλεηαη παξαθάησ : 2 Εικόνα χθματικό διάγραμμα αντανακλαςτικοφ πράκτορα 2 Τεχνητή Νοημοςύνη Μια ςύγχρονη προςέγγιςη (ςελ. 80)», Stuart Russel και Peter Norvig 17

18 Σν ζνβαξφ κεηνλέθηεκα ησλ απιψλ αληαλαθιαζηηθψλ πξαθηφξσλ είλαη φηη κπνξνχλ λα πάξνπλ ηελ ζσζηή απφθαζε κφλν αλ γλσξίδνπλ πιήξσο ην πεξηβάιινλ κέζα ζην νπνίν δξνπλ, δηφηη παίξλνπλ ππ φςε ηνπο κφλν ηελ ηξέρνπζα αληίιεςε. Απηφ είλαη αξθεηά θξίζηκν θαη γη απηφ ηνλ ιφγν απνθεχγνπκε ηελ ρξεζηκνπνίεζε ηέηνησλ πξαθηφξσλ ζε ζπζηήκαηα πνπ έρνπλ λα θάλνπλ κε αλζξψπηλεο δσέο. Αληαλαθιαζηηθνί πξάθηνξεο βαζηζκέλνη ζε κνληέιν Σν πξφβιεκα ησλ απιψλ αληαλαθιαζηηθψλ πξαθηφξσλ ήξζαλ λα ιχζνπλ νη αληαλαθιαζηηθνί πξάθηνξεο βαζηζκέλνη ζε κνληέιν. Απηνί θξαηνχλ φιν ην ηζηνξηθφ αληηιήςεσλ, ην απνζεθεχνπλ ζε έλα είδνο εζσηεξηθήο θαηάζηαζεο θαη κε βάζε απηήλ ηελ θαηάζηαζε επηιέγνπλ ηελ ελέξγεηα ηνπο. Δλεκεξψλνπλ δε, ζπλερψο ηελ εζσηεξηθή απηή θαηάζηαζε, παξαηεξψληαο θαη ην πψο εμειίζζεηαη ην πεξηβάιινλ ρσξίο ηελ παξνπζία ηνπ πξάθηνξα αιιά θαη ην πψο επηδξνχλ νη ελέξγεηαο ηνπ πξάθηνξα ζ απηφ. Με ιίγα ιφγηα παξαηεξνχλ, ελεκεξψλνπλ θαη επηιέγνπλ ηελ ελέξγεηα ηνπο κε βάζε απηφ πνπ νλνκάδνπκε κνληέιν ηνπ πεξηβάιινληνο. Ο παίρηεο Ναπκαρίαο δειαδή ζα απνζήθεπε ζε κία εζσηεξηθή θαηάζηαζε φιεο ηηο πξνεγνχκελεο βνιέο ηνπ πάλσ ζηνλ ράξηε, θαη έηζη κεηά απφ κηα επηηπρεκέλε βνιή ζα επέιεγε λα ρηππήζεη ζε έλα δηπιαλφ ζεκείν γηα λα βπζίζεη φιν ην πινίν. Σν επφκελν ζρήκα παξνπζηάδεη ηελ δνκή ελφο αληαλαθιαζηηθνχ πξάθηνξα βαζηζκέλνπ ζε κνληέιν : 3 Εικόνα χθματικό διάγραμμα αντανακλαςτικοφ πράκτορα βαςιςμζνου ςε μοντζλο Πξάθηνξεο βαζηζκέλνη ζηνλ ζηφρν 3 Τεχνητή Νοημοςύνη Μια ςύγχρονη προςέγγιςη (ςελ. 82)», Stuart Russel και Peter Norvig 18

19 Οη αληαλαθιαζηηθνί πξάθηνξεο βαζηζκέλνη ζην κνληέιν είλαη αξθεηά ρξήζηκνη αιιά δελ είλαη επέιηθηνη, γηαηί κεηά απφ κία αληίιεςε εάλ βξεζνχλ ζε δίιιεκα κεηαμχ δχν ελεξγεηψλ ζα επηιέμνπλ ζηελ ηχρε κηα απφ ηηο δχν. Απηφ ην πξφβιεκα ην ιχλνπλ νη πξάθηνξεο βαζηζκέλνη ζηνλ ζηφρν (θαη ζην κνληέιν θαη ζηνλ ζηφρν γηα ηελ αθξίβεηα). Απηνί νη πξάθηνξεο κεηά απφ κία αληίιεςε παξαθνινπζνχλ ην κνληέιν ηνπ πεξηβάιινληνο θαη έλα ζχλνιν ζηφρσλ πνπ επηδηψθεη λα πεηχρεη θαη έηζη απνθαζίδεη πνηα ελέξγεηα ζα επηιέμεη. Ο παίρηεο Ναπκαρίαο έρεη ζαλ ζηφρν λα βπζίζεη φια ηα πινία ηνπ αληηπάινπ. Έηζη κεηά απφ κία πεηπρεκέλε βνιή ζα πξνζαξκφζεη φιεο ηηο επφκελεο βνιέο ηνπ ζηελ βχζηζε ηνπ πινίνπ πνπ πέηπρε θαη κεηά ζα ζπλερίζεη ηελ ηπραία ξίςε μαλά κέρξη λα βξεη θαη ηα επφκελα πινία. Η δνκή ηνπ είλαη ε εμήο : 4 Εικόνα χθματικό διάγραμμα πράκτορα βαςιςμζνου ςε μοντζλο και ςε ςτόχο Πξάθηνξεο βαζηζκέλνη ζηελ ρξεζηκφηεηα Οη πξάθηνξεο βαζηζκέλνη ζην κνληέιν θαη ζηνπο ζηφρνπο θαίλεηαη λα ιεηηνπξγνχλ ηέιεηα. Γηαιέγνπλ κηα ζπγθεθξηκέλε αθνινπζία ελεξγεηψλ πνπ ζα ηνπο νδεγήζεη ηνλ ζηφρν θαη θάζε θνξά παξαθνινπζνχλ ην κνληέιν ηνπ πεξηβάιινληνο θαη ην ελεκεξψλνπλ αληίζηνηρα. Όια θαιά κέρξη ζηηγκήο. Ση γίλεηαη φκσο αλ ππάξρνπλ πνιιέο δηαθνξεηηθέο αθνινπζίεο ελεξγεηψλ πνπ λα νδεγνχλ ζηνλ ίδην ζηφρν? Γηα παξάδεηγκα ν παίρηεο Ναπκαρίαο κπνξεί λα μεθηλήζεη απφ ην ζεκείν <0,0> θαη λα ξίμεη βνιέο ζε φια ηα ζεκεία ηνπ ράξηε κε ηελ ζεηξά. Έηζη ζίγνπξα ζα πεηχρεη ηνλ ζηφρν ηνπ πνπ είλαη λα βπζίζεη φια ηα πινία, αιιά έηζη νη πηζαλφηεηεο λα εηηεζεί λα 4 Τεχνητή Νοημοςύνη Μια ςύγχρονη προςέγγιςη (ςελ. 83)», Stuart Russel και Peter Norvig 19

20 πνιχ κεγάιεο. Μπνξνχκε λα ξσηήζνπκε ηνλ πξάθηνξα πφζν επραξηζηεκέλνο είλαη απφ ηελ ζπγθεθξηκέλε αθνινπζία ελεξγεηψλ ψζηε λα βξνχκε ηελ θαιχηεξε δπλαηή. Απηφ πην επίζεκα ην πεηπραίλνπκε κε ηελ ζπλάξηεζε ρξεζηκφηεηαο, ε νπνία αληηζηνηρεί ζε θάζε θαηάζηαζε θαη ζε θάζε αθνινπζία θαηαζηάζεσλ έλαλ βαζκφ απφδνζεο. Έηζη ν πξάθηνξαο επηιέγεη θάζε ηνπ ελέξγεηα κε βάζε ην πηα απφ ηηο επφκελεο θαηαζηάζεηο έρεη πςειφηεξν βαζκφ ζηελ ζπλάξηεζε ρξεζηκφηεηαο. Απηφ κπνξνχκε λα ην δνχκε θαη ζην παξαθάησ ζρήκα : 5 Εικόνα 2.5 χθματικό διάγραμμα πράκτορα βαςιςμζνου ςτθν χρθςιμότθτα Αο δνχκε ηψξα ζε πνηα θαηεγνξία αλήθνπλ νη παίρηεο ηεο δηθηάο καο εθαξκνγήο. Ο RandomPlayer απνηειεί έλα είδνο απινχ αληαλαθιαζηηθνχ πξάθηνξα, αθνχ δελ παίξλεη ππ φςε ηνπ φιν ην ηζηνξηθφ ησλ βνιψλ ηνπ θαη ιεηηνπξγεί κε βάζε κφλν ηελ ηξέρνπζα αληίιεςε. Οη SmartPlayer θαη GeniousPlayer είλαη πξάθηνξεο βαζηζκέλνη ζην κνληέιν θαη ζηνλ ζηφρν. Κξαηνχλ φιν ην ηζηνξηθφ ησλ βνιψλ θαη ην απνζεθεχνπλ ζε έλαλ πίλαθα (είδνο εζσηεξηθήο θαηάζηαζεο), θαη κε βάζε απηφλ ηνλ πίλαθα ξίρλνπλ ηηο επφκελεο βνιέο ηνπο. ηφρνο ηνπο είλαη ε βχζηζε φισλ ησλ πινίσλ ηνπ αληηπάινπ ηνπο. Σέινο, ζηελ ελφηεηα 6.2 παξνπζηάδεηαη ζεσξεηηθά έλαο παίρηεο πνπ απνηειεί πξάθηνξα βαζηζκέλν ζηελ ρξεζηκφηεηα θαη ζα κπνξνχζε λα απνηειέζεη κηα κειινληηθή βειηίσζε ησλ παηρηψλ πνπ έρνπκε δεκηνπξγήζεη. Όινη νη πξάθηνξεο κπνξνχλ λα βειηηψζνπλ ηελ απφδνζε ηνπο κε ηελ κάζεζε. Δίδακε ήδε πφζν ζεκαληηθή είλαη ε κάζεζε φηαλ αθήλνπκε έλαλ πξάθηνξα ζε έλα άγλσζην πεξηβάιινλ θαη απηφο πξέπεη λα επηιέμεη θάπνηεο θηλήζεηο ζηελ αξρή, ψζηε απφ απηέο λα απνθηήζεη πείξα θαη λα ζπλερίζεη κε κεγαιχηεξε απφδνζε. 5 Τεχνητή Νοημοςύνη Μια ςύγχρονη προςέγγιςη (ςελ. 85)», Stuart Russel και Peter Norvig 20

21 Η κάζεζε είλαη ζηελ νπζία κηα ιεηηνπξγία αλάδξαζεο. Μεηά απφ θάζε ελέξγεηα ν πξάθηνξαο θάλεη κηα θξηηηθή ζην απνηέιεζκα ηεο ελεξγείαο ηνπ θαη κε βάζε απηήλ ηελ θξηηηθή πξνζαξκφδεη θαη ηηο επφκελεο ελέξγεηεο πνπ ζα εθηειέζεη. Πξνθαλψο θαη ε θξηηηθή πξέπεη λα έρεη έλα ζηαζεξφ πξφηππν απφδνζεο ψζηε κε βάζε απηφ λα θξίλεη θάζε εθηέιεζε ελέξγεηαο ηνπ, αιιά θαη απηφ ην πξφηππν απφδνζεο λα κελ κπνξεί λα ην ηξνπνπνηεί ν πξάθηνξαο ζχκθσλα κε ηελ δηθή ηνπ ζπκπεξηθνξά. Σν γεληθφ κνληέιν πξαθηφξσλ πνπ καζαίλνπλ είλαη ην εμήο : 6 Εικόνα Γενικό μοντζλο πρακτόρων που μακαίνουν 2.2 Παισνίδι ζηπαηηγικήρ Ναςμασία Η Ναπκαρία είλαη έλα επηηξαπέδην παηρλίδη ζηξαηεγηθήο δχν αηφκσλ, ην νπνίν ηα ηειεπηαία ρξφληα έρεη εμαπισζεί θαη ζην δηαδίθηπν φπνπ κπνξεί θαλείο λα ην παίμεη απφ ηνλ πξνζσπηθφ ηνπ ππνινγηζηή. Κάζε παίρηεο ξίρλεη βνιέο θαη πξνζπαζεί λα βπζίζεη ηνλ αληίπαιν λαπηηθφ ζηφιν. Πξηλ ηελ έλαξμε ηνπ παηρληδηνχ, θάζε παίρηεο πξέπεη λα απνθαζίζεη ηελ δηάηαμε ησλ πινίσλ ηνπ θαη ηελ ηνπνζέηεζε ηνπο ζηνλ ράξηε, θξπθά απφ ηνλ αληίπαιν ηνπ. πλήζσο ηα πινία πνπ δηαηίζεληαη ζηνπο παίρηεο είλαη ηα εμήο: 6 Τεχνητή Νοημοςύνη Μια ςύγχρονη προςέγγιςη (ςελ. 86)», Stuart Russel και Peter Norvig 21

22 αεξνπιαλνθφξν (5 ηεηξάγσλα ζηνλ ράξηε) ζσξεθηφ (4 ηεηξάγσλα) θξεγάηα (3 ηεηξάγσλα) ππνβξχρην (3 ηεηξάγσλα) ηνξπηιάθαηνο (2 ηεηξάγσλα) ε θάζε παίρηε δηαηίζεηαη θαη έλαο δεχηεξνο ράξηεο, φπνπ ηνπνζεηεί ηηο βνιέο ηνπ ζηα ηεηξάγσλα ηνπ ράξηε ηνπ αληηπάινπ πνπ επηιέγεη λα ρηππήζεη, κπιε γηα άζηνρε βνιή θαη θφθθηλν γηα εχζηνρε. Μεηά απφ θάζε εχζηνρε βνιή ν παίρηεο πνπ «κάληεςε» ζσζηά μαλαπαίδεη. Αλ νπνηαδήπνηε ζηηγκή θάπνην πινίν βπζηζηεί εληειψο, ηφηε ν παίρηεο ηνπ νπνίνπ ην πινίν βπζίζηεθε είλαη ππνρξεσκέλνο λα αλαθνηλψζεη πνην πινίν βπζίζηεθε. Σν παηρλίδη δειαδή απαηηεί απφ ηνπο δπν παίρηεο λα είλαη εηιηθξηλείο γηα ηελ ηνπνζέηεζε ησλ πινίσλ ηνπο θαη ηελ βχζηζε ηνπο. Ο ληθεηήο είλαη ν πξψηνο παίρηεο πνπ ζα θαηαζηξέςεη εληειψο ηνλ ερζξηθφ ζηφιν. 2.3 Ανηικειμενοζηπεθήρ ππογπαμμαηιζμόρ JAVA Δπηινγή γιώζζαο πξνγξακκαηηζκνύ Αθνχ εμνηθεησζήθακε κε ηηο βαζηθέο έλλνηεο ηνπ πξάθηνξα ηερλεηήο λνεκνζχλεο θαη ην παηρλίδη πνπ ζα παξνπζηάζνπκε, ήξζε ε ψξα λα εμεγήζνπκε γηαηί επηιέμακε ηελ Java σο γιψζζα πξνγξακκαηηζκνχ ηεο εθαξκνγήο ηεο δηπισκαηηθήο εξγαζίαο πνπ ζα παξνπζηάζνπκε. Καηαξρήλ ζην ηκήκα Ηιεθηξνιφγσλ Μεραληθψλ & Σερλνινγίαο Τπνινγηζηψλ ηεο Πνιπηερληθήο ρνιήο ηνπ Παλεπηζηεκίνπ Παηξψλ φπνπ θνηηψ, δηδάζθνληαη ηξεηο γιψζζεο πξνγξακκαηηζκνχ ζε φινπο ηνπο θνηηεηέο ζηα καζήκαηα θνξκνχ, Fortran, C θαη Java. Οπφηε είλαη ινγηθή ε επηινγή θάπνηαο απφ απηέο ηηο γιψζζεο ιφγσ ηεο εμνηθείσζεο πνπ έρνπκε απνθηήζεη κε απηέο, αιιά θαη γηαηί ε επηινγή θάπνηαο άιιεο γιψζζαο ζα απαηηνχζε θάπνην ρξφλν γηα ηελ εθκάζεζε ηεο. Η επηινγή ηεο Java ήηαλ θαηά θάπνην ηξφπν κνλφδξνκνο, αθνχ απνηειεί ηνλ θχξην εθπξφζσπν ηνπ Αληηθεηκελνζηξεθνχο Πξνγξακκαηηζκνχ, ν νπνίνο παξνπζηάδεη ζεκαληηθά πιενλεθηήκαηα ζε εθαξκνγέο κεγάινπ φγθνπ θαη πνιππινθφηεηαο. Η αληηθεηκελνζηξεθήο πξνζέγγηζε ζηνλ πξνγξακκαηηζκφ βαζίδεηαη ζηε ζεψξεζε αληηθεηκέλσλ πνπ αιιειεπηδξνχλ κεηαμχ ηνπο, αιιά θαη πνπ κπνξνχλ λα ζεσξεζνχλ σο αληηθείκελα απνηεινχκελα απφ άιια επηκέξνπο αιιειεπηδξψληα αληηθείκελα. Όπσο αθξηβψο ν ηξφπνο κε ηνλ νπνίνλ είλαη νξγαλσκέλν ην ζχκπαλ αιιά θαη ν θπζηθφο θφζκνο πνπ καο πεξηβάιιεη. Δμνηθεησκέλνη κε ηελ ζεψξεζε απηή, κπνξνχκε εχθνια λα αληηκεησπίζνπκε κε ηνλ ίδην ηξφπν θαη ην ζχζηεκα ινγηζκηθνχ πνπ ζα αλαπηχμνπκε. 22

23 Δπηπιένλ ε Java επηιέρζεθε θαη γηαηί απφ κφλε ηεο πξνζθέξεη θάπνηα ζεκαληηθά πιενλεθηήκαηα: θνξεηφηεηα, ε νπνία δηαζθαιίδεη ηελ δπλαηφηεηα εθηέιεζεο ησλ Java πξνγξακκάησλ αλεμάξηεηα πιαηθφξκαο πιηθνχ θαη ινγηζκηθνχ δηαζέηεη πνιχ κεγάιε βηβιηνζήθε έηνηκσλ θιάζεσλ, γεγνλφο πνπ δηεπθνιχλεη ζε κεγάιν βαζκφ ηελ γξήγνξε αλάπηπμε αμηφπηζησλ εθαξκνγψλ είλαη πνιχ πην θαζαξή απφ ηελ C++ φζνλ αθνξά ηελ ππνζηήξημε ηεο αληηθεηκελνζηξεθνχο πξνζέγγηζεο Φξνληηζηήξην γηα ηελ Java κπνξεί θάπνηνο λα βξεη ζην δηαδίθηπν ζηελ ηζηνζειίδα : Δπίζεο, ε πνιχ κεγάιε βηβιηνζήθε έηνηκσλ θιάζεσλ πνπ ε γιψζζα απηή πξνζθέξεη, βξίζθεηαη ζηελ ηζηνζειίδα : Πεξηβάιινλ αλάπηπμεο ινγηζκηθνύ Δδψ ε επηινγή ήηαλ θάπσο εχθνιε. Σν πεξηβάιινλ αλάπηπμεο ινγηζκηθνχ Eclipse είλαη ην πην δηαδεδνκέλν γηα ηελ γιψζζα Java θαη κπνξεί θάπνηνο λα ην βξεη, λα ην κάζεη θαη λα ην ρξεζηκνπνηήζεη αξθεηά εχθνια, ρσξίο λα απαηηεί πξνεγνχκελεο γλψζεηο. Μπνξεί θάπνηνο λα ην βξεη ζην δηαδίθηπν θαη λα ην «θαηεβάζεη» δσξεάλ απφ ηελ ηζηνζειίδα : Η ιεηηνπξγία ηνπ πξνυπνζέηεη ηελ εγθαηάζηαζε ζηνλ ίδην ππνινγηζηή ηνπ πιήξνπο πεξηβάιινληνο αλάπηπμεο ινγηζκηθνχ JDK (Java Development Kit) ην νπνίν παξέρεηαη δσξεάλ ζηελ ηζηνζειίδα : Παξαθάησ παξαζέηνπκε κηα εηθφλα ηεο πιαηθφξκαο ηνπ πεξηβάιινληνο Eclipse : 23

24 Εικόνα Σο περιβάλλον Eclipse CRC θάξηεο γηα ηελ αιιειεπίδξαζε αληηθεηκέλσλ Μηα πνιχ ρξήζηκε ηερληθή ζηνλ αληηθεηκελνζηξεθή πξνγξακκαηηζκφ είλαη ε ηερληθή ησλ CRC cards (Class Responsibility Collaboration cards) κε ηελ νπνία κνληεινπνηνχκε ηελ ζπκπεξηθνξά ηνπ ζπζηήκαηνο θαη ηελ αιιειεπίδξαζε ησλ αληηθεηκέλσλ απηήο. Η επηθνηλσλία θαη ε ζπλεξγαζία κεηαμχ ησλ αληηθεηκέλσλ είλαη ζεκειηψδεο ζηελ αληηθεηκελνζηξεθή πξνζέγγηζε. Γηα ηελ επηηπρία ηεο πξέπεη λα απαληεζνχλ θαη λα κνληεινπνηεζνχλ 2 εξσηήκαηα: 1. Πνην αληηθείκελν είλαη ππεχζπλν γηα κέξνο ηεο φιεο ζπκπεξηθνξάο; (αλάζεζε ζπκπεξηθνξάο ζε θιάζεηο) 2. Πνηεο ζπλεξγαζίεο κεηαμχ αληηθεηκέλσλ είλαη απαξαίηεηεο γηα ηελ πινπνίεζε ηεο ζπλνιηθήο ζπκπεξηθνξάο ηεο εθαξκνγήο; (ηη κελχκαηα θαη ππφ πνηεο ζπλζήθεο) Απηφ πνπ επηδηψθνπκε είλαη ε νκνηφκνξθε θαηαλνκή αξκνδηνηήησλ, γηα ιηγφηεξν πνιχπινθεο θιάζεηο, επθνιφηεξε θαηαλφεζε, ζπληήξεζε, επέθηαζε θαη επαλαρξεζηκνπνίεζε (απηφλνκεο θιάζεηο). Έηζη ρξεζηκνπνηνχκε απηήλ ηελ ηερληθή κε ηελ νπνία κπνξνχκε λα ζρεδηάζνπκε φιν ην πξφγξακκα καο. Έλα παξάδεηγκα κηαο CRC θάξηαο είλαη ην παξαθάησ : 24

25 Εικόνα Μια CDC κάρτα 25

26 ΚΔΦΑΛΑΗΟ 3 Ζ ΔΦΑΡΜΟΓΖ 3.1 Βαζικέρ κλάζειρ ηηρ καηάζηαζηρ μιαρ παπηίδαρ Δδψ μεθηλάεη ην πην ελδηαθέξνλ θνκκάηη ηεο δηπισκαηηθήο εξγαζίαο, ε πινπνίεζε ηεο εθαξκνγήο. Σν πξψην πξάγκα πνπ έπξεπε λα ζθεθηνχκε ήηαλ ν ηξφπνο θαη ε ζπκπεξηθνξά ιεηηνπξγίαο ηνπ φινπ ζπζηήκαηνο. Πνηεο δειαδή ζα είλαη νη βαζηθέο θιάζεηο κε ηηο νπνίεο ζα αλαπαξαζηήζνπκε ηελ θαηάζηαζε ελφο γχξνπ ηνπ παηρληδηνχ θαη πσο απηέο επηθνηλσλνχλ θαη ζπλεξγάδνληαη κεηαμχ ηνπο. απηφ ην ζεκείν βνήζεζε ζεκαληηθά ε CRC ηερληθή. Η απιή ιχζε ήηαλ λα δνχκε πνηνη είλαη νη ζπληειεζηέο ηνπ παηρληδηνχ Ναπκαρία θαη λα αληηζηνηρίζνπκε ηηο έλλνηεο ηνπο ζε θιάζεηο. Έηζη θαηαιήμακε ζηηο εμήο θιάζεηο : Referee, ν δηαηηεηήο ηνπ παηρληδηνχ Map, ν ράξηεο Point, θιάζε πνπ αλαπαξηζηά έλα ζεκείν ηνπ ράξηε Player, ν παίρηεο Αξγφηεξα, αληηθαηαζηήζακε ηελ θιάζε Player κε κηα δηεπαθή Player θαη δεκηνπξγήζακε 4 θιάζεηο πνπ εθαξκφδνπλ ηελ δηεπαθή Player κε ηελ νλνκαζία RandomPlayer, StupidPlayer, SmartPlayer θαη GeniousPlayer, νη νπνίεο αλαπαξηζηνχλ 4 παίρηεο ηνπ παηρληδηνχ κε δηαθνξεηηθφ (απμαλφκελν) επίπεδν επθπΐαο. Κάζε θιάζε έρεη ζπγθεθξηκέλα θαζήθνληα θαη ζπλεξγάδεηαη κε ηηο άιιεο θιάζεηο κε ηέηνηνλ ηξφπν ψζηε κηα παξηίδα λαπκαρίαο λα αλαπαξίζηαηαη ζσζηά. Πξηλ πξνρσξήζνπκε ζηνλ ζρεδηαζκφ ηνπ πξνγξάκκαηνο, ήηαλ απαξαίηεην λα μεθαζαξίζνπκε επηγξακκαηηθά ηα θαζήθνληα ησλ θιάζεσλ θαη ηελ αιιειεπίδξαζε ηνπο κε ηηο CRC θάξηεο : 26

27 Πίνακασ CRC κάρτα για τθν κλάςθ Referee REFEREE ΚΑΘΗΚΟΝΣΑ ΤΝΔΡΓΑΣΔ Απνζηνιή κελχκαηνο ζηελ θιάζεράξηεο γηα ηελ δεκηνπξγία ηνπ ράξηε ηνπ παηρληδηνχ Απνζηνιή ηνπ ράξηε ζηνπο παίρηεο θαη κελχκαηνο γηα λα ηνπνζεηήζνπλ ηνλ ζηφιν ηνπο Έιεγρνο γηα ηνπο θαλφλεο ηνπ παηρληδηνχ Απνζηνιή κελπκάησλ ζηνπο παίρηεο γηα ηελ ζεηξά ηνπο ζην παηρλίδη Έιεγρνο βνιψλ θαη αλαθνίλσζε ζηνπο παίρηεο γηα ηελ επζηνρία ή αζηνρία ηεο βνιήο θαη ηελ βχζηζε πινίνπ ηνπ αληηπάινπ Έιεγρνο ησλ πεηπρεκέλσλ βνιψλ θαη αλαθνίλσζε ηνπ ληθεηή ηνπ παηρληδηνχ Map Player Point Πίνακασ CRC κάρτα για τθν κλάςθ Map MAP ΚΑΘΗΚΟΝΣΑ ΤΝΔΡΓΑΣΔ Γεκηνπξγία ράξηε ηνπ παηρληδηνχ Γεκηνπξγία λεζηψλ ζηνλ ράξηε Απνζηνιή ηνπ ράξηε ζηνλ δηαηηεηή Referee Player Point Πίνακασ CRC κάρτα για τθν κλάςθ RandomPlayer RANDOM PLAYER ΚΑΘΗΚΟΝΣΑ ΤΝΔΡΓΑΣΔ Γεκηνπξγία πινίσλ Σνπνζέηεζε ηνπ ζηφινπ ζηνλ ράξηε Δπηινγή ηπραίνπ ζεκείνπ ζηνλ ράξηε γηα ξίςε βνιήο Απνζηνιή ηνπ ζεκείνπ απηνχ ζηνλ Referee Referee Player Point 27

28 Πίνακασ CRC κάρτα για τθν κλάςθ StupidPlayer STUPID PLAYER ΚΑΘΗΚΟΝΣΑ ΤΝΔΡΓΑΣΔ Γεκηνπξγία πινίσλ Σνπνζέηεζε ηνπ ζηφινπ ζηνλ ράξηε Δπηινγή ηπραίνπ ζεκείνπ ζηνλ ράξηε γηα ξίςε βνιήο ε πεξίπησζε πεηπρεκέλεο βνιήο επηινγή ελφο γεηηνληθνχ ζεκείνπ γηα ξίςε Απνζηνιή ηνπ ζεκείνπ απηνχ ζηνλ Referee Referee Player Point Πίνακασ CRC κάρτα για τθν κλάςθ SmartPlayer SMART PLAYER ΚΑΘΗΚΟΝΣΑ ΤΝΔΡΓΑΣΔ Γεκηνπξγία πινίσλ Σνπνζέηεζε ηνπ ζηφινπ ζηνλ ράξηε Δπηινγή ηπραίνπ ζεκείνπ ζηνλ ράξηε γηα ξίςε βνιήο ε πεξίπησζε πεηπρεκέλεο βνιήο έμππλε επηινγή γεηηνληθψλ ζεκείσλ γηα βχζηζε ηνπ πινίνπ Απνζηνιή ηνπ ζεκείνπ απηνχ ζηνλ Referee Referee Player Point Πίνακασ CRC κάρτα για τθν κλάςθ GeniousPlayer GENIOUS PLAYER ΚΑΘΗΚΟΝΣΑ ΤΝΔΡΓΑΣΔ Γεκηνπξγία πινίσλ Σνπνζέηεζε ηνπ ζηφινπ ζηνλ ράξηε Έμππλε ζάξσζε ηνπ ράξηε γηα ηελ εχξεζε πινίνπ ηνπ αληηπάινπ ε πεξίπησζε πεηπρεκέλεο βνιήο έμππλε επηινγή γεηηνληθψλ ζεκείσλ γηα βχζηζε ηνπ πινίνπ Απνζηνιή ηνπ ζεκείνπ απηνχ ζηνλ Referee Referee Player Point Όιεο απηέο νη ιεηηνπξγίεο ζα εμεγεζνχλ παξαθάησ αλαιπηηθά. 28

29 3.2 Αναπαπάζηαζη ηηρ καηάζηαζηρ ενόρ γύπος ηος παισνιδιού Πξηλ πξνρσξήζνπκε ζηελ αλάιπζε ηνπ θψδηθα ηνπ παηρληδηνχ γξακκή γξακκή, ζθφπηκν είλαη λα εμεγήζνπκε πεξηιεπηηθά ηνλ ηξφπν ιεηηνπξγίαο ηνπ. πγθεθξηκέλα ζα δείμνπκε ζε κηα αθνινπζία κελπκάησλ κεηαμχ ησλ βαζηθψλ θιάζεσλ (ζπληειεζηψλ) ηνπ παηρληδηνχ πσο απηέο επηθνηλσλνχλ θαη επηηπγράλεηαη ε νξζή ξνή ηνπ παηρληδηνχ. Γλσξίδνπκε ήδε φηη ζηελ java θαη γεληθά ζηνλ αληηθεηκελνζηξεθή πξνγξακκαηηζκφ φηη ν θψδηθαο απνηειείηαη απφ αληηθείκελα πνπ επηθνηλσλνχλ κεηαμχ ηνπο κε κελχκαηα. ηα δηαγξάκκαηα παξαθάησ παξαιείπεηαη ε θιάζε Point, αθνχ ν κφλνο ξφινο ηεο είλαη λα αλαπαξηζηά έλα ζεκείν ηνπ ράξηε ηνπ παηρληδηνχ γηα λα καο δηεπθνιχλεη. Αο πξνρσξήζνπκε ηψξα ζηα δηαγξάκκαηα πνπ παξηζηάλνπλ απηήλ ηελ αθνινπζία. Σν πξψην δηάγξακκα πνπ θαίλεηαη απφ θάησ ρσξίδεηαη ζε ηξία κέξε. ην πξψην ν δηαηηεηήο (θιάζε Referee) ζηέιλεη ηελ κέζνδν CreateMap() ζηελ θιάζε Map θαη απηήλ δεκηνπξγεί θαη ηνπ επηζηξέθεη ηνλ ράξηε ηνπ παηρληδηνχ. Έπεηηα, ζην δεχηεξν κέξνο, ε θιάζε Referee δεηάεη απφ ηελ Map κέζσ ηεο κεζφδνπ CreateOneIsland() λα ηνπνζεηήζεη λεζί ζηνλ ράξηε. Απηφ ινηπφλ θάλεη ε θιάζε Map θαη επηζηξέθεη ζηνλ δηαηηεηή ηνλ ράξηε ηνπ παηρληδηνχ κε λεζί. ην ηξίην κέξνο ν δηαηηεηήο ζηέιλεη ηελ κέζνδν DeployShips() ζηνπο δπν αληηπάινπο παίρηεο θαη ηνπο δεηάεη λα ηνπνζεηήζνπλ ηνλ ζηφιν ηνπο πάλσ ζηνλ ράξηε (κε λεζί) ηνπ παηρληδηνχ. Έηζη απηνί ηνπ επηζηξέθνπλ κέζσ ηεο DeployShips() δπν ράξηεο κε ηνπο ηνπνζεηεκέλνπο ζηφινπο ηνπ θαζελφο πάλσ. 29

30 Εικόνα 3.7-1ο διάγραμμα ακολουκίασ του προγράμματοσ Αο πξνρσξήζνπκε ηψξα ζηελ εμήγεζε ηνπ δεχηεξνπ δηαγξάκκαηνο πνπ θαίλεηαη παξαθάησ. Η ζπλέρεηα ηνπ παηρληδηνχ βαζίδεηαη ζηηο πνιχ ζεκαληηθέο κεζφδνπο SuccessfulPlay() θαη FailedPlay(). Πην ζπγθεθξηκέλα ν δηαηηεηήο δεηάεη απφ ηνπο δπν παίρηεο λα ηνπ ζηείινπλ ην ζεκείν ηνπ ράξηε πνπ ζέινπλ λα ξίμνπλ ηελ βνιή ηνπο. Αλ απηήλ ε πξνεγνχκελε βνιή ήηαλ επηηπρεκέλε ηνπο ζηέιλεη ηελ SuccessfulPlay(), ελψ αλ ήηαλ απνηπρεκέλε ηνπο ζηέιλεη ηελ FailedPlay(). Απηφ ζπκβαίλεη γηαηί νη παίρηεο αιιάδνπλ ηελ ζπκπεξηθνξά ηνπο αλάινγα κε ηελ επηηπρία ή κε ηεο πξνεγνχκελεο βνιήο. Ο δηαηηεηήο ζηέιλεη πξψηα ηελ FailedPlay() ζηνλ παίρηε 1 θαη απηφο ηνπ επηζηξέθεη έλα ζεκείν γηα ξίςε βνιήο. Έπεηηα ν δηαηηεηήο εμεηάδεη ζηνλ ράξηε ηελ βνιή απηήλ θαη αλάινγα κε ηελ επηηπρία ηεο, ζηέιλεη ηελ SuccessfulPlay() ζηνλ ίδην παίρηε γηα λα μαλαπαίμεη, ζε πεξίπησζε επηηπρεκέλεο βνιήο, ή ηελ FailedPlay() ζηνλ παίρηε 2 αλ ε βνιή ηνπ παίρηε 1 αζηφρεζε. Απηή ε αιιεινπρία ζπλερίδεηαη κέρξη θάπνηνο απφ ηνπο δπν αληηπάινπο παίρηεο βπζίζεη φια ηα πινία ηνπ αληηπάινπ ηνπ θαη αλαθεξπρζεί απφ ηνλ δηαηηεηή ληθεηήο ηεο Ναπκαρίαο. 30

31 Εικόνα 3.8-2ο διάγραμμα ακολουκίασ του προγράμματοσ 3.3 Γημιοςπγία ηος σάπηη ηος παισνιδιού Γεκηνπξγία ράξηε από ηελ θιάζε Map Μία απφ φιεο ηηο θιάζεηο ζα παίμεη ην ξφιν ηεο αθεηεξίαο ηνπ πξνγξάκκαηνο θαη ζα πεξηέρεη ηελ ζηαηηθή ζπλάξηεζε main(), ε νπνία είλαη ε πξψηε ζπλάξηεζε πνπ ζα εθηειεζηεί. ηελ ζπγθεθξηκέλε εθαξκνγή ηνλ ξφιν απηφ ζα ηνλ παίμεη ε 31

32 θιάζε Referee, κηαο θαη ν δηαηηεηήο είλαη ν θχξηνο ππεχζπλνο γηα ηελ ζσζηή ιεηηνπξγία ηνπ παηρληδηνχ. Ξεθηλψληαο ινηπφλ, ε θιάζε Referee ηππψλεη κήλπκα πνπ καο πιεξνθνξεί γηα ηελ έλαξμε ηνπ παηρληδηνχ. Έπεηηα ην πξψην πξάγκα πνπ πξέπεη λα ζπκβεί είλαη ε δεκηνπξγία ηνπ ράξηε ηνπ παηρληδηνχ, γηα ην νπνίν ππεχζπλε είλαη ε θιάζε Map. Έηζη δεκηνπξγείηαη ζηελ main() έλα ζηηγκηφηππν ηεο θιάζεο Map γηα λα αλαιάβεη απηφλ ηνλ ξφιν. Αξρηθά, έρνληαο σο πξφηππν ην θιαζζηθφ επηηξαπέδην παηρλίδη Ναπκαρία ζθεθηήθακε φηη ν ράξηεο ζα πξέπεη λα έρεη κέγεζνο 10*10 ζεκεία. ηελ ζπλέρεηα φκσο, γηα λα απνθηήζεη ε εθαξκνγή κεγαιχηεξν ελδηαθέξνλ πξνέθπςε ε ζαλ ηδέα φηη ν ράξηεο ζα κπνξεί λα έρεη δηάθνξα κεγέζε. Έηζη, θάλνληαο ρξήζε ηεο θιάζεο Random απφ ηελ βηβιηνζήθε ηεο java δεκηνπξγείηαη έλα ηπραίνο αξηζκφο r απφ 0 κέρξη 10, ψζηε ν ράξηεο λα έρεη κέγεζνο (10+r)*( 10+r). Γειαδή ν ράξηεο πνπ ζα θηηάμεη ε θιάζε Map ζα έρεη ηπραίν κέγεζνο πνπ ζα θπκαίλεηαη απφ ζπλνιηθά 10*10 ζεκεία έσο 20*20 ζεκεία. Ο δηαηηεηήο καο πιεξνθνξεί γηα ην κέγεζνο ηνπ ράξηε ηππψλνληαο ζηελ νζφλε αληίζηνηρν κήλπκα. Γηα λα δνχκε φκσο ηη ζπκβαίλεη ζην εζσηεξηθφ ηεο θιάζεο Map, πσο δειαδή απηή δεκηνπξγεί ηνλ ράξηε ηνπ παηρληδηνχ. Γηα ηελ δεκηνπξγία ηνπ ράξηε ε Map δηαζέηεη ηελ κέζνδν CreateMap() πνπ παίξλεη ζαλ είζνδν έλαλ αθέξαην αξηζκφ πνπ ππνδειψλεη ην κέγεζνο ηνπ ράξηε πνπ ζα ρξεηαζηεί λα δεκηνπξγήζεη. Η ιεηηνπξγία ηεο είλαη πνιχ απιή. Γεκηνπξγεί έλαλ πίλαθα αθεξαίσλ κε ην κέγεζνο ηεο εηζφδνπ, δίλεη ηελ ηηκή 0 ζε φια ηα ζηνηρεία ηνπ πίλαθα θαη επηζηξέθεη ηνλ πίλαθα απηφλ ζηελ κεηαβιεηή ηεο main() xartiswithislands. To απνηέιεζκα γηα έλαλ ράξηε 10*10 είλαη ην εμήο: Πίνακασ Άδειοσ χάρτθσ του παιχνιδιοφ Η παξαπάλσ παξάζηαζε ηνπ ράξηε έγηλε δπλαηή κε ηελ κέζνδν ηεο Map PrintMap(), ε νπνία δέρεηαη ζηελ είζνδν έλαλ ράξηε (πίλαθα αθεξαίσλ) θαη ηνλ ηππψλεη κε ηελ παξαπάλσ κνξθή, ε νπνία απνδίδεη ηελ πξαγκαηηθή κνξθή ελφο πίλαθα Τνπνζέηεζε λεζηώλ ζηνλ ράξηε από ηελ θιάζε Map 32

33 Σν επφκελν βήκα ήηαλ ε αλάζεζε ζηελ θιάζε Map ηεο δεκηνπξγίαο λεζηψλ πάλσ ζηνλ ράξηε, ηα νπνία βέβαηα ζα ηα γλσξίδνπλ νη παίρηεο θαη δελ κπνξνχλ λα ηνπνζεηήζνπλ ηα πινία ηνπο ζε εθείλα ηα ζεκεία. Η ζθέςε ήηαλ φηη ηα λεζηά ζα θαηαιακβάλνπλ ην 1/10 πεξίπνπ ησλ ζεκείσλ ηνπ ράξηε, θαη ε απεηθφληζε ηνπο ζα γίλεη κε ηνλ αξηζκφ έλα 1 γηα λα μερσξίδνπλ απφ ηα ζεκεία ζαιάζζεο πνπ απεηθνλίδνληαη κε ηνλ αξηζκφ 0. Η πξψηε πινπνίεζε ινηπφλ απηήο ηεο ηδέαο πξαγκαηνπνηήζεθε κε ηηο κεζφδνπο CreateIsland() θαη DeployIslands(). Η CreateIsland() δεκηνπξγεί έλα λεζί ην νπνίν έρεη ζρήκα παξαιιειφγξακκν (φπσο αθξηβψο έλα πινίν ηνπ παηρληδηνχ Ναπκαρίαο). Η ιεηηνπξγία ηεο είλαη ε εμήο : Γέρεηαη ζηελ είζνδν ηνλ ράξηε ηνπ παηρληδηνχ θαη έλαλ αθέξαην αξηζκφ πνπ ππνδεηθλχεη ην κέγεζνο ηνπ λεζηνχ πνπ ζα δεκηνπξγεζεί. Αξρηθά κε ηελ ρξήζε ηεο Random δεκηνπξγεί δπν ηπραίνπο αθέξαηνπο αξηζκνχο νη νπνίνη ζα είλαη νη ζπληεηαγκέλεο ηνπ ζεκείνπ ζηνλ ράξηε πνπ ζα ηνπνζεηεζεί ην λεζί, θαη άιινλ έλαλ αθέξαην πνπ παίξλεη ηελ ηηκή 0 ή 1 θαη δειψλεη πσο ζα ηνπνζεηεζεί ην λεζί, νξηδφληηα ή θαηαθφξπθα. ηε ζπλέρεηα κεηξάεη ηα γεηηνληθά ζεκεία λα δεη αλ βξίζθεηαη εθεί άιιν λεζί θαη εάλ δελ βξίζθεηαη ηνπνζεηεί ην λεζί, ζε δηαθνξεηηθή πεξίπησζε επαλαιακβάλεη ηελ δηαδηθαζία κέρξη λα βξεη ηνλ θαηάιιειν ρψξν γηα ηελ ηνπνζέηεζε ηνπ λεζηνχ. Γηα είζνδν 4, δειαδή ην λεζί λα θαηαιακβάλεη ηέζζεξα ζεκεία ζηνλ ράξηε, κηα θιήζε ηεο κεζφδνπ δίλεη ην εμήο απνηέιεζκα : Πίνακασ Παράδειγμα ενόσ νθςιοφ πάνω ςτον χάρτθ Απφ ην απνηέιεζκα απηφ κπνξνχκε λα ζπκπεξάλνπκε φηη ε κέζνδνο CreateIsland() δεκηνχξγεζε ηπραία ηελ ζπληεηαγκέλε <4,2>, δηάιεμε ηπραία θαηεχζπλζε ηελ νξηδφληηα θαη ηνπνζέηεζε ην πινίν. Η επφκελε ηψξα θιήζε ηεο κεζφδνπ, εάλ δηαιέμεη λα ηνπνζεηήζεη λεζί ζηα ίδηα ζεκεία, ζα αληηιεθζεί φηη εθεί ππάξρεη άιιν λεζί θαη ζα επαλαιάβεη ηελ ιεηηνπξγία ηεο κέρξη λα βξεη θελφ ρψξν γηα ηελ ηνπνζέηεζε ηνπ λεζηνχ. Τπεχζπλε κέζνδνο γηα ηελ ηνπνζέηεζε φισλ ησλ λεζηψλ ζην ράξηε ηνπ παηρληδηνχ είλαη ε DeployIslands(), ε νπνία ζπλεξγάδεηαη άκεζα κε ηελ CreateIsland(). Γέρεηαη ζαλ είζνδν ηεο ηνλ ράξηε ηνπ παηρληδηνχ, θαη αλάινγα κε ην κέγεζνο ηνπ ράξηε θξίλεη πφζα λεζηά ζα δεκηνπξγεζνχλ. Δάλ ε δηάζηαζε ηνπ ράξηε είλαη απφ 10 έσο 13, θαιεί ηξεηο θνξέο ηελ CreateIsland() λα ηνπνζεηήζεη λεζηά κεγέζνπο 2, 3 θαη 5 ζηνλ άδεην ράξηε ηνπ παηρληδηνχ. Αληίζηνηρα αλ ε δηάζηαζε ηνπ ράξηε είλαη απφ 14 έσο θαη 17, κε ηελ ίδηα δηαδηθαζία ηνπνζεηεί ζ απηφλ δπν λεζηά κεγέζνπο 3, έλα κεγέζνπο 4 θαη έλα κεγέζνπο 5. Με ηελ ίδηα ινγηθή ζε έλα ράξηε κε 33

34 δηάζηαζε 18 έσο θαη 20 ζα δεκηνπξγεζνχλ λεζηά ζπλνιηθνχ κεγέζνπο 20. Η θηινζνθία ηεο κεζφδνπ είλαη ηα λεζηά λα θαηαιακβάλνπλ ην 1/10 πεξίπνπ ησλ ζεκείσλ ηνπ ράξηε. Έλα ηπραίν απνηέιεζκα ηεο πάλσ ζε έλαλ ράξηε 10* 10 είλαη ην εμήο : Πίνακασ Ο Χάρτθσ με νθςιά Σν απνηέιεζκα απηφ δελ καο ηθαλνπνίεζε αηζζεηηθά θαη, φπσο θάλεθε, ε δεκηνπξγία λεζηψλ αθξηβψο φπσο ηα θιαζζηθά πινία ζηελ Ναπκαρία δελ ήηαλ θαη ε πιένλ ελδεδεηγκέλε. Έηζη απνξξίςακε ηελ πξνεγνχκελε δηαδηθαζία θαη θαηαιήμακε ζηελ ηδέα γηα δεκηνπξγία ελφο λεζηνχ ζηνλ ράξηε, ηπραία δνκεκέλνπ θαη κε κέγεζνο αλάινγν ηνπ κεγέζνπο ηνπ ράξηε. ηελ main() ηνπ πξνγξάκκαηνο καο είρακε κείλεη ζηελ απφδνζε ηνπ ράξηε ηνπ παηρληδηνχ ζηελ κεηαβιεηή XartisWithIslands απφ ηελ κέζνδν CreateMap(). Σν επφκελν βήκα είλαη ε θιήζε κηαο λέαο κεζφδνπ ηεο θιάζεο Map πνπ ζα ηνπνζεηεί ζηελ κεηαβιεηή XartisWithIslands έλα λεζί, ην νπνίν ζα είλαη νξαηφ απφ ηνπο παίρηεο θαη δελ ζα κπνξνχλ λα ηνπνζεηήζνπλ ηα πινία ηνπο εθεί. Η κέζνδνο απηή νλνκάζηεθε CreateOneIsland(), δέρεηαη ζαλ είζνδν ηελ κεηαβιεηή XartisWithIslands (ηνλ ράξηε ηνπ παηρληδηνχ δειαδή),ηνπνζεηεί ζ απηήλ έλα λεζί θαη επηζηξέθεη ηελ ίδηα κεηαβιεηή ζηελ έμνδν ηεο, ε νπνία ηψξα παξηζηάλεη ηνλ επαπμεκέλν κε λεζί ράξηε ηνπ παηρληδηνχ. Η ιεηηνπξγία ηεο είλαη εμαηξεηηθά απιή θαη γηα λα πεηχρεη ηνλ ζθνπφ ηεο ρξεζηκνπνηεί άιιεο δπν κεζφδνπο ηεο θιάζεο Map, ηελ NextSimio() θαη ηελ NeosXartis(). Πξηλ πξνρσξήζνπκε ζηελ εμήγεζε ηεο ιεηηνπξγίαο ηεο κεζφδνπ CreateOneIsland(), είλαη απαξαίηεην λα αλαθέξνπκε ηελ ζεκαζία ηεο θιάζεο Point θαη ηελ ζπκπεξηθνξά ησλ NextSimio() θαη NeosXartis(). Απφ εδψ θαη πέξα ζα ρξεζηκνπνηνχκε ζπρλά ηελ έλλνηα «ζεκείν» ηνπ ράξηε, ην νπνίν παξηζηάλεηαη κε δπν κεηαβιεηέο αθεξαίσλ αξηζκψλ πνπ ππνδειψλνπλ ηηο ζπληεηαγκέλεο ηνπ ζεκείνπ ζηνλ ράξηε. Απηή ε αλαπαξάζηαζε, αθξηβψο επεηδή ρξεζηκνπνηεί δπν κεηαβιεηέο δελ είλαη θαζφινπ βνιηθή γηα ην πξφγξακκα καο. Τπάξρνπλ πεξηπηψζεηο πνπ κηα κέζνδνο ζα ρξεηαζηεί λα επηζηξέςεη έλα ζεκείν, φπσο ε κέζνδνο ησλ παηρηψλ πνπ επηιέγεη ζε πην ζεκείν ζα ξίμεη βνιή ν παίρηεο, θαη δελ ζα κπνξεί λα ην θαηαθέξεη, αθνχ ην ζεκείν παξηζηάλεηαη κε δπν κεηαβιεηέο θαη κηα κέζνδνο κπνξεί λα επηζηξέςεη κφλν κηα κεηαβιεηή. Γη απηφ ζθεθηήθακε λα δεκηνπξγήζνπκε κηα θιάζε 34

35 Point ε νπνία ζα νξίδεηαη απφ δπν κεηαβιεηέο. Έηζη έλα ζηηγκηφηππν ηεο θιάζεο απηήο ζα παξηζηάλεη έλα ζεκείν θαη νη δπν εζσηεξηθέο κεηαβιεηέο ηεο θιάζεο ζα ππνδειψλνπλ ηηο ζπληεηαγκέλεο ηνπ ζεκείνπ απηνχ. Σψξα ζα κπνξεί κηα κέζνδνο λα επηζηξέθεη έλα ζηηγκηφηππν ηεο θιάζεο Point θαη ην πξφβιεκα ιχζεθε. Οη κέζνδνη ηψξα NextSimio() θαη NeosXartis() ιεηηνπξγνχλ βνεζεηηθά πξνο ηελ CreateOneIsland(), αθνχ θαινχληαη κέζα ζην ζψκα ηεο. Η NextSimio() δέρεηαη ζηελ είζνδν έλα ζεκείν (ζηηγκηφηππν ηεο θιάζεο Point), επηιέγεη ζηελ ηχρε έλα απφ ηα γεηηνληθά ζεκεία ηνπ θαη ην επηζηξέθεη ζηελ έμνδν ηνπ. Αξρηθά κε ηελ βνήζεηα ηεο Random απφ ηελ έηνηκε βηβιηνζήθε ζπλαξηήζεσλ ηεο java, επηιέγεη έλα απφ ηα γεηηνληθά ζεκεία ηνπ ζεκείνπ πνπ δέρηεθε ζηελ είζνδν θαη ειέγρεη ηελ ηηκή ηνπ. Αλ ε ηηκή ηνπ είλαη 0, ηφηε επηζηξέθεη ην ζεκείν απηφ ζηελ έμνδν ηεο κεζφδνπ θαη κεηαηξέπεη κηα boolean κεηαβιεηή ζε false. Η κεηαβιεηή απηή έρεη ηελ ηηκή true μεθηλψληαο, θαη φηαλ γίλεηαη false ηφηε ε δηαδηθαζία απηή δελ επαλαιακβάλεηαη. ε πεξίπησζε ηψξα πνπ ην γεηηνληθφ ζεκείν πνπ επηιέρηεθε έρεη ηελ ηηκή 1, απνηειεί δειαδή ήδε ζεκείν ηνπ λεζηνχ, ηφηε ε boolean κεηαβιεηή παξακέλεη true θαη ε δηαδηθαζία επηινγήο λένπ γεηηνληθνχ ζεκείνπ επαλαιακβάλεηαη κέρξη λα βξεζεί θελφ ζεκείν, ζεκείν ζάιαζζαο δειαδή. Η κέζνδνο εμεηάδεη κε ηδηαίηεξε πξνζνρή ηα ζπλνξηαθά ζεκεία ηνπ ράξηε γηα λα κελ ηπρφλ επηιεγεί ζεκείν εθηφο ζπλφξσλ ηνπ ράξηε. Η NeosXartis() είλαη ε κέζνδνο ε νπνία ζα πάξεη ην ζεκείν πνπ κφιηο έρεη επηζηξέςεη ε NextSimio() θαη ηνλ ράξηε ηνπ παηρληδηνχ, θαη ζα κεηαηξέςεη ηελ ηηκή ηνπ ζεκείνπ απηνχ ζε 1, ζα δεκηνπξγήζεη δειαδή έλα λέν ζεκείν λεζηνχ. Οη δχν απηέο κέζνδνη πινπνηνχληαη ζην εζσηεξηθφ ηεο κεζφδνπ CreateOneIsland() σο εμήο : Αξρηθά επηιέγεηαη ηπραία έλα ζεκείν ηνπ θελνχ ράξηε θαη ε CreateOneIsland() ην κεηαηξέπεη ζε ζεκείν λεζηνχ αιιάδνληαο ηελ ηηκή ηνπ απφ 0 ζε 1. Έπεηηα θαιεί ηελ NextSimio() γηα λα επηιέμεη ην επφκελν γεηηνληθφ ζεκείν ηνπ λεζηνχ θαη ηειηθά ηελ NeosXartis() γηα λα αιιάμεη ηελ ηηκή ηνπ θαη λα ην κεηαηξέςεη έηζη ζε ζεκείν λεζηνχ. Βέβαηα παίξλεη ππ φςε ηεο ην κέγεζνο ηνπ ράξηε έηζη ψζηε αλ ε δηάζηαζε ηνπ ράξηε είλαη απφ 10 έσο 13 λα δεκηνπξγεί λεζί 10 ζεκείσλ, αλ είλαη απφ 14 έσο θαη 17 λα δεκηνπξγεί λεζί 15 ζεκείσλ, θαη αλ ε δηάζηαζε ηνπ ράξηε είλαη απφ 18 έσο θαη 20 ην λεζί λα έρεη κέγεζνο 20 ζεκείσλ. Με απηφλ ηνλ ηξφπν ε θιάζε Map απνδίδεη ζηελ κεηαβιεηή XartisWithIslands ηεο main ηνλ επαπμεκέλν κε λεζί ράξηε ηνπ παηρληδηνχ. Αλαιπηηθά ε δεκηνπξγία λεζηνχ απφ ηελ CreateOneIsland() βήκα πξνο βήκα θαίλεηαη ζηνπο παξαθάησ πίλαθεο, φπνπ ζε έλαλ ράξηε 10*10 δεκηνπξγείηαη έλα λεζί 10 ζεκείσλ : 35

36 Πίνακασ Δθμιουργία ενόσ νθςιοφ ςτον χάρτθ Γεκηνπξγία ζεκείνπ λεζηνχ ζην <1,7> Γεκηνπξγία ζεκείνπ λεζηνχ ζην <1,8> Γεκηνπξγία ζεκείνπ λεζηνχ ζην <0,8>

37 Γεκηνπξγία ζεκείνπ λεζηνχ ζην <0,9> Γεκηνπξγία ζεκείνπ λεζηνχ ζην <1,9> Γεκηνπξγία ζεκείνπ λεζηνχ ζην <2,9>

38 Γεκηνπξγία ζεκείνπ λεζηνχ ζην <3,9> Γεκηνπξγία ζεκείνπ λεζηνχ ζην <4,9> Γεκηνπξγία ζεκείνπ λεζηνχ ζην <4,8>

39 Γεκηνπξγία ζεκείνπ λεζηνχ ζην <3,8> Ο ηειεπηαίνο πίλαθαο απνηειεί ηνλ ηειηθφ ράξηε ηνπ παηρληδηνχ πνπ απνδίδεηαη ζηελ κεηαβιεηή XartisWithIslands, θαη ζα δνζεί απφ ηνλ δηαηηεηή (θιάζε Referee) ζηνπο παίρηεο γηα λα ηνπνζεηήζνπλ ηνλ ζηφιν ηνπο θαη λα ξίμνπλ ηηο βνιέο ηνπο. 3.4Σοποθέηηζη ζηόλος από ηοςρ παίσηερ και οι κανόνερ ηος παισνιδιού Δπηθνηλσλία δηαηηεηή θαη παηρηώλ γηα ηελ ηνπνζέηεζε ζηόινπ Αθνχ δεκηνπξγήζεθε ν ράξηεο ηνπ παηρληδηνχ κε ην λεζί, ην επφκελν βήκα είλαη ε ηνπνζέηεζε απφ ηνπο παίρηεο ηνπ ζηφινπ ηνπο ζηνλ ράξηε. Δίλαη επζχλε ηνπ δηαηηεηή λα γλσζηνπνηήζεη ζηνπο παίρηεο ηνλ ράξηε ηνπ παηρληδηνχ θαη λα ηνπο εηδνπνηήζεη γηα ην είδνο ηνπ ζηφινπ πνπ ζα πξέπεη λα ηνπνζεηήζνπλ απηνί κε ηελ ζεηξά ηνπο ζηνλ ράξηε. Απηή ε ινγηθή ζηνλ αληηθεηκελνζηξεθή πξνγξακκαηηζκφ πνπ ρξεζηκνπνηεί ε java πινπνηείηαη κε ηελ απνζηνιή κελπκάησλ κεηαμχ ηεο θιάζεο Referee (δηαηηεηήο) θαη ησλ θιάζεσλ πνπ πινπνηνχλ ηνπο παίρηεο. Απηφ πνπ ζθεθηήθακε είλαη φηη ν ζηφινο ησλ παηρηψλ ζα πξέπεη λα κεηαβάιιεηαη αλάινγα κε ην κέγεζνο ηνπ ράξηε θαη λα κελ είλαη ν θιαζζηθφο ζηφινο πνπ φινη γλσξίδνπκε απφ ην επηηξαπέδην παηρλίδη ηεο Ναπκαρίαο. πγθεθξηκέλα ζην θιαζζηθφ παηρλίδη ηεο Ναπκαρίαο, φπνπ ν ράξηεο έρεη δηαζηάζεηο 10*10, ηα πινία πνπ έρνπλ ζηελ δηάζεζε ηνπο νη παίρηεο πξνο ηνπνζέηεζε είλαη έλα αεξνπιαλνθφξν (5 ζεκεία ζηνλ ράξηε), έλα ζσξεθηφ (4), κία θξεγάηα (3), έλα ππνβξχρην (3) θαη κηα ηνξπηιάθαηνο (2). Η πινπνίεζε ινηπφλ ηνπ κεηαβαιιφκελνπ ράξηε αλάινγα κε ην κέγεζνο ηνπ ράξηε ζα γίλεη αθξηβψο κε ηνλ ίδην ηξφπν πνπ δεκηνπξγήζεθε θαη ην 39

40 λεζί. Με δεδνκέλν φηη ζην επηηξαπέδην παηρλίδη ηα πινία θαηαιακβάλνπλ 17 ζεκεία απφ ηα 100 ηνπ ράξηε, ηφηε γηα ράξηε κε δηάζηαζε απφ 10 έσο θαη 13, ν δηαηηεηήο εηδνπνηεί ηνπο παίρηεο γηα ηνπνζέηεζε ζηφινπ 17 ζεκείσλ, γηα ράξηε κε δηάζηαζε απφ 14 έσο θαη 17 εηδνπνηεί γηα ηνπνζέηεζε ζηφινπ 24 ζεκείσλ ζηνλ ράξηε θαη ηέινο, γηα ράξηε δηάζηαζεο απφ 18 έσο θαη 20 εηδνπνηεί γηα ηνπνζέηεζε ζηφινπ 34 ζεκείσλ. απηφ ην ζεκείν ε θιάζε Referee ηππψλεη κέζσ ηεο main() ην εμήο κήλπκα ζηελ νζφλε γηα ράξηε δηαζηάζεσλ 10*10 : «ΔΙΑΣΗΣΗ : παπακαλώ ηοποθεηείζηε ηα πλοία ζαρ ζηον σάπηη» «ΔΙΑΙΣΗΣΗ : ο σάπηηρ είναι 10*10, οπόηε ο ζηόλορ πος ππέπει να ηοποθεηήζεηε είναι ένα αεποπλανοθόπο (5), ένα θωπηκηό (4), μια θπεγάηα (3), ένα ςποβπύσιο (3) και μια ηοππιλάκαηορ (2)» Γηα ράξηε δηαζηάζεσλ 15*15 : «ΔΙΑΙΣΗΣΗ : ο σάπηηρ είναι 15*15, οπόηε ο ζηόλορ πος ππέπει να ηοποθεηήζεηε είναι ένα αεποπλανοθόπο (5), δςο θωπηκηά (4), δςο θπεγάηερ (3), ένα ςποβπύσιο (3) και μια ηοππιλάκαηορ (2)» Καη γηα ράξηε 20*20 : «ΔΙΑΙΣΗΣΗ : ο σάπηηρ είναι 20*20, οπόηε ο ζηόλορ πος ππέπει να ηοποθεηήζεηε είναι δςο αεποπλανοθόπα (5), δςο θωπηκηά (4), δςο θπεγάηερ (3), δςο ςποβπύσια (3) και δςο ηοππιλάκαηοι (2)» Έπεηηα δεκηνπξγνχληαη ζηελ main() ηα ζηηγκηφηππα ησλ θιάζεσλ πνπ πινπνηνχλ ηνπο 4 δηαθνξεηηθνχο παίρηεο πνπ δεκηνπξγήζακε. Γηα ηελ δηαθνξεηηθή ζπκπεξηθνξά ησλ παηρηψλ θαη ηελ μερσξηζηή επθπΐα πνπ παξνπζηάδνπλ ζα κηιήζνπκε αξγφηεξα. Πξνο ην παξφλ απηφ πνπ καο ελδηαθέξεη είλαη ν ηξφπνο πνπ απηνί ηνπνζεηνχλ ηνλ ζηφιν ηνπο ζηνλ ράξηε, ν νπνίνο είλαη ν ίδηνο γηα φινπο ηνπο παίρηεο. Γηα ηνλ ζθνπφ απηφ ζηελ main() δειψλνληαη 2 κεηαβιεηέο ηχπνπ πίλαθα αθεξαίσλ αξηζκψλ, νη XartisWithShips_1 θαη XartisWithShips_2, θαη δεκηνπξγνχληαη ζ απηέο δπν ράξηεο κε ηελ βνήζεηα ηεο κεζφδνπ CreateMap() ηεο θιάζεο Map. ηε ζπλέρεηα νη δχν απηέο κεηαβιεηέο παίξλνπλ ηελ ηηκή ηεο κεηαβιεηήο XartisWithIslands, δειαδή απνδίδεηαη ζ απηέο ν ράξηεο ηνπ παηρληδηνχ κε ην λεζί, θαη δίλνληαη απφ ηνλ δηαηηεηή ζηνπο δπν αληηπάινπο παίρηεο αληίζηνηρα γηα λα ηνπνζεηήζνπλ ηα πινία ηνπο. 40

41 3.4.2 Τνπνζέηεζε ηνπ ζηόινπ από ηνπο παίρηεο Πξηλ απφ ηελ ζθέςε γηα κεηαβαιιφκελν ράξηε, ε ηνπνζέηεζε ηνπ ζηφινπ ήηαλ ππφζεζε ηεο κεζφδνπ DeployShipsClassic(), ε νπνία πινπνηνχληαλ απφ φιεο ηηο θιάζεηο πνπ αλαπαξηζηνχλ ηνπο παίρηεο κε ηνλ ίδην αθξηβψο ηξφπν. Η κέζνδνο απηή ηνπνζεηεί ηα πινία ζηνλ ράξηε αθξηβψο φπσο ε κέζνδνο DeployIslands() θαη CreateIsland() ηεο θιάζεο Map ζπλεξγάδνληαη γηα ηελ ηνπνζέηεζε ησλ λεζηψλ ζηνλ ράξηε. Πην ζπγθεθξηκέλα δεκηνπξγεί ηα πέληε πινία ηνπ επηηξαπέδηνπ παηρληδηνχ ηεο Ναπκαρίαο θαη ηα δίλεη ηηο εμήο ηηκέο γηα λα ηα μερσξίζνπκε απφ ηα ζεκεία ζάιαζζαο θαη ην λεζί ηνπ ράξηε, αιιά θαη κεηαμχ ηνπο : αεξνπιαλνθφξν (5) ηηκή 5 ζσξεθηφ (4) ηηκή 4 θξεγάηα (3) ηηκή 3 ππνβξχρην (6) ηηκή 6 ηνξπηιάθαηνο (2) ηηκή 2 ε παξέλζεζε βξίζθεηαη ην κέγεζνο πνπ θαηαιακβάλεη ην θάζε πινίν ζηνλ ράξηε θαη ε επηινγή ηεο ηηκήο γηα ην θάζε πινίν έγηλε κε βάζε ην κέγεζνο ηνπ, εθηφο απφ ην ππνβξχρην πνπ πήξε ηελ ηηκή 6 γηα λα μερσξίδεη απφ ηελ θξεγάηα πνπ έρεη θαη απηή κέγεζνο 3. Γελ ζα εμεγήζνπκε πεξαηηέξσ ηελ ιεηηνπξγία απηήο ηεο κεζφδνπ γηαηί πξψηνλ ε ιεηηνπξγία ηεο είλαη αθξηβψο ε ίδηα κε ηελ ιεηηνπξγία ηεο CreateIsland(), θαη δεχηεξνλ δηφηη ηειηθά δελ ρξεζηκνπνηήζακε απηήλ ηελ κέζνδν απφ ηελ ζηηγκή πνπ απνθαζίζακε φηη ν ράξηεο ζα πξέπεη λα κεηαβάιιεηαη αλάινγα κε ην κέγεζνο ηνπ ράξηε. Η κέζνδνο ησλ θιάζεσλ πνπ αλαπαξηζηνχλ ηνπο παίρηεο, ε νπνία ηειηθά απνθαζίζηεθε λα ηνπνζεηεί ηα πινία ζηνλ ράξηε, είλαη ε DeployShipsRandom(). Η DeployShipsRandom() ηνπνζεηεί ηα πινία ζηνλ ράξηε θαηά ηπραίν ηξφπν, αθξηβψο γηαηί ε ηνπνζέηεζε ηνπο δελ κπνξεί λα θξίλεη ηελ έθβαζε ηνπ παηρληδηνχ φπσο ζα δνχκε ζηελ επφκελε ελφηεηα. Γηα λα ην πεηχρεη απηφ ρξεζηκνπνηεί άιιεο 4 κεζφδνπο ηεο δηεπαθήο Player (δηεπαθή πνπ πεξηέρεη φιεο ηηο θνηλέο κεζφδνπο γηα ηνπο παίρηεο), ηηο CreateShip(), CreatePlusShip(), CreateSecondShip() θαη CreateSecondPlusShip(). Η CreateShip() παίξλεη ζηελ είζνδν ηνλ ράξηε ηνπ παηρληδηνχ κε ην λεζί θαη ην κέγεζνο ηνπ πινίνπ πνπ πξέπεη λα ηνπνζεηήζεη. Έπεηηα ιεηηνπξγεί αθξηβψο φπσο ε CreateIsland() γηα λα ηνπνζεηήζεη ηα πινία κε ηηκέο 5, 4, 3 θαη 2. Γη απηφ ην ιφγν ρξεζηκνπνηεί ηελ αθέξαηα κεηαβιεηή megethos, κεηξάεη ηα θελά ζεκεία ζηνλ ρψξν πνπ ηπραία ζα ηνπνζεηήζεη ην πινίν, θαη αλ απηά ηζνχληαη κε ηελ ηηκή ηεο κεηαβιεηήο megethos κεηαηξέπεη ηελ ηηκή απηψλ ησλ ζεκείσλ απφ 0 ζηελ ηηκή megethos. Γηα παξάδεηγκα γηα ηηκή ηεο κεηαβιεηήο megethos 4, ε κέζνδνο επηιέγεη ηπραία έλα ζεκείν ηνπ ράξηε θαη κηα θαηεχζπλζε, ειέγρεη ηα επφκελα 4 γεηηνληθά ζεκεία πξνο απηήλ ηελ θαηεχζπλζε γηα ην αλ βξίζθεηαη εθεί ην λεζί ή άιιν πινίν, θαη αλ φια απηά ηα ζεκεία απνηεινχλ ζεκεία ζάιαζζαο ηφηε κεηαηξέπεη ηελ ηηκή απηψλ ησλ ζεκείσλ απφ 0 ζε 4. Σν απνηέιεζκα απηφ θαίλεηαη ζηνλ παξαθάησ πίλαθα: 41

42 Πίνακασ Σο πλοίο κωρθκτό (4) πάνω ςτον χάρτθ Αθξηβψο κε ηνλ ίδην ηξφπν ε CreatePlusShip() δεκηνπξγεί ην ππνβξχρην, έλα πινίν ηξηψλ ζεκείσλ πνπ έρεη ηελ ηηκή 6. Απνηειεί μερσξηζηή κέζνδν γηαηί ελψ ην κέγεζνο ηνπ πινίνπ πνπ ζα ηνπνζεηεζεί είλαη 3, ε ηηκή πνπ ζα πάξεη είλαη 6 γηα λα μερσξίδεη απφ ην άιιν πινίν πνπ έρεη θαη απηφ κέγεζνο θαη ηηκή 3. Αληίζηνηρα νη CreateSecondShip() θαη CreateSecondPlusShip() δεκηνπξγνχλ πινία ίδηα κε ηηο πξνεγνχκελεο κεζφδνπο, κφλν πνπ απνδίδνπλ ζ απηά ηηο ηηκέο 15, 14, 13, 16 θαη 12, γηα λα μερσξίδνπλ απφ ηα πξνεγνχκελα πινία πνπ δεκηνπξγήζεθαλ. Η DeployShipsRandom() ηψξα ζπκπεξηθέξεηαη σο εμήο. Παίξλεη ζηελ είζνδν ηεο ηνλ ράξηε ηνπ παηρληδηνχ θαη αλάινγα κε ην κέγεζνο ηνπ ράξηε θαιεί ηηο παξαπάλσ κεζφδνπο γηα λα ηνπνζεηήζεη ηνλ ζηφιν ησλ παηρηψλ ζηνλ ράξηε θαη ηειηθά λα επηζηξέςεη ηνλ ράξηε ηνπ λεζηνχ κε ηνλ ζηφιν ηνπνζεηεκέλν. Αλαιπηηθά : Γηα δηάζηαζε ράξηε απφ 10 έσο θαη 13 : έλα αεξνπιαλνθφξν (5) ηηκή 5 έλα ζσξεθηφ (4) ηηκή 4 κηα θξεγάηα (3) ηηκή 3 έλα ππνβξχρην (6) ηηκή 6 κηα ηνξπηιάθαηνο (2) ηηκή 2 Γηα δηάζηαζε ράξηε απφ 14 έσο θαη 17 : έλα αεξνπιαλνθφξν (5) ηηκή 5 δπν ζσξεθηά (4) ηηκή 4 θαη 14 δπν θξεγάηεο (3) ηηκή 3 θαη 13 έλα ππνβξχρην (6) ηηκή 6 κηα ηνξπηιάθαηνο (2) ηηκή 2 Γηα δηάζηαζε ράξηε απφ 18 έσο θαη 20 : 42

43 δπν αεξνπιαλνθφξα (5) ηηκή 5 θαη 15 δπν ζσξεθηά (4) ηηκή 4 θαη 14 δπν θξεγάηεο (3) ηηκή 3 θαη 13 δπν ππνβξχρηα (6) ηηκή 6 θαη 16 δπν ηνξπηιάθαηνη (2) ηηκή 2 θαη 12 Ο ράξηεο πνπ επηζηξέθεη ηειηθά ε κέζνδνο DeployShipsRandom() ζα πεξάζεη ζηελ κεηαβιεηή XartisWithShips_1 γηα ηνλ πξψην παίρηε θαη ζηελ XartisWithShips_2 γηα ηνλ δεχηεξν παίρηε. Αθνχ ν δηαηηεηήο εμεηάζεη θαη ην βαζηθφ θαλφλα ηνπ παηρληδηνχ γηα ηελ ηνπνζέηεζε ησλ πινίσλ, ηφηε ηππψλνληαη ζηελ νζφλε νη δπν ράξηεο ησλ αληηπάισλ παηρηψλ κε ηνπνζεηεκέλα ηα πινία ηνπο. Φπζηθά, θάζε παίρηεο δελ γλσξίδεη ηνλ ράξηε ηνπ αληηπάινπ ηνπ. Γηα ράξηε 18*18 ν πίλαθαο ελφο παίρηε κε ηνλ ζηφιν ηνπ ηνπνζεηεκέλν είλαη ν παξαθάησ : Πίνακασ Ο χάρτθσ ενόσ παίχτθ με τον ςτόλο τοποκετθμζνο πάνω του Βαζηθόο θαλόλαο ηνπ παηρληδηνύ γηα ηελ ηνπνζέηεζε ησλ πινίσλ απηφ ην ζεκείν πξέπεη λα επηζεκάλνπκε ηνλ βαζηθφ θαλφλα ηνπ παηρληδηνχ. Απηφο ν θαλφλαο αθνξά ην πψο πξέπεη λα ηνπνζεηήζνπλ νη παίρηεο ηα πινία ηνπο ζηνλ ράξηε θαη βξίζθεηαη ζηελ γλψζε ηνπ δηαηηεηή, νπφηε είλαη ινγηθφ λα απνηειεί κέζνδν ηεο θιάζεο Referee. Ο θαλφλαο απηφο απαγνξεχεη ζηνπο παίρηεο λα ηνπνζεηήζνπλ 2 ή πεξηζζφηεξα πινία ηνπο θνιιεηά ην έλα δίπια ζην άιιν. ηελ αξρή πεξάζακε ηελ γλψζε απηνχ ηνπ θαλφλα θαη ζηνπο παίρηεο, ψζηε απηνί 43

44 γλσξίδνληαο ην, λα ηνπνζεηνχλ ηνλ ζηφιν ηνπο κε ηνλ λφκηκν ηξφπν. Μεηά φκσο αθήζακε απηή ηε γλψζε κφλν ζηνλ δηαηηεηή, δηφηη απηφο πξέπεη λα είλαη ν ππεχζπλνο γηα ηελ ζσζηή ηήξεζε ηνπ θαλφλα, θαη φρη νη παίρηεο. Η επηλφεζε απηνχ ηνπ θαλφλα έγηλε γηα λα κελ έρεη ζεκαζία ε ηνπνζέηεζε ησλ πινίσλ ζηε ξνή ηνπ παηρληδηνχ. Γειαδή λα εμαξηάηαη ε ζηξαηεγηθή πνπ αθνινπζεί ν θάζε παίρηεο γηα λα θηάζεη ζηελ λίθε κφλν απφ ηελ αθνινπζία ξίςεο βνιψλ θαη φρη απφ ην πψο ζα ηνπνζεηήζεη ηνλ ζηφιν ηνπ ζηνλ ράξηε. Αλ δελ ίζρπε απηφο ν θαλφλαο, φπσο ζην θιαζζηθφ επηηξαπέδην παηρλίδη, ζα κπνξνχζε θάπνηνο παίρηεο λα ηνπνζεηήζεη ηα πινία ηνπ ην έλα δίπια ζην άιιν θαη λα κπεξδέςεη έηζη ηνλ αληίπαιν ηνπ ζηελ πξνζπάζεηα απηνχ γηα βχζηζε ησλ πινίσλ. Με απηφλ ηνλ ηξφπν ε επθπΐα ηνπ θάζε παίρηε θξίλεηαη ζηελ ζηξαηεγηθή ηνπ παηρληδηνχ ηνπ θαη φρη ζηνλ ηξφπν ηνπνζέηεζεο ησλ πινίσλ ηνπ. Μφιηο ινηπφλ ν δηαηηεηήο δεηήζεη απφ ηνπο δπν αληίπαινπο παίρηεο λα ηνπνζεηήζνπλ ηνλ ζηφιν ηνπο ζηνλ ράξηε ηνπ παηρληδηνχ, απηνί επηζηξέθνπλ ζηελ main() ηνλ ράξηε κε ηα πινία ζηηο δπν κεηαβιεηέο XartisWithShips_1 θαη XartisWithShips_2. απηφ ην ζεκείν θαιεί θαη εθαξκφδεη ηελ κέζνδν BasicRule(), ε νπνία είλαη ππεχζπλε λα εμεηάζεη αλ νη δπν ζηφινη ηνπνζεηήζεθαλ κε ηνλ λφκηκν ηξφπν. πγθεθξηκέλα, πξηλ ηελ θιήζε ηεο κεζφδνπ, δειψλεηαη κηα boolean κεηαβιεηή BreakBasicRuleControl θαη παίξλεη ηελ ηηκή true. Έπεηηα ν θάζε παίρηεο ηνπνζεηεί ηα πινία ηνπ αληίζηνηρα ζηηο κεηαβιεηέο XartisWithShips_1 θαη XartisWithShips_2, θαη ηέινο ε κέζνδνο BasicRule() ειέγρεη ηνπο δπν ράξηεο θαη επηζηξέθεη ηελ ηηκή false ζηελ BreakBasicRuleControl αλ ν ζηφινο ηνπνζεηήζεθε κε ηνλ λφκηκν ηξφπν, αιιηψο ε ηηκή ηεο παξακέλεη true. Απφ ηελ ζηηγκή πνπ παξακέλεη true, ε δηαδηθαζία ηνπνζέηεζεο ησλ πινίσλ ζα πξέπεη λα επαλαιεθζεί γηα απηφλ ηνλ παίρηε. Γηα λα δνχκε ηψξα ηη ζπκβαίλεη ζην εζσηεξηθφ ηεο κεζφδνπ. Η BasicRule() δέρεηαη ζηελ είζνδν ηεο κηα απφ ηηο κεηαβιεηέο XartisWithShips_1 θαη XartisWithShips_2 πνπ ππνδειψλνπλ ηνλ ράξηε ησλ παηρηψλ κε ηα πινία θαη επηζηξέθεη ζηελ έμνδν ηεο κηα boolean ηηκή (true ή false δειαδή), ε νπνία πεξλάεη ζηελ κεηαβιεηή BreakBasicRuleControl. Η ιεηηνπξγία ηεο είλαη πάξα πνιχ απιή. Δμεηάδεη γηα θάζε ζεκείν ηνπ ράξηε πνπ απνηειεί ζεκείν πινίνπ ηα ζεκεία κε ηα νπνία απηφ ζπλνξεχεη. Αλ έζησ θαη έλα γεηηνληθφ ηνπ ζεκείν έρεη ηηκή δηαθνξεηηθή απφ ην 0, ην 1 θαη ηελ ηηκή ηνπ πινίνπ απηνχ ηνπ ζεκείνπ, ηφηε ε κέζνδνο επηζηξέθεη ηελ ηηκή true ζηελ BreakBasicRuleControl. ε δηαθνξεηηθή πεξίπησζε ε ηηκή ηεο κεηαβιεηήο παξακέλεη false. Απηφ ζεκαίλεη φηη ζε πεξίπησζε πνπ έλα γεηηνληθφ ζεκείν έρεη ηηκή δηαθνξεηηθή απφ απηέο πνπ αλαθέξζεθαλ, ηφηε ζα έρεη ζίγνπξα ηηκή άιινπ πινίνπ, πξάγκα πνπ απαγνξεχεηαη απφ ηνλ θαλφλα θαη γη απηφ ε ν παίρηεο ζα πξέπεη λα επαλαηνπνζεηήζεη ηα πινία ηνπ ζηνλ ράξηε. Σν παξαθάησ παξάδεηγκα ζα μεθαζαξίζεη θάπσο ηα πξάγκαηα. Δάλ γηα έλαλ ράξηε 10*10 έλαο παίρηεο ηνπνζεηήζεη κε ηνλ εμήο ηξφπν ηα πινία ηνπ : 44

45 Πίνακασ Παράνομθ τοποκζτθςθ πλοίων από τον παίχτθ Σφηε ν δηαηηεηήο εμεηάδνληαο φια ηα ζεκεία ηνπ ράξηε πνπ απνηεινχλ ζεκεία πινίσλ κε ηελ κέζνδν BasicRule(), ζα θηάζεη ζην ζεκείν κε ην θφθθηλν ρξψκα πνπ απνηειεί ζεκείν ηνπ αεξνπιαλνθφξνπ (5). Θα βξεη έηζη φηη ην απφ δεμηά γεηηνληθφ ηνπ ζεκείν έρεη ηελ ηηκή 4, απνηειεί δειαδή ζεκείν άιινπ πινίνπ, πξάγκα ην νπνίν απαγνξεχεηαη. Η κέζνδνο ινηπφλ ζα επηζηξέςεη ηελ ηηκή true ζηελ κεηαβιεηή BreakBasicRuleControl θαη ν παίρηεο ζα θιεζεί λα επαλαηνπνζεηήζεη ηνλ ζηφιν ηνπ. Έηζη κ απηφλ ηνλ ηξφπν ηειεηψλεη ε δεκηνπξγία φισλ ησλ απαξαίηεησλ ζηνηρείσλ γηα ηελ δηεμαγσγή ηνπ παηρληδηνχ θαη αξρίδεη ην πην ελδηαθέξνλ κέξνο, πνπ είλαη ν αληαγσληζκφο ησλ δπν αληηπάισλ παηρηψλ γηα ηελ επίηεπμε ηεο λίθεο Δθηύπσζε νζόλεο κέρξη απηό ην ζεκείν Η νζφλε ηνπ ππνινγηζηή κφιηο μεθηλήζνπκε ην παηρλίδη θαη βάινπκε δπν παίρηεο λα παίμνπλ αληίπαινη δείρλεη κέρξη απηφ ην ζεκείν : ΞΕΚΙΝΑΕΙ ΣΟ ΠΑΙΥΝΙΔΙ ΝΑΤΜΑΥΙΑ ο σάπηηρ είναι 10x10 ΔΙΑΙΣΗΣΗ: παπακαλώ ηοποθεηείζηε ηα πλοία ζαρ ΔΙΑΙΣΗΣΗ: ο σάπηηρ είναι 10x10, οπόηε ο ζηόλορ πος ππέπει να ηοποθεηηθεί είναι ένα αεποπλανοθόπο(5), ένα θωπηκηό(4), μια θπεγάηα(3), ένα ςποβπύσιο(3) και μια ηοππιλάκαηορ(2) ο σάπηηρ 1 μεηά ηην ηοποθέηηζη ηων πλοίων είναι: 45

46 : : : : : : : : : : ο σάπηηρ 2 μεηά ηην ηοποθέηηζη ηων πλοίων είναι: : : : : : : : : : : ΔΙΑΙΣΗΣΗ: ώπα για δπάζη. Αρ ξεκινήζεηε ηιρ βολέρ ζαρ 3.5 Έλεγσορ ηηρ ποήρ ηος παισνιδιού Τξόπνο δηεμαγσγήο ηνπ παηρληδηνύ θαη θιήζε ηεο κεζόδνπ ControlTheGame() Τπεχζπλνο γηα ηελ ζσζηή δηεμαγσγή ηνπ παηρληδηνχ είλαη ν δηαηηεηήο (θιάζε Referee). Αξρηθά ν δηαηηεηήο ζηέιλεη κήλπκα ζηνλ πξψην παίρηε λα παίμεη, λα ξίμεη ηελ βνιή ηνπ δειαδή. Αθνχ απηφο παίμεη, ν δηαηηεηήο εμεηάδεη αλ ε βνιή ηνπ ήηαλ επηηπρεκέλε ή φρη, αλ ρηχπεζε δειαδή πινίν ηνπ αληηπάινπ ηνπ ή ε βνιή ηνπ έπεζε ζηε ζάιαζζα. ηελ πξψηε πεξίπησζε ζηέιλεη κήλπκα ζηνλ πξψην παίρηε λα μαλαπαίμεη, εηδάιισο εηδνπνηεί ηνλ δεχηεξν παίρηε φηη ήξζε ε δηθηά ηνπ ζεηξά γηα βνιή. ε θάζε πεηπρεκέλε βνιή ν δηαηηεηήο εμεηάδεη ζηνλ ράξηε αλ έρεη βπζηζηεί 46

47 θάπνην πινίν ψζηε λα εηδνπνηήζεη ηνπο παίρηεο. Μφιηο έλαο απφ ηνπο δπν παίρηεο βπζίζεη φια ηα πινία ηνπ αληηπάινπ ηνπ, ν δηαηηεηήο ζηακαηά ηελ ξνή ηνπ παηρληδηνχ θαη αλαθνηλψλεη ηνλ δηαηηεηή. Μ απηφλ ηνλ ηξφπν νινθιεξψλεηαη κηα πιήξεο παξηίδα ηεο Ναπκαρίαο. Πξηλ θιεζεί ε θαηάιιειε κέζνδνο γηα ηελ δηεμαγσγή ηνπ παηρληδηνχ, ζα πξέπεη ζηελ ζπλάξηεζε main() λα νινθιεξσζνχλ θάπνηεο βνεζεηηθέο εληνιέο. Πην ζπγθεθξηκέλα δεκηνπξγνχληαη δχν κεηαβιεηέο ηχπνπ ράξηε αθεξαίσλ, νη XartisVolwn_1 θαη XartisVolwn_2. Απηέο νη κεηαβιεηέο παίξλνπλ ζαλ ηηκή ηνλ ράξηε ηνπ παηρληδηνχ κε ην λεζί, κε ζθνπφ λα δνζνχλ ζηνπο δπν παίρηεο αληίζηνηρα ψζηε απηνί λα ζεκεηψλνπλ εθεί ηηο βνιέο πνπ έρνπλ ξίμεη θαη λα ραξάζζνπλ ηελ ζηξαηεγηθή ηνπο. Σέινο, ν δηαηηεηήο ηππψλεη ην παξαθάησ κήλπκα ζηελ νζφλε θαη θαιεί ηελ κέζνδν ControlTheGame(). «ΔΙΑΙΣΗΣΗ : ώπα για δπάζη, αρ ξεκινήζεηε ηιρ βολέρ ζαρ» Η κέζνδνο ControlTheGame() Η κέζνδνο απηή παίξλεη ζαλ είζνδν ηνπο ηέζζεξηο δηαθνξεηηθνχο παίρηεο πνπ ππάξρνπλ, ηνπο δπν ράξηεο κε ηα ηνπνζεηεκέλα πινία ησλ παηρηψλ (XartisWithShips_1 θαη XartisWithShips_2) θαη ηνπο δπν ράξηεο πνπ δηαηίζεληαη ζηνπο παίρηεο γηα λα ξίμνπλ ηηο βνιέο ηνπο (XartisVolwn_1 θαη XartisVolwn_2). Γελ έρεη θάπνηα ζπγθεθξηκέλε έμνδν, απιά είλαη ππεχζπλε γηα ηελ ζσζηή δηεμαγσγή ηνπ παηρληδηνχ θαη κέζσ απηήο ν δηαηηεηήο ηππψλεη ζηελ νζφλε κήλπκα γηα ηνλ ληθεηή ηνπ παηρληδηνχ. Αξρηθά δεκηνπξγείηαη κηα boolean κεηαβιεηή GameIsNotOver θαη παίξλεη ηελ ηηκή true. Έπεηηα «αλνίγεη» κηα δνκή επαλάιεςεο, ε νπνία ζηακαηά κφλν φηαλ ε κεηαβιεηή απηή γίλεη false, φηαλ θάπνηνο παίρηεο δειαδή θηάζεη ζηε λίθε. Μέζα ζηελ δνκή ηεο επαλάιεςεο ρξεζηκνπνηνχκε κηα ηερληθή γηα λα κπνξνχκε λα παξαθνινπζήζνπκε ηελ εμέιημε ηνπ παηρληδηνχ βνιή-βνιή κε ην πάηεκα ηνπ πιήθηξνπ enter. Η ηερληθή απηή νλνκάδεηαη ρεηξηζκφο εμαηξέζεσλ θαη ζηελ java ην πεηπραίλνπκε απηφ κε ηελ εληνιή try{ catch{. Η θχξηα ιεηηνπξγία ηεο κεζφδνπ είλαη λα εηδνπνηεί ελαιιάμ ηνπο παίρηεο φηη ήξζε ε ζεηξά ηνπο λα ξίμνπλ βνιή, εθηφο θαη θάπνηνο παίρηεο κφιηο έρεη ξίμεη πεηπρεκέλε βνιή, νπφηε ζα πξέπεη λα μαλαπαίμεη. Απηφ ε ControlTheGame() ην θαηαθέξλεη κε ηελ boolean κεηαβιεηή FirstPlayersTurn, πνπ αξρηθά παίξλεη ηελ ηηκή true γηα λα παίμεη ν πξψηνο παίρηεο θαη, κεηά απφ θάζε άζηνρε βνιή αιιάδεη ηελ ηηκή ηεο ζε false γηα λα παίμεη ν δεχηεξνο παίρηεο. Σνλίδνπκε εδψ φηη ε ηηκή απηήο ηεο κεηαβιεηήο αιιάδεη κφλν κεηά απφ άζηνρε βνιή, έηζη ψζηε αλ θάπνηνο παίρηεο επζηνρήζεη λα κπνξεί λα μαλαπαίμεη. Αο δνχκε ηψξα ηη γίλεηαη φηαλ ε GameIsNotOver θαη ε FirstPlayersTurn είλαη true. Σα ίδηα ηζρχνπλ θαη φηαλ ε FirstPlayersTurn είλαη false γηα ηνλ δεχηεξν παίρηε, νπφηε δελ ηα αλαθέξνπκε. Σν πξψην πξάγκα πνπ εμεηάδεη ε κέζνδνο είλαη ε πξνεγνχκελε βνιή ηνπ ίδηνπ παίρηε, αλ πέηπρε πινίν ηνπ αληηπάινπ δειαδή ή αλ αζηφρεζε. ηελ δεχηεξε πεξίπησζε επηζηξέθεη ζηνλ παίρηε ηνλ ράξηε πνπ ζεκεηψλεη ηηο βνιέο ηνπ (XartisVolwn_1) αιιά θαη ηελ ηειεπηαία επηηπρεκέλε βνιή πνπ είρε απηφο. Απηέο ηηο πιεξνθνξίεο ηηο παίξλεη ν παίρηεο θαη επηζηξέθεη ηελ 47

48 επφκελε βνιή ηνπ. ηελ πξψηε πεξίπησζε φκσο, ν δηαηηεηήο είλαη ππνρξεσκέλνο λα εμεηάζεη αλ κεηά ηελ πξνεγνχκελε επηηπρεκέλε βνιή ν παίρηεο βχζηζε θάπνην πινίν ηνπ αληηπάινπ, θαη λα ηνλ εηδνπνηήζεη πξηλ απηφο απνθαζίζεη γηα ηελ επφκελε βνιή ηνπ. Απηφ γίλεηαη εθηθηφ κε ηέζζεξηο αθφκα κεζφδνπο ηεο θιάζεο Referee, ηηο CountShip, SinkShip, TimiSinkShip θαη CheckShip. CountShip: Η κέζνδνο απηή θξαηάεη ζε θάπνηεο κεηαβιεηέο (αζξνίζκαηα) πφζα κέξε απφ θάζε πινίν έρεη ρηππήζεη ν παίρηεο. Μεηά απφ θάζε επηηπρεκέλε βνιή ελεκεξψλεη ηα αζξνίζκαηα ησλ κεηαβιεηψλ ηεο, θαη φηαλ έλα πινίν έρεη βπζηζηεί, ηππψλεη ζηελ νζφλε ην εμήο κήλπκα : «ΔΙΑΣΗΣΗ : ο παίσηηρ μόλιρ βύθιζε ένα πλοίο ηος ανηιπάλος ηος» SinkShip: Η SinkShip εμεηάδεη ηα αζξνίζκαηα ησλ κεηαβιεηψλ πνπ κεηξάλε πφζα κέξε ηνπ θάζε πινίνπ έρνπλ ρηππεζεί. Όηαλ ινηπφλ έλα πινίν έρεη βπζηζηεί επηζηξέθεη κηα boolean κεηαβιεηή γηα λα ελεκεξψζεη ηηο άιιεο κεζφδνπο ηεο θιάζεο Referee γηα ην πνην πινίν ζπγθεθξηκέλα έρεη βπζηζηεί. TimiSinkShip: Η κέζνδνο TimiSinkShip θξαηάεη κηα boolean κεηαβιεηή θαη είλαη ππεχζπλε γηα λα πεξάζεη ζηνλ παίρηε ε ηηκή ηεο κεηαβιεηήο απηήο, πνπ ζα ηνλ εηδνπνηεί θάζε θνξά πνπ απηφο βπζίδεη έλα πινίν. CheckShip: Σέινο, ε CheckShip θαιείηαη κεηά απφ θάζε βχζηζε πινίνπ. θνπφο ηεο είλαη λα κεηαηξέςεη ζε false ηελ ηηκή πνπ ππνδεηθλχεη φηη έρεη βπζηζηεί έλα πινίν, αθνχ βέβαηα έρεη ελεκεξψζεη ηνλ παίρηε γη απηφ. Έηζη ε δηαδηθαζία θαηακέηξεζεο ησλ πεηπρεκέλσλ βνιψλ γηα ηελ βχζηζε άιισλ πινίσλ μαλαξρίδεη απφ ηελ αξρή. Απηφ πνπ γίλεηαη ινηπφλ, είλαη φηη ν δηαηηεηήο (θιάζε Referee) κεηά απφ θάζε επηηπρεκέλε βνιή επηζηξέθεη ζηνλ παίρηε ηελ Player.SuccessfulPlay() θαη κεηά απφ θάζε απνηπρεκέλε βνιή ηελ Player.FailedPlay(), θαη απηφ γηα λα εηδνπνηήζεη ηνλ παίρηε πνηα ήηαλ ε ηχρε ηεο πξνεγνχκελεο βνιήο ηνπ ψζηε λα επηιέμεη θαη απηφο θαηάιιεια ηελ επφκελε βνιή. Ακέζσο κεηά ν παίρηεο επηζηξέθεη κέζσ ησλ Player.SuccessfulPlay() θαη Player.FailedPlay() ην ζεκείν ζην νπνίν επέιεμε λα ξίμεη ηελ επφκελε βνιή ηνπ. Η επφκελε δνπιεηά ηεο ControlTheGame είλαη λα ελεκεξψζεη γηα ηελ θαηάζηαζε ηεο παξηίδαο κεηά απφ ηελ ηειεπηαία βνιή. Αξρηθά ηππψλεη ζηελ νζφλε κέζσ ηεο κεζφδνπ PrintMap() ηεο θιάζεο Map ηνλ ράξηε ηνπ παηρληδηνχ κε ην λεζί θαη ηα ηνπνζεηεκέλα πινία ηνπ αληηπάινπ παίρηε γηα λα έρνπκε κηα γεληθή επνπηεία ηεο θαηάζηαζεο ηνπ παηρληδηνχ ζ απηφλ ηνλ γχξν. Έπεηηα εμεηάδεη ηελ ηηκή απηνχ ηνπ ζεκείνπ ηνπ ράξηε θαη ελεκεξψλεη αλάινγα κε έλα κήλπκα ζηελ νζφλε. Αλ ε ηηκή ζην ζεκείν απηφ είλαη 0 ηππψλεη : «ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ηην θάλαζζα» Αλ ε ηηκή ζην ζεκείν απηφ είλαη 1 ηππψλεη : 48

49 «ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ένα νηζί» Καη αλ ε ηηκή ζην ζεκείν απηφ είλαη δηάθνξε ηνπ 0 θαη ηνπ 1 ηππψλεη : «ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ένα πλοίο ηος ανηιπάλος» ηε ζπλέρεηα ελεκεξψλεη ηηο κεηαβιεηέο XartisWithShips θαη XartisVolwn γηα ηελ βνιή ηνπ παίρηε. πγθεθξηκέλα κεηαηξέπεη ηελ ηηκή ζην ζεκείν απηψλ ησλ ραξηψλ ζηελ ηηκή 8. Απηφ ην θάλεη γηα γλσξίδνπλ νη παίρηεο φηη ζ απηφ ην ζεκείν έρνπλ ήδε ξίμεη κηα βνιή ηνπο πξνεγνχκελα. απηφ ην ζεκείν ν δηαηηεηήο θαιεί ηελ κέζνδν ηεο ηδίαο θιάζεο CheckTheHit ε νπνία επηζηξέθεη ηελ boolean κεηαβιεηή hitship, θαη παίξλεη ηελ ηηκή true αλ ε βνιή ήηαλ επηηπρεκέλε θαη false γηα ην αληίζεην. Η ηηκή απηή ηεο κεηαβιεηήο θξίλεη θαη ηελ ζπλέρεηα ηνπ παηρληδηνχ. ε πεξίπησζε επηηπρεκέλεο βνιήο, hitship=false δειαδή, θξαηάεη ην ζεκείν απηφ γηα λα ην επηζηξέςεη ζηνλ παίρηε, θαη απμάλεη έλαλ αζξνηζηή (ηελ αθέξαηα κεηαβιεηή FirstGoals) θαηά έλα. Ο αζξνηζηήο απηφο είλαη πνιχ ζεκαληηθφο θαη ηελ ζεκαζία ηνπ ζα ηελ εμεγήζνπκε παξαθάησ. ε αληίζεηε πεξίπησζε αιιάδεη ηελ ηηκή ηεο FirstPlayersTurn, ψζηε λα παίμεη ν επφκελνο παίρηεο ακέζσο κεηά. Έπεηηα ε κέζνδνο ControlTheGame ηππψλεη ζηελ νζφλε ηηο εχζηνρεο βνιέο ηνπ θάζε παίρηε, ψζηε λα γλσξίδνπκε πνηνο πξνεγείηαη ζηελ παξηίδα θαη πσο έρεη εμειηρζεί ην παηρλίδη κέρξη ζηηγκήο. Η νζφλε ζε έλα παξάδεηγκα ράξηε 10*10 ζα δείμεη κέρξη απηφ ην ζεκείν : k=4,l=7 samepoint is: false islandplace is: false : : : : : : : : : : ο παίσηηρ 1 σηύπηζε ηο (4,7) ηο ζημείο αςηό έσει ηιμή : 0 ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ηην θάλαζζα'' Εύζηοσερ βολέρ ππώηος παίσηη = 5 Εύζηοσερ βολέρ δεύηεπος παίσηη = 4 Πάλσ απφ ηνλ ράξηε θαίλνληαη θάπνηεο βνεζεηηθέο κεηαβιεηέο ηνπ παίρηε, ηνλ ξφιν ησλ νπνίσλ ζα εμεγήζνπκε αξγφηεξα. Βιέπνπκε κε θφθθηλν ρξψκα ηα ζεκεία ζηα νπνία έρεη ξίμεη ν παίρηεο ηηο βνιέο ηνπ κέρξη ζηηγκήο. Παξαηεξνχκε αθφκα φηη ιείπεη 49

50 ην αεξνπιαλνθφξν (5) απφ ηνλ ράξηε θαη φηη νη εχζηνρεο βνιέο ηνπ πξψηνπ παίρηε είλαη 5. πκπεξαίλνπκε έηζη φηη ν παίρηεο έρεη βπζίζεη ην πινίν απηφ. Έηζη εμειίζζεηαη ην παηρλίδη γχξν-γχξν κέρξη θάπνηνο παίρηεο λα βπζίζεη φια ηα πινία ηνπ αληηπάινπ ηνπ. Όηαλ ζπκβεί απηφ ηφηε ηεξκαηίδεηαη ην παηρλίδη. Η ControlTheGame ην ρεηξίδεηαη απηφ εμεηάδνληαο ηηο κεηαβιεηέο FirstGoals θαη SecondGoals. Όηαλ ε πξψηε απφ ηηο δχν κεηαβιεηέο θηάζεη ηνλ αξηζκφ ησλ ζπλνιηθψλ ζεκείσλ πνπ απνηεινχλ πινία ζηνλ ράξηε, φηαλ δειαδή έλαο παίρηεο βπζίζεη φια ηα πινία ηνπ αληηπάινπ ηνπ, ηφηε ν δηαηηεηήο ηππψλεη κέζσ ηεο κεζφδνπ ην εμήο κήλπκα ζηελ νζφλε : «ΔΙΑΙΣΗΣΗ : ΣΕΛΟ ΠΑΙΥΝΙΔΙΟΤ. Ο ΠΑΙΥΣΗ 1 (Ή 2) ΚΕΡΔΙΕ» Γηα ην πξνεγνχκελν παξάδεηγκα κε ράξηε 10*10, ε νζφλε ζα δείμεη ζην ηέινο ηνπ παηρληδηνχ : : : : : : : : : : : ο παίσηηρ 2 σηύπηζε ηο (6,1) ηο ζημείο αςηό έσει ηιμή : 2 ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ένα πλοίο ηος ανηιπάλος!!'' ηο athroisma έσει ηιμή : 2 ΔΙΑΙΣΗΣΗ: ''Ο παίσηηρ 2 μόλιρ βύθιζε ένα πλοίο (2) ηος ανηιπάλος ηος'' Εύζηοσερ βολέρ ππώηος παίσηη = 8 Εύζηοσερ βολέρ δεύηεπος παίσηη = 17 ΔΙΑΙΣΗΣΗ : ΣΕΛΟ ΠΑΙΥΝΙΔΙΟΤ. Ο ΠΑΙΥΣΗ 2 ΚΕΡΔΙΕ!! Απφ ηα παξαπάλσ ζπκπεξαίλνπκε ηα εμήο. Ο παίρηεο 2 επηιέγεη λα ξίμεη βνιή ζην ζεκείν <6,1>. Η κέζνδνο ControlTheGame αλαγλσξίδεη ηελ ηηκή 2 ζ απηφ ην ζεκείν θαη απμάλεη ην αληίζηνηρν άζξνηζκα πνπ κεηξά ηα ρηππεκέλα κέξε απηνχ ηνπ πινίνπ (ηνξπηιάθαηνο (2)) θαηά 1, αιιά θαη ηηο εχζηνρεο βνιέο ηνπ δεχηεξνπ παίρηε θαηά 1. Δπεηδή ην άζξνηζκα απηφ έρεη ηηκή 2, φζα ηα ζπλνιηθά κέξε ηνπ πινίνπ απηνχ, ν δηαηηεηήο θαηαιαβαίλεη φηη ην πινίν απηφ κφιηο βπζίζηεθε θαη καο ελεκεξψλεη αλάινγα. Αθφκε βιέπνληαο φηη ν δεχηεξνο παίρηεο έρεη βπζίζεη φια ηα πινία ηνπ αληηπάινπ ηνπ, καο αλαθνηλψλεη φηη ν δεχηεξνο παίρηεο κφιηο θέξδηζε θαη φηη ην παηρλίδη ηεξκαηίδεηαη. Μ απηφλ ηνλ ηξφπν θαηαιήγεη ε κέζνδνο ControlTheGame θαη ε main() θαη έηζη ηεξκαηίδεη ην πξφγξακκα καο. 50

51 3.6 Ο παίσηηρ Η δηεπαθή Player Μέρξη ζηηγκήο έρνπκε έξζεη ζε αξθεηά ζεκεία ηεο εξγαζίαο ζε επαθή κε ηελ έλλνηα ηνπ παίρηε (πξάθηνξα ηερλεηήο λνεκνζχλεο πνπ κπνξεί λα παίδεη ην παηρλίδη Ναπκαρία). Πξψηα είδακε ζηελ main() ηελ δεκηνπξγία 4 ζηηγκηφηππσλ ησλ θιάζεσλ πνπ εθαξκφδνπλ ηελ δηεπαθή Player, ηελ δεκηνπξγία 4 δειαδή παηρηψλ δηαθνξεηηθήο επθπΐαο ν έλαο απφ ηνλ άιινλ. Δθηελή αλαθνξά επίζεο θάλακε ζηελ ελφηεηα φπνπ έλαο παίρηεο ρξεζηκνπνηεί ηηο κεζφδνπο CreateShip(), CreateSecondShip(), CreatePlusShip(), CreateSecondPlusShip(), DeployShipsClassic() θαη DeployShipsRandom() γηα λα ηνπνζεηήζεη ηπραία ηνλ ζηφιν ηνπ ζηνλ ράξηε. Σψξα ζα δνχκε πην νινθιεξσκέλα ηελ έλλνηα ηνπ παίρηε. Αξρηθά δεκηνπξγήζακε κηα θιάζε ελφο παίρηε κε ηνλ πξννπηηθή λα ηνπ απμάλνπκε ηελ επθπΐα ζηαδηαθά. Αξγφηεξα φκσο θαηαιήμακε ζην φηη ζα ήηαλ πην ρξήζηκν λα δεκηνπξγήζνπκε δηαθνξεηηθέο θιάζεηο γηα θάζε δηαθνξεηηθφ παίρηε. Δπεηδή φκσο νη δηαθνξεηηθνί παίρηεο έρνπλ θαη θάπνηεο ίδηεο ιεηηνπξγίεο, φπσο ε ηνπνζέηεζε ησλ πινίσλ ζηνλ ράξηε, ε δεκηνπξγία κηαο δηεπαθήο Player θαη θιάζεσλ πνπ λα εθαξκφδνπλ ηελ δηεπαθή ήηαλ ε ζνθφηεξε επηινγή. Η δηεπαθή Player είλαη κηα δνκή πνπ νξίδεη απιά θάπνηεο κεζφδνπο, ρσξίο φκσο λα ηηο πινπνηεί. Οξίδεη δειαδή ην φλνκα ηνπο, ηα νξίζκαηα ηνπο θαη ην ηη επηζηξέθεη ε θάζε κηα απφ απηέο. Οη θιάζεηο πνπ εθαξκφδνπλ ηελ δηεπαθή Player θαηφπηλ, πινπνηνχλ απηέο ηηο κεζφδνπο ζην εζσηεξηθφ ηνπο. Η δεκηνπξγία ηεο δηεπαθήο γίλεηαη γηαηί φινη νη παίρηεο εθηεινχλ θάπνηεο ελέξγεηεο (π.ρ. ηνπνζέηεζε πινίσλ, ξίςε βνιήο), άιιεο θαηά ηνλ ίδην ηξφπν θαη άιιεο κε δηαθνξεηηθή ζπκπεξηθνξά ν έλαο απφ ηνλ άιιν. Η δηεπαθή Player απνηειείηαη θαηαξρήλ απφ ηηο κεζφδνπο CreateShip(), CreateSecondShip(), CreatePlusShip(), CreateSecondPlusShip(), DeployShipsClassic() θαη DeployShipsRandom() κέζσ ησλ νπνίσλ νη παίρηεο ηνπνζεηνχλ ηα πινία ηνπο ηπραία ζηνλ ράξηε. Αλαιπηηθά απηέο νη κέζνδνη εμεγνχληαη ζηελ ελφηεηα 3.4.2, νπφηε δελ ζα αλαθεξζνχκε πεξεηαίξσ ζ απηφ ην ζεκείν. Η Player φκσο πινπνηεί άιιεο ηέζζεξηο κεζφδνπο, ηελ RandomPlay(), ηελ RandomNextHit(), ηελ SuccessfulPlay() θαη ηελ FailedPlay(). Οη SuccessfulPlay() θαη FailedPlay() είλαη νπζηαζηηθά νη κέζνδνη κε ηηο νπνίεο παίδεηαη ην παηρλίδη. Δίλαη νη κέζνδνη πνπ επηζηξέθνπλ ην ζεκείν πνπ επηιέγεη ν θάζε παίρηεο λα ξίμεη ηελ επφκελε βνιή ηνπ, κεηά απφ επηηπρεκέλε βνιή κέζσ ηεο SuccessfulPlay() θαη κεηά απφ απνηπρεκέλε βνιή κέζσ ηεο FailedPlay(). Πξνθαλψο θαη θάζε παίρηεο πινπνηεί δηαθνξεηηθά απηέο ηηο δπν κεζφδνπο αλάινγα κε ηελ ζηξαηεγηθή πνπ έρεη γηα λα θηάζεη ζηε λίθε. Η RandomPlay() έρεη ζαλ ζθνπφ λα επηιέγεη έλα ηπραίν ζεκείν ζηνλ ράξηε. Γέρεηαη ζηελ είζνδν ηεο ηνλ ράξηε ησλ βνιψλ ηνπ παίρηε (XartisVolwn), θαη 51

52 επηζηξέθεη ην ζεκείν ζην νπνίν ν παίρηεο ζα ξίμεη ηελ επφκελε βνιή ηνπ. Δπηζηξέθεη δειαδή έλα ζηηγκηφηππν ηεο θιάζεο Point. Η ιεηηνπξγία ηεο βαζίδεηαη ζε δπν boolean κεηαβιεηέο, ηηο samepoint θαη IslandPlace. Η samepoint είλαη true φηαλ ζην ζεκείν πνπ ζέιεη λα επηιέμεη ν παίρηεο γηα ηελ βνιή ηνπ, έρεη ήδε ξίμεη βνιή ζε πξνεγνχκελν γχξν. Η IslandPlace είλαη true αληίζηνηρα, φηαλ ζην ζεκείν πνπ ζέιεη λα επηιέμεη ν παίρηεο γηα ηελ βνιή ηνπ ππάξρεη λεζί. Ο παίρηεο ινηπφλ επηιέγεη ηπραία κέζσ ηεο θιάζεο Random ηηο ζπληεηαγκέλεο ηνπ ζεκείνπ πνπ δηαιέγεη γηα ηελ ξίςε ηεο βνιήο ηνπ θαη εμεηάδεη ζηνλ ράξηε βνιψλ ηνπ ηελ ηηκή πνπ έρεη ην ζεκείν απηφ. Αλ έρεη ηελ ηηκή 8 ζεκαίλεη φηη ν παίρηεο έρεη ξίμεη ζ απηφ ην ζεκείν βνιή ζε πξνεγνχκελν γχξν, νπφηε ε samepoint παξακέλεη true. Με ηελ ίδηα ινγηθή αλ έρεη ηελ ηηκή 1 ζεκαίλεη φηη απηφ ην ζεκείν απνηειεί ζεκείν λεζηνχ, νπφηε ε IslandPlace παξακέλεη true. Γηα λα επηιεγεί ηειηθά ην ζεκείν γηα ηελ ξίςε βνιήο ζα πξέπεη θαη λα κελ έρεη μαλαξίμεη βνιή εθεί ν παίρηεο θαη λα κελ είλαη ζεκείν λεζηνχ. Θα πξέπεη δειαδή νη κεηαβιεηέο samepoint θαη IslandPlace λα είλαη false. Όζν ε κία απφ ηηο δπν ή θαη νη δπν είλαη true, ε δηαδηθαζία επηινγήο ζεκείνπ ζπλερίδεηαη. Η RandomNextHit() εθαξκφδεηαη κεηά απφ κηα επηηπρεκέλε βνιή. θνπφο ηεο είλαη ε επηινγή ελφο γεηηνληθνχ ζεκείνπ κε ην πξνεγνχκελν πνπ έγηλε ε πεηπρεκέλε βνιή. Η επηινγή απηή βέβαηα γίλεηαη ηπραία κε ρξήζε ηεο θιάζεο Random απφ ηελ βηβιηνζήθε ηεο java. Πξνθαλψο ε κέζνδνο απηή πξέπεη λα πξνζέμεη, φπσο θαη ε RandomPlay(), αλ ζην ζεκείν απηφ ν παίρηεο έρεη μαλαξίμεη βνιή ή αλ απηφ ην ζεκείν απνηειεί ζεκείν λεζηνχ. Έηζη ε ιεηηνπξγία ηεο κνηάδεη αξθεηά κε ηελ ιεηηνπξγία ηεο RandomPlay() θαζψο ρξεζηκνπνηεί ηελ ίδηα ηερληθή. απηφ ην ζεκείν αληηκεησπίζακε ην παξαθάησ πξφβιεκα. Θέιακε κεηά απφ κηα πεηπρεκέλε βνιή ν παίρηεο λα δηαιέγεη έλα γεηηνληθφ ζεκείν ηεο βνιήο απηήο ηπραία, γηα ξίςε βνιήο, θαζψο ζίγνπξα ζε θάπνην απφ απηά ηα ζεκεία ζα βξίζθεηαη πινίν. Καη έηζη νη πηζαλφηεηεο λίθεο γηα ηνλ παίρηε απηφλ απμάλνληαη. Τπάξρεη φκσο κηα πεξίπησζε πνπ θαηαιήγνπκε ζε αηέξκσλ βξφρν θαη ην πξφγξακκα καο κπαίλεη ζε κηα ζπλερή επαλάιεςε ρσξίο λα ηεξκαηίδεη πνηέ. Απηφ ζπκβαίλεη φηαλ φια ηα γεηηνληθά ζεκεία ηεο πξνεγνχκελεο πεηπρεκέλεο βνιήο είηε απνηεινχλ ζεκεία λεζηνχ, είηε ν παίρηεο έρεη μαλαξίμεη εθεί βνιή. Έηζη ε κέζνδνο δελ ζα κπνξεί λα επηιέμεη θαλέλα ζεκείν απφ απηά θαη ζα βξίζθεηαη κφληκα κέζα ζε κηα δνκή επαλάιεςεο πνπ δελ ζα ηειεηψλεη πνηέ. Σν πξφβιεκα απηφ ην ιχζακε κε ηελ βνήζεηα ηεο RandomPlay(). Δάλ ν παίρηεο βξεζεί ζ απηήλ ηελ θαηάζηαζε, ηφηε ε κέζνδνο θαιεί ηελ RandomPlay() γηα λα επηιέμεη έλα ηπραίν ζεκείν απφ φινλ ηνλ ράξηε θαη φρη κφλν απφ ηα γεηηνληθά ζεκεία ηεο πξνεγνχκελεο βνιήο. Έηζη ιχζεθε ην πξφβιεκα καο. Όια απηά ζα ηα δνχκε θαη αξγφηεξα φηαλ ζα εμεγήζνπκε πσο νη παίρηεο εθαξκφδνπλ απηέο ηηο κεζφδνπο ζηελ πξάμε. Όινη νη παίρηεο πνπ δεκηνπξγήζακε έρνπλ ηε ειάρηζηε λνεκνζχλε λα ζπκνχληαη ζε πνηα ζεκεία έρνπλ ξίμεη βνιέο ζηνπο πξνεγνχκελνπο γχξνπο ψζηε λα κελ μαλαξίμνπλ ζ απηά ηα ζεκεία ηηο επφκελεο βνιέο ηνπο. Δίπακε ζε πξνεγνχκελεο ελφηεηεο φηη φινη νη παίρηεο εθηεινχλ ηηο ίδηεο ιεηηνπξγίεο (ηνπνζέηεζε πινίσλ π.ρ.), εθηφο απφ ηνλ ηξφπν επηινγήο ζεκείνπ γηα βνιή. Απηφ ζεκαίλεη φηη φινη νη παίρηεο ρξεζηκνπνηνχλ ηηο κεζφδνπο ηεο δηεπαθήο Player θαηά ηνλ ίδην ηξφπν, εθηφο απφ ηηο SuccessfulPlay() θαη FailedPlay(). Έηζη ζα εμεηάζνπκε ηελ δηαθνξά ζηελ επθπΐα ησλ παηρηψλ κέζσ ηεο δηαθνξεηηθή εθαξκνγήο ησλ κεζφδσλ απηψλ απφ ηνλ θάζε παίρηε. 52

53 3.6.2 Ο παίρηεο RandomPlayer Ο πξψηνο παίρηεο πνπ δεκηνπξγήζακε είλαη ν RandomPlayer. Η ζηξαηεγηθή ηνπ είλαη εμαηξεηηθά απιή, αξθεηά αλεπαξθήο φκσο φζνλ αθνξά ηελ επθπΐα ηεο. Απηφο ν παίρηεο επηιέγεη πάληα έλα ηπραίν ζεκείν γηα λα ξίμεη ηελ βνιή ηνπ, αθφκα θαη κεηά απφ επηηπρεκέλε βνιή. Γειαδή θαη ε SuccessfulPlay() θαη ε FailedPlay() θαινχλ ζην εζσηεξηθφ ηνπο ηελ RandomPlay() γηα λα επηιέμεη έλα ηπραίν ζεκείν γηα βνιή. Οη πηζαλφηεηεο λίθεο απηνχ ηνπ παίρηε δειαδή είλαη αξθεηά κηθξέο ζε ζρέζε κε άιινπο παίρηεο δηφηη ζα πξέπεη λα βπζίζεη ηα πινία ηνπ αληηπάινπ ηνπ θαηά ηπραίν ηξφπν. απηφ ηνλ παίρηε βξίζθεηαη θαη ε κέζνδνο SuccessFulHit(), ε νπνία πξνζπαζεί κεηά απφ επηηπρεκέλε βνιή λα επηιέμεη γεηηνληθφ ζεκείν γηα ηελ επφκελε βνιή. Όπσο εμεγήζακε φκσο ζηελ πξνεγνχκελε ελφηεηα, ε κέζνδνο απηή θαηαιήγεη ζε αηέξκσλ βξφρν θαη έηζη δελ ρξεζηκνπνηήζεθε ηειηθά. Παξαθάησ θαίλεηαη έλα παηρλίδη ζην νπνίν παίδεη ν RandomPlayer γηα λα δνχκε ηελ ινγηθή ηνπ θαιχηεξα. πγθεθξηκέλα ζα δνχκε ηελ αληίδξαζε ηνπ κεηά απφ κηα απνηπρεκέλε βνιή θαη ηελ αληίδξαζε ηνπ κεηά απφ κηα επηηπρεκέλε βνιή : k=2,l=4 samepoint is: false islandplace is: false 0 : 0 : : : : : : : : : : ο παίσηηρ 1 σηύπηζε ηο (2,4) ηο ζημείο αςηό έσει ηιμή : 0 ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ηην θάλαζζα'' Εύζηοσερ βολέρ ππώηος παίσηη = 0 Εύζηοσερ βολέρ δεύηεπος παίσηη = 0 Δδψ παξαηεξνχκε φιε ηελ ινγηθή ξίςεο κηαο βνιήο. Πξψηα ν παίρηεο επηιέγεη ηπραία ην ζεκείν κε ζπληεηαγκέλεο <2,4>, ην νπνίν θαίλεηαη έληνλν θφθθηλν ρξψκα θαη ηνλ αξηζκφ 0. Οη κεηαβιεηέο samepoint θαη islandplace παίξλνπλ ηελ ηηκή false γηαηί ζην ζεκείν απηφ δελ έρεη μαλαξίμεη βνιή ν παίρηεο, νχηε απνηειεί ζεκείν λεζηνχ. Έηζη ξίρλεη ηελ βνιή ηνπ θαη «ρηππάεη» ζάιαζζα, αζηνρεί δειαδή. k=6,l=2 samepoint is: false islandplace is: false 53

54 0 : 0 : : : : : : : : : : ο παίσηηρ 1 σηύπηζε ηο (6,2) ηο ζημείο αςηό έσει ηιμή : 0 ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ηην θάλαζζα'' Εύζηοσερ βολέρ ππώηος παίσηη = 0 Εύζηοσερ βολέρ δεύηεπος παίσηη = 2 ηελ επφκελε βνιή ηνπ ηψξα ζπλερίδεη θαηά ηνλ ίδην ηξφπν ηελ ηπραία επηινγή ζεκείνπ θαη ξίρλεη βνιή ζην <6,2>, φπσο θαίλεηαη θαη ζηνλ ράξηε απφ πάλσ. Γηα λα δνχκε θαη ηελ αληίδξαζε ηνπ παίρηε κεηά απφ κηα επηηπρεκέλε βνιή : k=2,l=10 samepoint is: false islandplace is: false 0 : 0 : : : : : : : : : : ο παίσηηρ 1 σηύπηζε ηο (2,10) ηο ζημείο αςηό έσει ηιμή : 2 ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ένα πλοίο ηος ανηιπάλος!!'' ηο athroisma έσει ηιμή : 1 Εύζηοσερ βολέρ ππώηος παίσηη = 1 Εύζηοσερ βολέρ δεύηεπος παίσηη = 4 Καηά ηνλ ίδην ηξφπν κε πξηλ ν παίρηεο ξίρλεη ηπραία βνιή ζην <2,10>. Βιέπνπκε ζηνλ ράξηε κε έληνλν θφθθηλν ρξψκα φηη απηφ ην ζεκείν έρεη ηελ ηηκή 2 θαη άξα εθεί βξίζθεηαη πινίν. Έηζη ηνπ δίλεηαη ην δηθαίσκα λα μαλαπαίμεη. Όπσο βιέπνπκε θαη 54

55 ζηνλ παξαθάησ ράξηε φκσο ν παίρηεο μαλαξίρλεη ηπραία βνιή θαη δελ αλαδεηά έλα γεηηνληθφ ζεκείν ψζηε λα βπζίζεη ην πινίν κε ηηκή 2. ηο ship έσει ηιμή : 2 k=10,l=3 samepoint is: false islandplace is: false 0 : 0 : : : : : : : : : : ο παίσηηρ 1 σηύπηζε ηο (10,3) ηο ζημείο αςηό έσει ηιμή : 0 ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ηην θάλαζζα'' Εύζηοσερ βολέρ ππώηος παίσηη = 1 Εύζηοσερ βολέρ δεύηεπος παίσηη = 4 Δίλαη μεθάζαξν φηη ν RandomPlayer δελ δηαζέηεη αξθεηή επθπΐα ζην παηρλίδη ηνπ θαη έηζη δεκηνπξγήζεθε ε αλάγθε λα δεκηνπξγεζνχλ θαη άιινη παίρηεο κεγαιχηεξεο λνεκνζχλεο Ο παίρηεο StupidPlayer Δίδακε πξνεγνπκέλσο φηη ε πξψηε πξνζπάζεηα εμέιημεο ηνπ RandomPlayer ζηέθζεθε κε απνηπρία, αθνχ ε κέζνδνο SuccessFulHit() καο νδεγεί ζε κηα ζπλερή επαλάιεςε θαη ην πξφγξακκα καο δελ ηειεηψλεη πνηέ. Έηζη δεκηνπξγήζακε έλαλ λέν παίρηε κε ηελ νλνκαζία StupidPlayer. Η ζθέςε καο ήηαλ απηφο ν παίρηεο κεηά απφ θάζε πεηπρεκέλε βνιή λα επηιέγεη έλα γεηηνληθφ ζεκείν γηα βνιή, ψζηε κ απηφλ ηνλ ηξφπν λα βξεη θαη λα βπζίζεη ην πινίν πνπ βξίζθεηαη εθεί. Η επηινγή γεηηνληθνχ ζεκείνπ επηηεχρζεθε κε ηελ ρξήζε ηεο RandomNextHit(). Ο StupidPlayer θαιεί ζην εζσηεξηθφ ηεο SuccessfulPlay() ηελ RandomNextHit() θαη ζην εζσηεξηθφ ηεο FailedPlay() ηελ RandomPlay(). Γειαδή ξίρλεη ζπλερψο ηπραίεο βνιέο, θαη κφιηο πεηχρεη πινίν ηνπ αληηπάινπ ηνπ, δηαιέγεη έλα γεηηνληθφ ζεκείν γηα ηελ επφκελε βνιή ηνπ. Φπζηθά πξνζπαζήζακε λα ζπλερίζνπκε απφ απηφ ην ζεκείν, έηζη ψζηε ν παίρηεο λα βξεη θαη λα βπζίζεη ην πινίν πνπ βξίζθεηαη εθεί. Όκσο απηφ δελ έγηλε δπλαηφ κε ηελ ζπγθεθξηκέλε κεζνδνινγία θαη έηζη έπξεπε λα αλαδεηήζνπκε άιιν ηξφπν ζθέςεο ηνπ παίρηε. Ο StupidPlayer ινηπφλ, δελ έρεη θακία ινγηθή, αθνχ αλ 55

56 κεηά απφ πεηπρεκέλε βνιή επηιέμεη έλα γεηηνληθφ ζεκείν ην νπνίν απνηειεί ζεκείν ζάιαζζαο θαη φρη πινίνπ, αλ αζηνρήζεη δειαδή, ζα ζηακαηήζεη ηελ πξνζπάζεηα αλαδήηεζεο ηνπ πινίνπ θαη ζα ζπλερίζεη κε ηπραίεο ξίςεηο βνιψλ. Δπηπιένλ ππάξρεη θαη ε πεξίπησζε έλα απφ ηα γεηηνληθά ζεκεία ηεο πεηπρεκέλεο βνιήο λα απνηειεί ζεκείν λεζηνχ ή ζ απηφ ην ζεκείν λα έρεη μαλαξίμεη βνιή θαη ν παίρηεο λα ην επηιέμεη παξφιν πνπ γλσξίδεη φηη ζ εθείλν ην ζεκείν απνθιείεηαη λα βξίζθεηαη πινίν. Ωζηφζν, παξακέλεη πην «έμππλνο» απφ ηνλ RandomPlayer, έρεη δειαδή πεξηζζφηεξεο πηζαλφηεηεο λα ληθήζεη αλ παίμνπλ αληίπαινη, θαη γη απηφ απνθαζίζακε λα ηνλ θξαηήζνπκε. Η ζπκπεξηθνξά ηνπ StupidPlayer ζε έλα πξαγκαηηθφ παηρλίδη Ναπκαρίαο θαίλεηαη παξαθάησ : k=3,l=1 samepoint is: true islandplace is: false k=4,l=9 samepoint is: false islandplace is: false : : : : : : : : : : ο παίσηηρ 1 σηύπηζε ηο (4,9) ηο ζημείο αςηό έσει ηιμή : 4 ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ένα πλοίο ηος ανηιπάλος!!'' ηο athroisma έσει ηιμή : 1 Εύζηοσερ βολέρ ππώηος παίσηη = 6 Εύζηοσερ βολέρ δεύηεπος παίσηη = 4 Δδψ βιέπνπκε φηη αξρηθά ν StupidPlayer κε ηελ ρξήζε ηεο RandomPlay επηιέγεη ην ζεκείν <3,1>, ην νπνίν φκσο έρεη ηελ ηηκή 8, ην έρεη μαλαεπηιέμεη δειαδή ν παίρηεο. Έηζη ζπλερίδεη επηιέγνληαο πάιη ηπραία ην <4,9>. Απηφ ην ζεκείν έρεη ηελ ηηκή 4, βξίζθεηαη εθεί δειαδή πινίν ηνπ αληηπάινπ. ηελ επφκελε βνιή ηψξα ζα επηιέμεη ηπραία έλα απφ ηα ηέζζεξα γεηηνληθά ζεκεία ηνπ <4,9>. Βιέπνπκε ζηνλ ράξηε απφ θάησ κε έληνλν θφθθηλν ρξψκα φηη απηφ ζ απηφ ην ζεκείν ππάξρεη ζάιαζζα. Έηζη ν StupidPlayer αληί λα ζπλερίζεη φηαλ έξζεη πάιη ε ζεηξά ηνπ κε ηα γεηηνληθά ζεκεία κέρξη λα βξεη ην πινίν, ζα ζπλερίζεη ξίρλνληαο ηπραίεο βνιέο. 56

57 ηο ship έσει ηιμή : : : : : : : : : : : ο παίσηηρ 1 σηύπηζε ηο (3,9) ηο ζημείο αςηό έσει ηιμή : 0 ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ηην θάλαζζα'' Εύζηοσερ βολέρ ππώηος παίσηη = 6 Εύζηοσερ βολέρ δεύηεπος παίσηη = 4 Η ζπκπεξηθνξά ηνπ StupidPlayer, αλ δηαζέηεη πεξηζζφηεξε επθπΐα απφ ηνλ RandomPlayer, δελ έρεη θακία ινγηθή. Γη απηφλ ηνλ ιφγν δεκηνπξγήζακε θαη άιινπο παίρηεο, αξθεηά κεγαιχηεξεο επθπΐαο Ο παίρηεο SmartPlayer Η πξνζδνθία καο γηα δεκηνπξγία ελφο παίρηε εθάκηιιεο επθπΐαο ελφο κέζνπ αλζξψπνπ παίρηε Ναπκαρίαο, γέλλεζε ηνλ SmartPlayer. Απηφ πνπ έπξεπε λα θάλεη απηφο ν παίρηεο, θαη δελ έθαλαλ κέρξη ηψξα νη πξνεγνχκελνη, είλαη λα ςάρλεη κεηά απφ θάζε πεηπρεκέλε βνιή λα βξεη ην πινίν ην νπνίν ρηχπεζε κε ηελ βνιή ηνπ, θαη λα ην βπζίδεη. Λνγηθή ε νπνία δελ δηαθέξεη θαζφινπ απφ έλαλ θνηλφ άλζξσπν πνπ παίδεη ην παηρλίδη. Απηφ πνπ ζα εμεηάζνπκε παξαθάησ είλαη ην εζσηεξηθφ ησλ κεζφδσλ SuccessfulPlay() θαη FailedPlay(), γηα λα δνχκε πσο ζπκπεξηθέξεηαη ν «έμππλνο» παίρηεο κέρξη λα επηζηξέςεη ζηνλ δηαηηεηή ην ζεκείν πνπ ζα ξίμεη ηελ βνιή ηνπ. Όιε ε ινγηθή ηνπ παίρηε βαζίδεηαη ζηελ δηαθνξεηηθή ζπκπεξηθνξά πνπ έρεη αλάινγα κε ηελ θαηάζηαζε ηνπ παηρληδηνχ. Οη δπν πηζαλέο θαηαζηάζεηο ζηηο νπνίεο κπνξεί λα βξεζεί ν παίρηεο είλαη ε θαηάζηαζε ζηελ νπνία ςάρλεη ζηνλ ράξηε κέρξη λα βξεη πινίν ηνπ αληηπάινπ, θαη ε θαηάζηαζε ζηελ νπνία βξίζθεη ην πινίν ηνπ αληηπάινπ θαη πξνζπαζεί λα ην βπζίζεη. Μέρξη ηψξα νη παίρηεο πνπ δεκηνπξγήζακε άιιαδαλ ηελ ζπκπεξηθνξά ηνπο αλάινγα κε ην αλ ε πξνεγνχκελε βνιή ήηαλ επηηπρεκέλε ή φρη. Απηφο ν παίρηεο αιιάδεη ηελ ζπκπεξηθνξά ηνπ θαη αλάινγα κε ηελ 57

58 θαηάζηαζε ζηελ νπνία βξίζθεηαη. Με ιίγα ιφγηα έρεη ηέζζεξηο δηαθνξεηηθέο αληηκεησπίζεηο ζην παηρλίδη ηνπ : Μεηά απφ επηηπρεκέλε βνιή λα ςάρλεη ζηνλ ράξηε Μεηά απφ επηηπρεκέλε βνιή λα ζέιεη λα βπζίζεη έλα πινίν Μεηά απφ απνηπρεκέλε βνιή λα ςάρλεη ζηνλ ράξηε Μεηά απφ απνηπρεκέλε βνιή λα ζέιεη λα βπζίζεη έλα πινίν Η δηαθνξεηηθή θαηάζηαζε ηνπ παίρηε επηηπγράλεηαη κε ηελ enum κεηαβιεηή playerstate, ε νπνία κπνξεί λα πάξεη ηηο ηηκέο searchmap θαη foundship. Πάκε πξψηα λα εμεηάζνπκε ζηελ πεξίπησζε ηεο απνηπρεκέλεο βνιήο, δειαδή ζην εζσηεξηθφ ηεο FailedPlay(), ηελ θαηάζηαζε searchmap, φηαλ δειαδή ν παίρηεο ςάρλεη ζην πινίν λα βξεη πινίν ηνπ αληηπάινπ. Σφηε ε ζπκπεξηθνξά ηνπ είλαη απιή, ξίρλεη ηπραίεο βνιέο κέρξη λα ρηππήζεη θάπνην πινίν. Καιεί κε ιίγα ιφγηα ηελ RandomPlay() θαη απηή επηζηξέθεη έλα ηπραίν ζεκείν ζηνλ ράξηε γηα βνιή. Μφιηο ινηπφλ ρηππήζεη γηα πξψηε θνξά πινίν, κπαίλεη ζηελ θαηάζηαζε searchmap ζην εζσηεξηθφ ηεο SuccessfulPlay(). Η ηηκή ηεο θαηάζηαζεο καο δείρλεη ηελ θαηάζηαζε ηνπ παίρηε ζηελ πξνεγνχκελε βνιή ηνπ. Όιεο νη βνιέο πνπ ζα ξίμεη ν SmartPlayer βαζίδνληαη ζηελ έλλνηα ηεο ιίζηαο. Η ιίζηα ζηελ java είλαη κηα δνκή ε νπνία απνηειείηαη απφ αληηθείκελα θαη απφ δπν βαζηθέο ιεηηνπξγίεο, ηελ add() θαη ηελ remove(). Με ηελ πξψηε ηνπνζεηνχκε έλα αληηθείκελν ζην ηέινο ηεο ιίζηαο θαη κε ηελ δεχηεξε αθαηξνχκε ην πξψην αληηθείκελν ηεο ιίζηαο γηα ρξήζε. Η ινγηθή ηεο ιίζηαο είλαη ινηπφλ ε FIFO (First In-First Out). Ο παίρηεο ινηπφλ ηνπνζεηεί φια ηα ζεκεία ηνπ ράξηε ζε κηα ιίζηα θαη κεηά απφ θάζε επηηπρεκέλε βνιή θάλεη αλαδηάηαμε ησλ ζηνηρείσλ θαη θέξλεη πην θνληά ζηελ αξρή ηα γεηηνληθά ζεκεία γηα λα βξεη θαη λα βπζίζεη ην πινίν. Σν πξψην πξάγκα πνπ θάλεη έπεηηα απφ ηελ πξψηε επηηπρεκέλε βνιή είλαη λα δηαιέμεη θαηεχζπλζε γηα ηηο βνιέο ηνπ. Τπάξρνπλ ηέζζεξηο δηαθνξεηηθέο θαηεπζχλζεηο γχξσ απφ έλα ζεκείν, ε πάλσ, ε θάησ, ε αξηζηεξά θαη ε δεμηά. Σν πινίν κπνξεί λα βξίζθεηαη ζηελ θαηεχζπλζε πάλσ-θάησ ή ζηελ αξηζηεξά-δεμηά. Η πξψηε θαηεχζπλζε πνπ δηαιέγεη ν SmartPlayer είλαη ηπραία πξνθαλψο. Δκείο επηιέμακε λα δηαιέγεη θάζε θνξά ηελ δεμηά, κε ηα ζπλνξηαθά ζεκεία ηνπ ράξηε έρνπλ εηδηθή αληηκεηψπηζε, π.ρ. εάλ ε επηηπρεκέλε βνιή βξίζθεηαη ζηα δεμηά ζπλνξηαθά ζεκεία ηφηε δηαιέγεηαη ε θαηεχζπλζε αξηζηεξά. Η επηινγή θαηεχζπλζεο γίλεηαη κε ηελ θιήζε ηεο κεζφδνπ ChooseDirection(). Έπεηηα ν παίρηεο θαιεί ηελ ζπλάξηεζε anadiataksi(), ε νπνία έρεη δηπιφ ξφιν. Ο πξψηνο είλαη λα κεηξήζεη πφζα ζεκεία βξίζθνληαη ζηελ θαηεχζπλζε πνπ επηιέρζεθε κέρξη ην ηέινο ηνπ ράξηε, θαη λα επηζηξέςεη ηελ κέηξεζε ηνπ ζηελ αθέξαηα κεηαβιεηή r, θαη ν δεχηεξνο είλαη λα ηνπνζεηήζεη απηά ηα ζεκεία ζηελ αξρή ηεο ιίζηαο. Η ιεηηνπξγία ηεο θαίλεηαη ζηνλ παξαθάησ ράξηε : 58

59 Πίνακασ Αναδιάταξθ ςθμείων ςτθν λίςτα μετά από επιτυχθμζνθ βολι Έζησ φηη ν παίρηεο ξίρλεη βνιή ζην ζεκείν ηνπ ράξηε πνπ θαίλεηαη κε έληνλν θφθθηλν ρξψκα, θαη ε επηιεγκέλε θαηεχζπλζε είλαη ε δεμηά. Σφηε ε anadiataksi() κεηξάεη 3 ζεκεία ζ απηήλ ηελ θαηεχζπλζε κέρξη ην ηέινο ηνπ ράξηε, φπσο θαίλνληαη κε έληνλν καχξν ρξψκα. Ακέζσο ηα επαλαηνπνζεηεί ζηελ αξρή ηεο ιίζηαο έηζη ψζηε απηά λα είλαη νη επφκελεο βνιέο ηνπ παίρηε. Τπάξρεη φκσο ε πεξίπησζε ε πξψηε επηηπρεκέλε βνιή ηνπ παίρηε λα βξίζθεηαη ζε ζπλνξηαθφ ζεκείν θαη ε κέζνδνο λα επηζηξέθεη ηελ ηηκή 0 ζηελ r, αθνχ δελ ζα ππάξρνπλ άιια ζεκεία πξνο απηήλ ηελ θαηεχζπλζε. Απηφ ζπκβαίλεη φηαλ ε θαηεχζπλζε είλαη ε δεμηά ζηνλ παξαθάησ ράξηε : Πίνακασ Περίπτωςθ ςυνοριακοφ ςθμείου. Ο παίχτθσ αλλάηει τθν κατεφκυνςθ από δεξιά ςε αριςτερά απηήλ ηελ πεξίπησζε ν παίρηεο αιιάδεη θαηεχζπλζε θαη μαλαθαιεί ηελ anadiataksi() γηα λα εθηειέζεη ηελ ίδηα δηαδηθαζία κε πξηλ. Η αιιαγή θαηεχζπλζεο ζπκβαίλεη κε ηελ ChangeDirection() ε νπνία αιιάδεη ηελ θαηεχζπλζε σο εμήο : Αλ ε θαηεχζπλζε ήηαλ ε δεμηά, ηελ αιιάδεη ζηελ αξηζηεξά Αλ ε θαηεχζπλζε ήηαλ ε αξηζηεξά, ηελ αιιάδεη ζηελ πάλσ Αλ ε θαηεχζπλζε ήηαλ ε πάλσ, ηελ αιιάδεη ζηελ θάησ 59

60 Αλ ε θαηεχζπλζε ήηαλ ε θάησ, αιιάδεη ηελ θαηάζηαζε ηνπ παίρηε ζε searchmap ηελ ηειεπηαία πεξίπησζε ν παίρηεο έρεη ήδε εξεπλήζεη πξνο φιεο ηηο θαηεπζχλζεηο, νπφηε έρεη βπζίζεη ην πινίν θαη γη απηφ αιιάδεη ηελ θαηάζηαζε ζε searchmap. Μεηέπεηηα ν παίρηεο αθαηξεί ην πξψην ζεκείν ηεο ιίζηαο (απηφ ζα είλαη ην πξψην απφ δεμηά ζεκείν, αθνχ είπακε φηη πξνεπηιέγεηαη ε θαηεχζπλζε δεμηά) θαη ην επηζηξέθεη ζηνλ δηαηηεηή γηα βνιή. Πξηλ ην επηζηξέςεη ζηνλ δηαηηεηή φκσο, ειέγρεη ηελ ηηκή ηνπ ζεκείνπ απηνχ ζηνλ ράξηε βνιψλ ηνπ, κήπσο έρεη ηελ ηηκή 1 ή 8 γηαηί ζ απηήλ ηελ πεξίπησζε ην ζεκείν απηφ ζα απνηειεί ζεκείν λεζηνχ ή ν παίρηεο ζα έρεη μαλαξίμεη εθεί βνιή. Σφηε αιιάδεη θαηεχζπλζε κε ηελ ChangeDirection() θαη κε ηελ ίδηα δηαδηθαζία επηζηξέθεη ην πξψην ζεκείν απφ ηελ επφκελε θαηεχζπλζε. Μ απηφλ ηνλ ηξφπν ινηπφλ ν παίρηεο έρεη επηιέμεη θαηεχζπλζε, έρεη ξίμεη ηελ δεχηεξε βνιή ηνπ θαη ηειηθά αιιάδεη ηελ θαηάζηαζε ηνπ ζε foundship γηα λα κπεη ζηελ δηαδηθαζία λα βπζίζεη ην πινίν ηνπ αληηπάινπ. Η δεχηεξε βνιή ηνπ ζα είλαη κηα γεηηνληθή ηεο πξψηεο πεηπρεκέλεο φπσο είδακε παξαπάλσ. Σψξα ν SmartPlayer κπαίλεη ζηελ θαηάζηαζε foundship, δειαδή ζηελ δηαδηθαζία λα βπζίζεη ην πινίν πνπ ρηχπεζε κε ηελ πξψηε πεηπρεκέλε βνιή ηνπ. Η ζπκπεξηθνξά ηνπ βέβαηα είλαη δηαθνξεηηθή κεηά απφ πεηπρεκέλε ή απνηπρεκέλε βνιή ζ απηήλ ηελ θαηάζηαζε. Αο εμεηάζνπκε πξψηα ηελ πεξίπησζε ε δεχηεξε βνιή λα ήηαλ θαη απηήλ πεηπρεκέλε, δειαδή ηελ θαηάζηαζε foundship ζην εζσηεξηθφ ηεο SuccessfulPlay(). Η ζπκπεξηθνξά ηνπ παίρηε ζα είλαη αθξηβψο ε ίδηα κε απηήλ πξνεγνπκέλσο πνπ επέιεγε ηελ δεχηεξε βνιή ηνπ, κε κηα δηαθνξά. Σψξα δελ ρξεηάδεηαη λα επηιέμεη θαηεχζπλζε, είλαη ήδε επηιεγκέλε. Καηά ηνλ ίδην ηξφπν ινηπφλ θαιεί ηελ anadiataksi() θαη επηιέγεη ηελ επφκελε βνιή ηεο ζηελ ίδηα θαηεχζπλζε. Δάλ δελ ππάξρνπλ άιια ζεκεία ζηνλ ράξηε ζ απηήλ ηελ θαηεχζπλζε, αιιάδεη θαηεχζπλζε θαη επηιέγεη ην επφκελν γεηηνληθφ ζεκείν. Αλ ελψ βξίζθεηαη ζηελ θαηάζηαζε foundship αζηνρήζεη θάπνηα βνιή ηνπ, ηφηε θαηαιαβαίλεη φηη πξνο απηήλ ηελ θαηεχζπλζε δελ ππάξρνπλ άιια ζεκεία ηνπ αληίπαινπ πινίνπ λα ρηππήζεη θαη έηζη επηιέγεη ηελ αληίζεηε θαηεχζπλζε κε ηελ ChangeDirection() γηα λα ρηππήζεη εθεί φζα κέξε ηνπ πινίνπ δελ έρνπλ ρηππεζεί. Αθξηβψο κε ηελ ίδηα δηαδηθαζία κε πξηλ, θαιψληαο δειαδή ηελ anadiataksi(). Όηαλ ν παίρηεο βπζίζεη ην πινίν, ν δηαηηεηήο ηππψλεη αληίζηνηρν κήλπκα ζηε νζφλε θαη εηδνπνηεί ηνλ παίρηε. Ο παίρηεο κε ηελ ζεηξά ηνπ επηιέγεη ηελ επφκελε βνιή ηπραία, κε ηελ ρξήζε ηεο RandomPlay() θαη αιιάδεη ηελ θαηάζηαζε ηνπ ζε searchmap. Απηφ ζα γίλεη ζην εζσηεξηθφ ηεο SuccessfulPlay() ζηελ θαηάζηαζε foundship. Σελ ζπκπεξηθνξά ηνπ SmartPlayer ζα ηελ δνχκε ζηνπο παξαθάησ πίλαθεο απφ ηελ νζφλε ηνπ πξνγξάκκαηνο καο φηαλ ην ηξέρνπκε : 1) k=9,l=5 samepoint is: false islandplace is: false 60

61 : : : : : : : : : : ο παίσηηρ 2 σηύπηζε ηο (9,5) ηο ζημείο αςηό έσει ηιμή : 4 ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ένα πλοίο ηος ανηιπάλος!!'' ηο athroisma έσει ηιμή : 1 Εύζηοσερ βολέρ ππώηος παίσηη = 5 Εύζηοσερ βολέρ δεύηεπος παίσηη = 8 2) ηο ship έσει ηιμή : : : : : : : : : : : ο παίσηηρ 2 σηύπηζε ηο (9,6) ηο ζημείο αςηό έσει ηιμή : 4 ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ένα πλοίο ηος ανηιπάλος!!'' ηο athroisma έσει ηιμή : 2 Εύζηοσερ βολέρ ππώηος παίσηη = 5 Εύζηοσερ βολέρ δεύηεπος παίσηη = 9 3) 61

62 ηο ship έσει ηιμή : : : : : : : : : : : ο παίσηηρ 2 σηύπηζε ηο (9,7) ηο ζημείο αςηό έσει ηιμή : 4 ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ένα πλοίο ηος ανηιπάλος!!'' ηο athroisma έσει ηιμή : 3 Εύζηοσερ βολέρ ππώηος παίσηη = 5 Εύζηοσερ βολέρ δεύηεπος παίσηη = 10 4) ηο ship έσει ηιμή : : : : : : : : : : : ο παίσηηρ 2 σηύπηζε ηο (9,8) ηο ζημείο αςηό έσει ηιμή : 0 ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ηην θάλαζζα'' Εύζηοσερ βολέρ ππώηος παίσηη = 5 Εύζηοσερ βολέρ δεύηεπος παίσηη = 10 62

63 5) k=7,l=1 samepoint is: false islandplace is: false : : : : : : : : : : ο παίσηηρ 1 σηύπηζε ηο (7,1) ηο ζημείο αςηό έσει ηιμή : 0 ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ηην θάλαζζα'' Εύζηοσερ βολέρ ππώηος παίσηη = 5 Εύζηοσερ βολέρ δεύηεπος παίσηη = 10 6) : : : : : : : : : : ο παίσηηρ 2 σηύπηζε ηο (9,4) ηο ζημείο αςηό έσει ηιμή : 4 ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ένα πλοίο ηος ανηιπάλος!!'' ηο athroisma έσει ηιμή : 4 ΔΙΑΙΣΗΣΗ: ''Ο παίσηηρ 2 μόλιρ βύθιζε ένα πλοίο (4) ηος ανηιπάλος ηος'' Εύζηοσερ βολέρ ππώηος παίσηη = 5 Εύζηοσερ βολέρ δεύηεπος παίσηη = 11 7) ηο ship έσει ηιμή : 4 k=8,l=2 samepoint is: false islandplace is: false 63

64 : : : : : : : : : : ο παίσηηρ 2 σηύπηζε ηο (8,2) ηο ζημείο αςηό έσει ηιμή : 0 ΔΙΑΙΣΗΣΗ : μόλιρ σηύπηζερ ηην θάλαζζα'' Εύζηοσερ βολέρ ππώηος παίσηη = 5 Εύζηοσερ βολέρ δεύηεπος παίσηη = 11 Απφ ηα παξαπάλσ θαηαιαβαίλνπκε εχθνια ηελ ζπκπεξηθνξά ηνπ SmartPlayer. Οη βνιέο ηνπ θαίλνληαη κε έληνλν θφθθηλν ρξψκα. Αξρηθά βξίζθεηαη ζηελ θαηάζηαζε searchmap θαη ξίρλεη ζπλερψο ηπραίεο βνιέο. ην βήκα 1 πεηπραίλεη ζην ζεκείν <9,5> ην πινίν (4) ηνπ αληηπάινπ. Ακέζσο επηιέγεη θαηεχζπλζε ηελ δεμηά φπσο έρνπκε νξίζεη ηνλ παίρηε θαη ηνπνζεηεί φια ηα ζεκεία δεμηά ηνπ <9,5> ζηελ αξρή ηεο ιίζηαο ηνπ κέζσ ηεο κεζφδνπ anadiataksi(). ην βήκα 2 απιά αθαηξεί απφ ηελ ιίζηα ην πξψην ζεκείν, δειαδή ην <9,6> θαη ξίρλεη βνιή. Καη απηφ ην ζεκείν απνηειεί ζεκείν ηνπ πινίνπ. ην βήκα 3 ζπλερίδεη αθξηβψο φπσο πξηλ θαη ξίρλεη βνιή ζην <9,7>. Καη απηή ε βνιή είλαη πεηπρεκέλε. Δπαλαιακβάλεη ηελ δηαδηθαζία θαη ζην βήκα 4 ξίρλνληαο βνιή ζην <9,8>, ην νπνίν φκσο απνηειεί ζεκείν ζάιαζζαο. ην βήκα 5 παίδεη ν άιινο παίρηεο θαη αζηνρεί. Δξρφκαζηε ηψξα ζην βήκα 6. Δίκαζηε κεηά απφ κηα απνηπρεκέλε βνιή ζηελ θαηάζηαζε foundship. Ακέζσο ν παίρηεο αιιάδεη ηελ θαηεχζπλζε ηνπ ζε αξηζηεξά. Καιεί μαλά ηελ anadiataksi() θαη αθνινπζψληαο ηελ ίδηα δηαδηθαζία κε πξηλ αθαηξεί απφ ηελ ιίζηα ηνπ ην ζεκείν <9,4> γηα βνιή. Η βνιή είλαη επηηπρεκέλε, ν δηαηηεηήο ηππψλεη ζηελ νζφλε κήλπκα φηη ν παίρηεο κφιηο βχζηζε ην πινίν ηνπ αληηπάινπ ηνπ θαη ηνλ εηδνπνηεί αλάινγα. Έπεηηα ν παίρηεο αιιάδεη ηελ θαηάζηαζε ηνπ ζε searchmap θαη ζπλερίδεη ηηο ηπραίεο βνιέο ηνπ. Όπσο θαίλεηαη θαη ζην βήκα 7, ξίρλεη ηπραία βνιή ζην <8,2> κέζσ ηεο RandomPlay θαη αζηνρεί. Μεηά ηελ παξνπζίαζε ηνπ SmartPlayer θαίλεηαη μεθάζαξα φηη ζθέθηεηαη φπσο ζθεθηφκαζηε φινη καο φηαλ παίδνπκε ην παηρλίδη Ναπκαρία. Έρεη δειαδή επθπΐα παξφκνηα ελφο αλζξψπνπ. Ωζηφζν ππάξρεη έλα αθφκα ζεκείν ην νπνίν ρξεηάδεηαη βειηίσζε ζηελ ιεηηνπξγία ηνπ. Απηφ ζα παξνπζηαζηεί ζηνλ ηέηαξην θαη ηειεπηαίν παίρηε πνπ δεκηνπξγήζακε, ηνλ GeniousPlayer. 64

65 3.6.5 Ο παίρηεο GeniousPlayer Να βειηηψζνπκε θαη άιιν ην πψο ζθέθηεηαη έλαο παίρηεο γηα λα βπζίζεη ηα πινία ηνπ αληηπάινπ ηνπ ήηαλ ιίγν δχζθνιν, αθνχ ήδε ν SmartPlayer είλαη αξθεηά έμππλνο. Τπάξρεη φκσο έλα ζεκείν πνπ φινη νη παίρηεο, θαη ν SmartPlayer, ζθέθηνληαη ηειείσο ηπραία, ρσξίο θακία ινγηθή. Μέρξη ινηπφλ ν SmartPlayer λα πεηχρεη ηελ πξψηε ηνπ βνιή, ρξεζηκνπνηεί ηελ RandomPlay() θαη ξίρλεη ηπραίεο βνιέο ζηνλ ράξηε. απηφ ην θνκκάηη δηαθέξεη ν GeniousPlayer. Θα δνχκε παξαθάησ πσο. Ο GeniousPlayer πηνζεηεί φιε ηελ ινγηθή ηνπ SmartPlayer εθηφο απφ φηαλ απηφο θαιεί ηελ RandomPlay(), πξηλ δειαδή ρηππήζεη πινίν θαη αθνχ ην έρεη βπζίζεη. Ο GeniousPlayer ρξεζηκνπνηεί αληί απηνχ κηα έμππλε ζάξσζε ηνπ ράξηε κε ηελ νπνία βξίζθεη αξθεηά πην γξήγνξα ηα πινία απφ ην λα έξηρλε ηπραίεο βνιέο. Πην ζπγθεθξηκέλα, δεκηνπξγεί κηα ιίζηα θαη ηνπνζεηεί ζ απηήλ ηα ζεκεία ηνπ ράξηε κε ηνλ εμήο ηξφπν. Πξψηα ηνπνζεηεί ην ζεκείν <0,0> θαη ζπλερίδεη ηνπνζεηψληαο ην ηξίην απφ δεμηά ηνπ ζεκείν, δειαδή ην <0,4>. πλερίδεη έηζη κέρξη ην ηέινο ηνπνζεηψληαο έπεηηα ηα ζεκεία <0,8>, <1,1>, <1,5>, <1,9>, <2,2>, <2,6>, <3,3>.. θαη νχησ θάζε εμήο. Απηή είλαη ε πξψηε ζάξσζε ηνπ ράξηε θαη θαίλεηαη ζηνλ παξαθάησ πίλαθα κε ην θφθθηλν ρξψκα : Πίνακασ Ζξυπνθ ςάρωςθ του χάρτθ για τθν εφρεςθ του αντίπαλου ςτόλου Ακέζσο κεηά ηνπνζεηεί κηα δεχηεξε ζάξσζε ζεκείσλ ζηνλ ράξηε κε ηελ ίδηα ινγηθή κε ηελ πξνεγνχκελε, κφλν πνπ απηήλ ηελ θνξά ηνπνζεηεί ηα ζεκεία κε έλα θελφ αλάκεζά ηνπο, θαη φρη ηξία. Η δεχηεξε ζάξσζε θαίλεηαη ζηνλ παξαπάλσ πίλαθα κε καχξν έληνλν ρξψκα. Η ινγηθή ζ απηήλ ηελ ζάξσζε βξίζθεηαη ζην γεγνλφο φηη κ απηφλ ηνλ ηξφπν ν παίρηεο ξίρλεη βνιέο κφλν ζηα κηζά ζεκεία ηνπ ράξηε ζε ζρέζε κε ηνλ SmartPlayer θαη κπνξεί λα βξεη φια ηα πινία ηνπ αληηπάινπ παξ φια απηά. Κεξδίδεη έηζη ζε ηαρχηεηα θαη βπζίδεη πξψηνο ηνλ αληίπαιν ζηφιν. 65

66 ΚΔΦΑΛΑΗΟ 4 ΠΑΡΑΓΔΗΓΜΑΣΑ ΥΡΖΖ 4.1 Γιαδικαζία εγκαηάζηαζηρ Μέζα ζηνλ δίζθν (cd) πνπ δίλεηαη καδί κε ην παξφλ θείκελν ηεο δηπισκαηηθήο εξγαζίαο βξίζθνληαη δπν αξρεία, έλαο θάθεινο, θαη ην θείκελν ηεο δηπισκαηηθήο εξγαζίαο ζε ειεθηξνληθή κνξθή. Εικόνα Περιεχόμενο δίςκου τθσ εργαςίασ Σν πξψην αξρείν είλαη έλα αξρείν ηχπνπ εθαξκνγήο κε ηελ νλνκαζία jdk- 6u21-windows-i586. Σν JDK είλαη ε βάζε ηεο java, θαζψο πεξηέρεη ηνλ κεηαγισηηηζηή θαη ηνλ δηεξκελέα ηεο java αιιά άιια ζπζρεηηδφκελα αληηθείκελα πνπ απαηηνχληαη γηα ηελ κεηαγιψηηηζε θαη ηελ εθηέιεζε ηνπ θψδηθα. Η εγθαηάζηαζε ηνπ είλαη αξθεηά εχθνιε θαη απαξαίηεηε γηα λα ηξέμεη θάπνηνο ην πξφγξακκα. Όπσο θαη ζε θάζε αξρείν εγθαηάζηαζεο ην κφλν πνπ έρεη λα θάλεη θάπνηνο είλαη λα ην «ηξέμεη» παηψληαο δηπιφ θιηθ θαη κεηά λα αθνινπζήζεη ηηο νδεγίεο εγθαηάζηαζεο ηνπ JDK. Σν επφκελν βήκα είλαη ε απνζήθεπζε ηεο πιαηθφξκαο ECLIPSE κε ην νπνίν ζα αλνίμεη θαη ζα ηξέμεη ην πξφγξακκα απηφο πνπ ζέιεη λα κειεηήζεη ηελ εξγαζία. Η πιαηθφξκα ECLIPSE βξίζθεηαη κέζα ζηνλ νκψλπκν ζπκπηεζκέλν WinRar ZIP θάθειν. Με δεμί θιηθ πάλσ ηνπ αλνίγεη έλα παξάζπξν ζην νπνίν επηιέγνπκε ηελ εληνιή Extract files. 66

67 Εικόνα Αποςυμπίεςθ του φακζλου που περιζχει τθν πλατφόρμα Eclipse ην επφκελν παξάζπξν πνπ αλνίγεη, δίλεηαη ε δπλαηφηεηα λα επηιέμεη θάπνηνο ην ζεκείν ζην νπνίν ζέιεη λα απνζεθεχζεη ηελ θάθειν κε ηελ πιαηθφξκα. Εικόνα Αποκικευςθ του φακζλου Eclipse Αθνχ επηιέμεη πνπ ζέιεη λα γίλεη απηφ, π.ρ. ζηελ επηθάλεηα εξγαζίαο, αλνίγεη ηνλ θάθειν θαη ηξέρεη ην αξρείν κε ην φλνκα eclipse θαη ην ραξαθηεξηζηηθφ ηνπ εηθνλίδην. 67

68 Εικόνα Αρχείο Eclipse μζςα ςτον ομόνυμο φάκελο Σφηε αλνίγεη ην παξάζπξν ηνπ eclipse ην νπνίν δεηάεη απφ ηνλ ρξήζηε λα επηιέμεη ζε πνην workspace ζέιεη λα δνπιέςεη. Σν workspace είλαη ζηελ νπζία ν θάθεινο ν νπνίνο πεξηέρεη ηνλ θψδηθα ηνπ πξνγξάκκαηνο καο. Ο ρξήζηεο δελ έρεη παξά λα επηιέμεη ηελ ηνπνζεζία ηνπ workspace πνπ ππάξρεη κέζα ζην cd. Έηζη αλνίγεη ην πξφγξακκα καο. Εικόνα Επιλογι φακζλου Workspace 4.2 Δκηέλεζη ηος ππογπάμμαηορ 68

69 Αθνχ αλνίμεη ην πξφγξακκα, κπνξεί θάπνηνο λα ην ηξέμεη γηα δηαπηζηψζεη ηα απνηειέζκαηα ηεο εξγαζίαο. Μφιηο αλνίμεη ην eclipse εκθαλίδεηαη ε εμήο εηθφλα ζηελ νζφλε : Εικόνα Ο κϊδικασ τθσ εργαςίασ ςτο περιβάλλον Eclipse Πάλσ αξηζηεξά βξίζθεηαη ε επηινγή run. 69

70 Εικόνα 4.7 Επιλογι run ςτο Eclipse για το τρζξιμο του προγράμματοσ Δπηιέγνληαο ην αλνίγεη ε νζφλε θαη βιέπνπκε ην απνηέιεζκα ηνπ παηρληδηνχ. Μάιηζηα ππάξρεη ε δπλαηφηεηα λα βιέπεη θάπνηνο ηελ παξηίδα ηνπ παηρληδηνχ βνιή βνιή παηψληαο ην πιήθηξν enter. Σν πξφγξακκα έρεη ζηελ πξνεπηινγή ηνπ ηελ αλακέηξεζε κεηαμχ ηνπ SmartPlayer θαη ηνπ GeniousPlayer. 70

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP ηότοι εργαζηηρίοσ ην πιαίζην ηνπ ζπγθεθξηκέλνπ εξγαζηεξίνπ ζα παξνπζηαζηνύλ βαζηθέο ιεηηνπξγίεο ησλ Windows XP πνπ ζρεηίδνληαη

Διαβάστε περισσότερα

Ενδεικτικά Θέματα Στατιστικής ΙΙ

Ενδεικτικά Θέματα Στατιστικής ΙΙ Ενδεικτικά Θέματα Στατιστικής ΙΙ Θέματα. Έζησ όηη ζε δείγκα 35 θαηνηθηώλ πνπ ελνηθηάδνληαη ζε θνηηεηέο ζηελ Κνδάλε βξέζεθε ην κέζν κεληαίν κίζζσκα ζηα 5 επξώ, ελώ ζην Ζξάθιεην ην κέζν κεληαίν κίζζσκα ζε

Διαβάστε περισσότερα

Κεθάλαιο 1. Ενόηηηα 2 Πλάνο Μάρκεηινγκ. Εξγαιεία Μάξθεηηλγθ. Dr. Andrea Grimm Dr. Astin Malschinger

Κεθάλαιο 1. Ενόηηηα 2 Πλάνο Μάρκεηινγκ. Εξγαιεία Μάξθεηηλγθ. Dr. Andrea Grimm Dr. Astin Malschinger Κεθάλαιο 1 Ενόηηηα 2 Πλάνο Μάρκεηινγκ Εξγαιεία Μάξθεηηλγθ Dr. Andrea Grimm Dr. Astin Malschinger ΠΕΡΙΕΧΟΜΕΝΑ ΕΝΟΤΗΤΑ 2 ΠΛΑΝΟ ΜΑΡΚΕΤΙΝΓΚ Κεθάιαην 1: Εξγαιεία Μάξθεηηλγθ Σπγγξαθείο: Δξ. Andrea Grimm, Δξ.

Διαβάστε περισσότερα

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ. Απαντήσεις θέματος 2 Απηά πνπ έπξεπε λα γξάςεηε (δελ ρξεηαδόηαλ δηθαηνιόγεζε εθηόο από ην Γ) Α return a*b; Β 0:acegf2, 1: acegf23, 2: acegf234, 3:acegf2345, 4:acegf23456, 5:acegf234567, 6:acegf2345678,

Διαβάστε περισσότερα

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14 .1.10 ζκήζεις ζτ.βιβλίοσ ζελίδας 13 14 Ερωηήζεις Καηανόηζης 1. ύν δηαθνξεηηθέο επζείεο κπνξεί λα έρνπλ θαλέλα θνηλό ζεκείν Έλα θνηλό ζεκείν i ύν θνηλά ζεκεία iλ) Άπεηξα θνηλά ζεκεία ηηηνινγήζηε ηελ απάληεζε

Διαβάστε περισσότερα

Constructors and Destructors in C++

Constructors and Destructors in C++ Constructors and Destructors in C++ Σύνθεζη Πνιύ ζπρλά ζηε C++ κία θιάζε κπνξεί λα πεξηέρεη ζαλ κέιεδεδνκέλα αληηθείκελα άιισλ θιάζεσλ. Πνηα είλαη ε ζεηξά κε ηελ νπνία δεκηνπξγνύληαη θαη θαηαζηξέθνληαη

Διαβάστε περισσότερα

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση Πώς πρέπει να τιμολογεί ένα μονοπώλιο; Μέρξη ζηηγκήο ην κνλνπώιην έρεη ζεσξεζεί ζαλ κηα επηρείξεζε ε νπνία πσιεί ην πξντόλ ηεο ζε θάζε πειάηε ζηελ

Διαβάστε περισσότερα

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress. Αιγόξηζκνη 2.2.7.3 Γνκή επηινγήο Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ 1 Πνιιαπιή Δληνιή Δπηινγήο Αν ζπλζήθε_1 ηόηε εληνιέο_1 αλλιώς_αν ζπλζήθε_2 ηόηε εληνιέο_2...

Διαβάστε περισσότερα

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ: Απλό ηλεκτπικό κύκλυμα Η δηδαζθαιία ηνπ απινύ ειεθηξηθνύ θπθιώκαηνο ππάξρεη ζην κάζεκα «Φπζηθά» ηεο Ε ηάμεο ηνπ δεκνηηθνύ θαη επαλαιακβάλεηαη ζην κάζεκα ηεο Φπζηθήο ζηε Γ ηάμε ηνπ Γπκλαζίνπ.

Διαβάστε περισσότερα

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο : ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ Ον/μο:.. Γ Λσκείοσ Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη. 11-1-11 Εήηημα 1 ο : Α. Γηα ηελ ζπλάξηεζε f, λα βξείηε ην δηάζηεκα ζην νπνίν είλαη παξαγσγίζηκε θαζώο θαη

Διαβάστε περισσότερα

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο 1 ε Δξαζηεξηόηεηα Αλνίμηε ην αξρείν «Μεηαηόπηζε παξαβνιήο.ggb». Με ηε καύξε γξακκή παξηζηάλεηαη ε γξαθηθή παξάζηαζε ηεο f(x)=αx 2 πνπ ζα ηελ

Διαβάστε περισσότερα

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ Αιγόξηζκνη 2.2.7.4 Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ Εηζαγσγή ζηηο Αξρέο ηεο Επηζηήκεο ησλ Η/Υ 1 Άζθεζε 34 ζει 53 Έλα ςεθηαθό θσηνγξαθηθό άικπνπκ έρεη απνζεθεπηηθό ρώξν N Mbytes. Να αλαπηύμεηε

Διαβάστε περισσότερα

Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη

Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη Μάθημα 11 Τμήμα Μάπκεηινγκ και Διοίκηζηρ Λειηοςπγιών Τα δηαγξάκκαηα θαηάζηαζεο (state diagrams) ρξεζηκνπνηνύληαη γηα λα βνεζήζνπλ ηνλ πξνγξακκαηηζηή λα θαηαιάβεη

Διαβάστε περισσότερα

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2 ΣΡΙΓΩΝΟΜΔΣΡΙΚΔ EΞΙΩΔΙ Πνηα παξαδείγκαηα εμηζώζεσλ ή θαη πξνβιεκάησλ πηζηεύεηαη όηη είλαη θαηάιιεια γηα ηελ επίιπζε ηνπο θαηά ηελ δηάξθεηα ηεο δηδαθηηθήο δηαδηθαζίαο κέζα ζηελ ηάμε; 1 ε ΓΙΓΑΚΣΙΚΗ ΩΡΑ Α.

Διαβάστε περισσότερα

ΜΕΛΕΣΗ E.O.K. ΜΕ ΑΙΘΗΣΗΡΑ ΘΕΗ

ΜΕΛΕΣΗ E.O.K. ΜΕ ΑΙΘΗΣΗΡΑ ΘΕΗ ΜΕΛΕΣΗ E.O.K. ΜΕ ΑΙΘΗΣΗΡΑ ΘΕΗ ΦΤΛΛΟ ΕΡΓΑΙΑ (Θεοδώρα Γιώηη, Νικόλας Καραηάζιος- Τπεύθσνη εκ/κος Λ. Παπαηζίμπα) ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΤΜΗΜΑ:.., ΗΜΕΡΟΜΗΝΙΑ:.// Σε ακαμίδην πνπ κπνξεί λα θηλείηαη ρσξίο ηξηβέο πάλσ

Διαβάστε περισσότερα

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ ΘΔΜΑ Α Α1. α. Σ β. Σ γ. Λ δ. Λ ε. Λ ζη. Σ Α2. Γ Α3. 1. γ 2. ε 3. δ 4. α Β1. ΘΔΜΑ Β Οη ηειηθνί ππνινγηζηέο παίξλνπλ απνθάζεηο δξνκνιόγεζεο κόλν γηα ηα δηθά ηνπο απηνδύλακα

Διαβάστε περισσότερα

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12 ΑΚΖΔΗ ΤΜΝΑΗΟΤ - ΚΤΚΛΟ ΠΡΩΣΟ - - ηα πνηεο ηηκέο ηνπ ηα παξαθάησ θιάζκαηα δελ νξίδνληαη ; (Τπόδεημε : έλα θιάζκα νξίδεηαη αλ ν παξνλνκαζηήο είλαη δηάθνξνο ηνπ κεδελόο) - (-) - (-) - Να απινπνηεζνύλ ηα θιάζκαηα

Διαβάστε περισσότερα

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ Φξεζηκόηεηα καζεκαηηθώλ Αξρή θαηακέηξεζεο Όζα έδσζαλ νη Έιιελεο... Τξίγσλνη αξηζκνί Τεηξάγσλνη αξηζκνί Δπηκήθεηο αξηζκνί Πξώηνη αξηζκνί Αξηζκνί κε μερσξηζηέο ηδηόηεηεο Γίδπκνη πξώηνη

Διαβάστε περισσότερα

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots)

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots) Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots) 1.1 Σςνοπτική Πεπιγπαυή Hot Spots Σα ζεκεία αζύξκαηεο πξόζβαζεο πνπ επηιέρζεθαλ αλαθέξνληαη ζηνλ επόκελν πίλαθα θαη παξνπζηάδνληαη αλαιπηηθά ζηηο επόκελεο παξαγξάθνπο.

Διαβάστε περισσότερα

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν 2011-12

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν 2011-12 Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν 11-12 Project 6: Ταμίδη κε ηε Μεραλή ηνπ Φξόλνπ Υπεύζπλνη Καζεγεηέο: Ε. Μπηιαλάθε Φ. Αλησλάηνο Δρώηηζη 3: Πνηα από ηα παξαθάησ ΜΜΕ ηεξαξρείηε από πιεπξάο ζεκαζίαο;

Διαβάστε περισσότερα

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε Κβαντικοί Υπολογισμοί Πέκπηε Γηάιεμε Kπθισκαηηθό Mνληέιν Έλαο θιαζηθόο ππνινγηζηήο απνηειείηαη από αγσγνύο θαη ινγηθέο πύιεο πνπ απνηεινύλ ηνπο επεμεξγαζηέο. Σηνπο θβαληηθνύο ε πιεξνθνξία βξίζθεηαη κέζα

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ 1. ρεδίαζε πλδπαζηηθνύ Κπθιώκαηνο Έλα ζπλδπαζηηθό θύθισκα (Κ) έρεη ηξεηο εηζόδνπο A, B θαη C θαη κία έμνδν Y Y=A B+AC Να θαηαζθεπάζεηε ην ράξηε Karnaugh. B 0

Διαβάστε περισσότερα

Δπαστηπιότητα 1 - ανάπτςξη, μεταγλώττιση, αποσυαλμάτωση και. εκτέλεση ππογπάμματορ

Δπαστηπιότητα 1 - ανάπτςξη, μεταγλώττιση, αποσυαλμάτωση και. εκτέλεση ππογπάμματορ 1 Δπαστηπιότητα 1 - ανάπτςξη, μεταγλώττιση, αποσυαλμάτωση και εκτέλεση ππογπάμματορ Κάζε πξσί ν Karel μππλάεη ζην θξεβάηη ηνπ όηαλ έλα ξνκπόη-εθεκεξηδνπώιεο ηνπ πεηάεη ηελ εθεκεξίδα, πνπ αλαπαξηζηάλεηαη

Διαβάστε περισσότερα

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ.. ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου έλαξμεο 09.30 ιήμεο 09.45 Σην παξαθάησ ζρήκα θαίλεηαη ηκήκα ελόο πνιενδνκηθνύ ζρεδίνπ κηαο πόιεο. Οη ζθηαζκέλεο

Διαβάστε περισσότερα

Δξγαιεία Καηαζθεπέο 1 Σάμε Δ Δ.Κ.Φ.Δ. ΥΑΝΗΩΝ ΠΡΩΣΟΒΑΘΜΗΑ ΔΚΠΑΗΓΔΤΖ. ΔΝΟΣΖΣΑ 2 ε : ΤΛΗΚΑ ΩΜΑΣΑ ΔΡΓΑΛΔΗΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Ογθνκεηξηθό δνρείν

Δξγαιεία Καηαζθεπέο 1 Σάμε Δ Δ.Κ.Φ.Δ. ΥΑΝΗΩΝ ΠΡΩΣΟΒΑΘΜΗΑ ΔΚΠΑΗΓΔΤΖ. ΔΝΟΣΖΣΑ 2 ε : ΤΛΗΚΑ ΩΜΑΣΑ ΔΡΓΑΛΔΗΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Ογθνκεηξηθό δνρείν Δξγαιεία Καηαζθεπέο 1 Δ.Κ.Φ.Δ. ΥΑΝΗΩΝ ΠΡΩΣΟΒΑΘΜΗΑ ΔΚΠΑΗΓΔΤΖ ΔΝΟΣΖΣΑ 2 ε : ΤΛΗΚΑ ΩΜΑΣΑ ΔΡΓΑΛΔΗΑ ΚΑΣΑΚΔΤΔ Καηαζθεπή 1: Ογθνκεηξηθό δνρείν Καηαζθεπάδνπκε έλα νγθνκεηξηθό δνρείν από πιαζηηθό κπνπθάιη λεξνύ

Διαβάστε περισσότερα

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report. Case Study Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report. Βήκα 1 ο : Login ζηο Turnitin. Κάλεηε είζνδν ζην Turnitin κε

Διαβάστε περισσότερα

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά: ΑΝΤΗΛΙΑΚΑ Η Μηκή θαη ν Νηίλνο αλαξσηήζεθαλ πνην αληειηαθό πξντόλ παξέρεη ηελ θαιύηεξε πξνζηαζία ζην δέξκα ηνπο. Τα αληειηαθά πξντόληα έρνπλ έλα δείθηε αληειηαθήο πξνζηαζίαο (SPF), ν νπνίνο δείρλεη πόζν

Διαβάστε περισσότερα

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ Εδώ ζα ππνινγίζνπκε ην κεηαζρεκαηηζκό Fourier κεξηθώλ αθόκα ζεκάησλ, πξνζπαζώληαο λα μεθηλήζνπκε από ην κεηαζρεκαηηζκό Fourier γλσζηώλ ζεκάησλ

Διαβάστε περισσότερα

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2 TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 Δημιουργία σελίδων και βιβλίων Έλα θαηλνύξην βηβιίν πεξηέρεη κία άδεηα ζειίδα κε έλα άδεην background. Δελ κπνξνύκε λα μερσξίζνπκε

Διαβάστε περισσότερα

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS ηότοι εργαζηηρίοσ ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS ην πιαίζην ηνπ ζπγθεθξηκέλνπ εξγαζηεξίνπ ζα παξνπζηαζηεί ε δηαδηθαζία ηωλ ξπζκίζεωλ δηθηύνπ ζε ιεηηνπξγηθό ζύζηεκα Windows XP. Η δηαδηθαζία ζε γεληθέο γξακκέο

Διαβάστε περισσότερα

ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KARNAUGH

ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KARNAUGH ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KRNUGH Γηα λα θάλνπκε απινπνίεζε κηαο ινγηθήο ζπλάξηεζεο κε πίλαθα (ή ράξηε) Karnaugh αθνινπζνύκε ηα παξαθάησ βήκαηα:. Η ινγηθή ζπλάξηεζε ζα πξέπεη λα είλαη ζε πιήξε

Διαβάστε περισσότερα

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ 2015-2016

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ 2015-2016 Βάσεις Δεδομέμωμ Εξγαζηήξην V Τκήκα Πιεξνθνξηθήο ΑΠΘ 2015-2016 2 Σκοπός του 5 ου εργαστηρίου Σθνπόο απηνύ ηνπ εξγαζηεξίνπ είλαη: ε κειέηε ζύλζεησλ εξσηεκάησλ ζύλδεζεο ζε δύν ή πεξηζζόηεξεο ζρέζεηο ε κειέηε

Διαβάστε περισσότερα

Η αξρή ζύλδεζεο Client-Server

Η αξρή ζύλδεζεο Client-Server Η αξρή ζύλδεζεο Client-Server Δηαθνκηζηήο (Server) Πξνζθέξεη ππεξεζίεο ζηνπο Πειάηεο (Client) Μεγάινη ππνινγηζηέο γηα ηηο ππεξεζίεο Internet (π.ρ. WWW, FTP) Λακβάλεη εξσηήζεηο θαη δίδεη απαληήζεηο Πειάηεο

Διαβάστε περισσότερα

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ. Μονοψϊνιο Ολιγοψώνιο Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ. Οπιακή αξία Δπηπξόζζεηα νθέιε από ηελ ρξήζε/θαηαλάισζε κηαο επηπξόζζεηε

Διαβάστε περισσότερα

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου ΠΡΟΒΛΗΜΑ Σε έλα ηνπξλνπά βόιετ δήισζαλ ζπκκεηνρή νκάδεο Γπκλαζίσλ ηεο Κύπξνπ.

Διαβάστε περισσότερα

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ.. ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου έλαξμεο 09.30 ιήμεο 09.45 Σην παξαθάησ ζρήκα θαίλεηαη ηκήκα ελόο πνιενδνκηθνύ ζρεδίνπ κηαο πόιεο. Οη ζθηαζκέλεο

Διαβάστε περισσότερα

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ ΚΕΦ..3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ Οπιζμόρ απόλςηηρ ηιμήρ: Σηνλ άμνλα ησλ πξαγκαηηθώλ αξηζκώλ ζεσξνύκε έλαλ αξηζκό α πνπ ζπκβνιίδεηαη κε ην ζεκείν Α. Η απόζηαζε ηνπ ζεκείνπ Α από ηελ αξρή Ο, δειαδή

Διαβάστε περισσότερα

ΣΡΑΠΕΖΑ ΘΕΜΑΣΩΝ Α ΛΤΚΕΙΟΤ

ΣΡΑΠΕΖΑ ΘΕΜΑΣΩΝ Α ΛΤΚΕΙΟΤ ΜΑΘΗΜΑ : ΑΡΧΑΙΑ ΕΛΛΗΝΙΚΑ ΣΡΑΠΕΖΑ ΘΕΜΑΣΩΝ Α ΛΤΚΕΙΟΤ Α/Α : 0_1382/153 1. Καη όηαλ έγηλε ε ππνρώξεζε αξγά ην απόγεπκα, επεηδή θνβήζεθαλ νη νιηγαξρηθνί κήπσο νη δεκνθξαηηθνί, αθνύ θάλνπλ επίζεζε, θαηαιάβνπλ

Διαβάστε περισσότερα

Δξγαιεία Καηαζθεπέο 1 Σάμε Σ Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ. ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Φαθόο κε ζσιήλα.

Δξγαιεία Καηαζθεπέο 1 Σάμε Σ Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ. ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Φαθόο κε ζσιήλα. Δξγαιεία Καηαζθεπέο 1 Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ Καηαζθεπή 1: Φαθόο κε ζσιήλα Γηαθξάγκαηα Δξγαιεία Καηαζθεπέο 2 Η θαηαζθεπή πεξηγξάθεηαη ζηελ αληίζηνηρε ελόηεηα

Διαβάστε περισσότερα

Φςζική Πποζαναηολιζμού Γ Λςκείος. Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο

Φςζική Πποζαναηολιζμού Γ Λςκείος. Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο Φςζική Πποζαναηολιζμού Γ Λςκείος Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο Επιμέλεια: Αγκανάκηρ Α. Παναγιώηηρ Επωηήζειρ Σωζηό- Λάθορ Να χαπακηηπίζεηε ηιρ παπακάηω πποηάζειρ ωρ ζωζηέρ ή λάθορ: 1. Η ηαιάλησζε είλαη

Διαβάστε περισσότερα

Οργάνωση και Δομή Παρουσιάσεων

Οργάνωση και Δομή Παρουσιάσεων Οργάνωση και Δομή Παρουσιάσεων Οη παξνπζηάζεηο κε βνήζεηα ηνπ ππνινγηζηή γίλνληαη κε πξνγξάκκαηα παξνπζηάζεσλ, όπσο ην OpenOffice.org Impress [1] θαη ην Microsoft Office PowerPoint [2]. Απηά ηα πξνγξάκκαηα

Διαβάστε περισσότερα

ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ. G. Mitsou

ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ. G. Mitsou ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ ηαηηθή ηωλ ξεπζηώλ (Τδξνζηαηηθή) Ση είλαη ηα ξεπζηά - Γεληθά Ππθλόηεηα Πίεζε Μεηαβνιή ηεο πίεζεο ζπλαξηήζεη ηνπ βάζνπο Αξρή ηνπ Pascal Τδξνζηαηηθή πίεζε Αηκνζθαηξηθή πίεζε Απόιπηε &

Διαβάστε περισσότερα

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Ειζαγωγή ζηη Φωηογραθία. Χριζηάκης Σαζεΐδης EFIAP

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Ειζαγωγή ζηη Φωηογραθία. Χριζηάκης Σαζεΐδης EFIAP ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ Ειζαγωγή ζηη Φωηογραθία Χριζηάκης Σαζεΐδης EFIAP 1 ΜΑΘΗΜΑ 6 ο Προγράμμαηα θωηογραθικών μηχανών Επιλογέας προγραμμάηων Μαο δίλεη ηε δπλαηόηεηα λα ειέγμνπκε ην άλνηγκα δηαθξάγκαηνο θαη

Διαβάστε περισσότερα

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training Dipl.Biol.cand.med. Stylianos Kalaitzis Stylianos Kalaitzis Μνλνϋβξηδηζκνο 1 Γπν γνλείο, εηεξόδπγνη γηα ηνλ αιθηζκό θάλνπλ παηδηά. Πνία ε πηζαλόηεηα

Διαβάστε περισσότερα

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ Είμαζηε ηυχεροί που είμαζηε δάζκαλοι Ον/μο:.. A Λσκείοσ Ύλη: Εσθύγραμμη Κίνηζη 8-11-2015 Θέμα 1 ο : 1. Η εμίζωζε θίλεζεο ελόο θηλεηνύ πνπ θηλείηαη επζύγξακκα είλαη ε x = 5t. Πνηα

Διαβάστε περισσότερα

ΣΡΑΠΕΖΑ ΘΕΜΑΣΩΝ Α ΛΤΚΕΙΟΤ

ΣΡΑΠΕΖΑ ΘΕΜΑΣΩΝ Α ΛΤΚΕΙΟΤ Α/Α : 0_1379/50 1. Όηαλ ινηπόλ ήξζαλ [νη πξέζβεηο ζηελ Αζήλα], αθνύ ζπλέιαβαλ νη Αζελαίνη θαη ηνπο πξέζβεηο σο ππνθηλεηέο ζηάζεο θαη όζνπο έπεηζαλ [νη πξέζβεηο], ηνπο ζπγθέληξσζαλ γηα αζθάιεηα ζηελ Αίγηλα.

Διαβάστε περισσότερα

Η/Υ A ΤΑΞΕΩΣ ΑΕ 2010-2011. Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

Η/Υ A ΤΑΞΕΩΣ ΑΕ 2010-2011. Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ Συστήματα Αρίθμησης Υποπλοίαρχος Ν. Πετράκος ΠΝ 1 Ειζαγωγή Τν bit είλαη ε πην βαζηθή κνλάδα κέηξεζεο. Είλαη κία θαηάζηαζε on ή off ζε έλα ςεθηαθό θύθισκα. Άιιεο θνξέο είλαη κία θαηάζηαζε high ή low voltage

Διαβάστε περισσότερα

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird 1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird 1.1 Εγκαηάζηαζη ηυν οδηγών ηηρ έξςπνηρ κάπηαρ ζηο λογιζμικό Mozilla Thunderbird

Διαβάστε περισσότερα

A. Αιιάδνληαο ηε θνξά ηνπ ξεύκαηνο πνπ δηαξξέεη ηνλ αγωγό.

A. Αιιάδνληαο ηε θνξά ηνπ ξεύκαηνο πνπ δηαξξέεη ηνλ αγωγό. ΤΠΟΤΡΓΔΙΟ ΠΑΙΓΔΙΑ ΚΑΙ ΠΟΛΙΣΙΜΟΤ ΛΔΤΚΩΙΑ ΦΤΛΛΟ ΔΡΓΑΙΑ Μειέηε ηωλ παξαγόληωλ από ηνπο νπνίνπο εμαξηάηαη ε ειεθηξνκαγλεηηθή δύλακε. Τιηθά - πζθεπέο: Ηιεθηξνληθή δπγαξηά, ηξνθνδνηηθό ηάζεο, ξννζηάηεο, ακπεξόκεηξν,

Διαβάστε περισσότερα

ΔΦΑΡΜΟΜΔΝΑ ΜΑΘΗΜΑΣΙΚΑ ΣΗ ΧΗΜΔΙΑ Ι ΘΔΜΑΣΑ Α επηέκβξηνο 2009. 1. Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(x,y) =

ΔΦΑΡΜΟΜΔΝΑ ΜΑΘΗΜΑΣΙΚΑ ΣΗ ΧΗΜΔΙΑ Ι ΘΔΜΑΣΑ Α επηέκβξηνο 2009. 1. Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(x,y) = ΘΔΜΑΣΑ Α επηέκβξηνο 9. Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(,y) = y.. Να ππνινγηζηνύλ ηα νινθιεξώκαηα: a) ln b) a) 3cos b) e sin 4. Να ππνινγηζηεί ην νινθιήξσκα: S ( y) 3

Διαβάστε περισσότερα

Μορθές Κακόβοσλοσ Κώδικα (Malicious Code)

Μορθές Κακόβοσλοσ Κώδικα (Malicious Code) Μορθές Κακόβοσλοσ Κώδικα (Malicious Code) Page 1 Υποπλοίαρτος Ν. Πεηράκος ΠΝ Αηδένηα Γνύξεηνη Ίππνη (Trojan Horses) Ινί (Viruses) Worms Root-kit Page 2 Γνύξεηνο Ίππνο (Trojan Horse) Οξηζκόο: Πξόγξακκα

Διαβάστε περισσότερα

Σύνθετα Δίκτυα. com+plex: with+ -fold (having parts) Διδάζκων Δημήηριος Καηζαρός

Σύνθετα Δίκτυα. com+plex: with+ -fold (having parts) Διδάζκων Δημήηριος Καηζαρός Σύνθετα Δίκτυα com+plex: with+ -fold (having parts) Διδάζκων Δημήηριος Καηζαρός Διάλεξη 14η: 03/05/2017 1 Influence maximization Μεγιζηοποίηζη επιρροής 2 Κνηλσληθά δίθηπα θαη δηάδνζε επηξξνήο Σα θνηλσληθά

Διαβάστε περισσότερα

α) ηε κεηαηόπηζε x όηαλ ην ζώκα έρεη κέγηζην ξπζκό κεηαβνιήο ζέζεο δ) ην κέγηζην ξπζκό κεηαβνιήο ηεο ηαρύηεηαο

α) ηε κεηαηόπηζε x όηαλ ην ζώκα έρεη κέγηζην ξπζκό κεηαβνιήο ζέζεο δ) ην κέγηζην ξπζκό κεηαβνιήο ηεο ηαρύηεηαο Έξγν ελέξγεηα 3 (Λύζε) Σώκα κάδαο m = 4Kg εξεκεί ζηε βάζε θεθιηκέλνπ επηπέδνπ γσλίαο θιίζεο ζ κε εκζ = 0,6 θαη ζπλζ = 0,8. Τν ζώκα αξρίδεη λα δέρεηαη νξηδόληηα δύλακε θαη μεθηλά λα αλεβαίλεη ζην θεθιηκέλν

Διαβάστε περισσότερα

ΔΡΓΑΙΑ 1. Γιαδικησακά πληροθοριακά σζηήμαηα. Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές. ηέθανος Κονηοβάς ΑΔΜ :283. Πάζτος Βαζίλειος ΑΔΜ :288

ΔΡΓΑΙΑ 1. Γιαδικησακά πληροθοριακά σζηήμαηα. Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές. ηέθανος Κονηοβάς ΑΔΜ :283. Πάζτος Βαζίλειος ΑΔΜ :288 ΔΡΓΑΙΑ 1 Γιαδικησακά πληροθοριακά σζηήμαηα Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές ηέθανος Κονηοβάς ΑΔΜ :283 Πάζτος Βαζίλειος ΑΔΜ :288 1.Γιάγραμμα Ονηολογίας. Σην παξαπάλω δηάγξακκα θαίλεηαη ε δηάξζξωζε

Διαβάστε περισσότερα

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα! Cpyright 2013 Λόγος & Επικοινωνία // All rights Reserved Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα! Αυηό ηο παιχνίδι έχει ζηόχους: 1. ηελ εθγύκλαζε ηεο αθνπζηηθήο κλήκεο ησλ παηδηώλ 2. ηελ εμάζθεζε ζηελ

Διαβάστε περισσότερα

(γ) Να βξεζεί ε ρξνλνεμαξηώκελε πηζαλόηεηα κέηξεζεο ηεο ζεηηθήο ηδηνηηκήο ηνπ ηειεζηή W.

(γ) Να βξεζεί ε ρξνλνεμαξηώκελε πηζαλόηεηα κέηξεζεο ηεο ζεηηθήο ηδηνηηκήο ηνπ ηειεζηή W. ΚΒΑΝΤΙΚΗ ΦΥΣΙΚΗ Ι Τειηθή Εμέηαζε: 5 Σεπηέκβξε 6 (Δηδάζθσλ: ΑΦ Τεξδήο) ΘΕΜΑ Θεσξνύκε θβαληηθό ζύζηεκα πνπ πεξηγξάθεηαη από Φακηιηνληαλή Η, ε νπνία ζε κνξθή πίλαθα ρξεζηκνπνηώληαο ηηο ηδηνζπλαξηήζεηο, θαη

Διαβάστε περισσότερα

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ Α ΛΤΚΔΙΟΤ Ζμεπομηνία: 18/12/10 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΕΙΝΟΜΕΝΕ ΛΤ ΕΙ 1. Δίλεηαη ην πνιπώλπκν Αλ θαη., λα βξείηε ην ηειεπηαίν ςεθίν ηνπ αξηζκνύ έρνπκε:

Διαβάστε περισσότερα

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access) Έρνπκε απνζεθεύζεη κηα ζπιινγή αξρείσλ ζε κηα ζπλδεδεκέλε ιίζηα, όπνπ θάζε αξρείν έρεη κηα εηηθέηα ηαπηνπνίεζεο. Μηα εθαξκνγή παξάγεη κηα αθνινπζία από αηηήκαηα πξόζβαζεο ζηα αξρεία ηεο ιίζηαο. Γηα λα

Διαβάστε περισσότερα

Σήκαηα Β Α Γ Γ Δ Λ Η Σ Ο Ι Κ Ο Ν Ο Μ Ο Υ Γ Ι Α Λ Δ Ξ Η - ( 2 ) ΕΙΣΑΓΨΓΗ ΣΤΙΣ ΤΗΛΕΠΙΚΟΙΝΨΝΙΕΣ

Σήκαηα Β Α Γ Γ Δ Λ Η Σ Ο Ι Κ Ο Ν Ο Μ Ο Υ Γ Ι Α Λ Δ Ξ Η - ( 2 ) ΕΙΣΑΓΨΓΗ ΣΤΙΣ ΤΗΛΕΠΙΚΟΙΝΨΝΙΕΣ Σήκαηα 1 Β Α Γ Γ Δ Λ Η Σ Ο Ι Κ Ο Ν Ο Μ Ο Υ Γ Ι Α Λ Δ Ξ Η - ( 2 ) Σήκαηα Οξηζκόο ζήκαηνο Ταμηλόκεζε ζεκάησλ Σεηξέο Fourier Μεηαζρεκαηηζκόο Fourier Σπλέιημε Σπζρέηηζε θαη Φαζκαηηθή Ππθλόηεηα 2 Οξηζκόο Σήκαηνο

Διαβάστε περισσότερα

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ 1.Απηόο πνπ ζα αλαγλσξηζηεί απνπζηάδεη γηα πνιύ θαηξό. 2.Δπηζηξέθεη κε πιαζηή ηαπηόηεηα ή κεηακνξθσκέλνο. 3.Απνκνλώλνληαη ηα δύν πξόζσπα 4.Άξζε κεηακόξθσζεο 5.Απνθάιπςε 6.Ακθηβνιίεο-απνδεηθηηθά

Διαβάστε περισσότερα

ΛΙΜΝΗ ΤΣΑΝΤ. Σρήκα 1. Σρήκα 2

ΛΙΜΝΗ ΤΣΑΝΤ. Σρήκα 1. Σρήκα 2 ΛΙΜΝΗ ΤΣΑΝΤ Τν Σρήκα 1 δείρλεη ηελ αιιαγή ηεο ζηάζκεο ηεο Λίκλεο Τζαλη, ζηε Σαράξα ηεο Βόξεηαο Αθξηθήο. Η Λίκλε Τζαλη εμαθαλίζηεθε ηειείσο γύξσ ζην 20.000 π.χ., θαηά ηε δηάξθεηα ηεο ηειεπηαίαο επνρήο ησλ

Διαβάστε περισσότερα

Κεθάιαην 20. Ελαχιστοποίηση του κόστους

Κεθάιαην 20. Ελαχιστοποίηση του κόστους Κεθάιαην 0 Ελαχιστοποίηση του κόστους Ειαρηζηνπνίεζε ηνπ θόζηνπο Μηα επηρείξεζε ειαρηζηνπνηεί ην θόζηνο ηεο αλ παξάγεη νπνηνδήπνηε δεδνκέλν επίπεδν πξντόληνο y 0 ζην κηθξόηεξν δπλαηό ζπλνιηθό θόζηνο. Τν

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΠΟΥΔΕΣ ΣΤΙΣ ΦΥΣΙΚΕΣ ΕΠΙΣΤΗΜΕΣ ΓΕΝΙΚΑ ΜΑΘΗΜΑΤΙΚΑ ΙΙ - ΦΥΕ 0 7 Ινπλίνπ 009 Απαντήσειρ στιρ ασκήσειρ τηρ τελικήρ εξέτασηρ στιρ Σςνήθειρ Διαυοπικέρ Εξισώσειρ Αγαπηηέ θοιηηηή/ηπια,

Διαβάστε περισσότερα

ΑΓΩΜΘΡΘΙΞΘ ΤΩΠΞΘ ΡΘΡ ΛΘΙΠΕΡ ΗΚΘΙΘΕΡ ΛΘΤΑΗΚΘΔΗΡ Τ.

ΑΓΩΜΘΡΘΙΞΘ ΤΩΠΞΘ ΡΘΡ ΛΘΙΠΕΡ ΗΚΘΙΘΕΡ ΛΘΤΑΗΚΘΔΗΡ Τ. ΑΓΩΜΘΡΘΙΞΘ ΤΩΠΞΘ ΡΘΡ ΛΘΙΠΕΡ ΗΚΘΙΘΕΡ ΟΑIΤΜΘΔΘ ΡΕ ΛΕΓΑΚΞ ΓΗΟΕΔΞ 11V11 ΗΚΘΙΘΑ 6-10 ΤΠΞΜΩΜ ΛΕΘΞΜΕΙΗΛΑΑ ΞΣ ΟΑΘΤΜΘΔΘΞΣ ΡΕ ΛΕΓΑΚΞ ΓΗΟΕΔΞ ΓΘΑ ΟΑΘΙΕΡ ΗΚΘΙΘΑΡ 6-10 ΕΩΜ Η ΔΘΑΔΠΞΛΗ ΑΟΞ Η ΛΘΑ ΕΡΘΑ ΡΗΜ ΑΚΚΗ ΕΘΜΑΘ ΛΕΓΑΚΗ

Διαβάστε περισσότερα

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε. ΑΝΟΙΓΜΑ ΝΔΑ ΥΡΗΗ 1. Γεκηνπξγείηε ηε λέα ρξήζε από ηελ επηινγή «Παξάκεηξνη/Παξάκεηξνη Δηαηξίαο/Γηαρείξηζε Δηαηξηώλ». Πιεθηξνινγείηε ηνλ θσδηθό ηεο εηαηξίαο ζαο θαη παηάηε Enter. Σηελ έλδεημε «Υξήζεηο» παηάηε

Διαβάστε περισσότερα

Αντισταθμιστική ανάλυση

Αντισταθμιστική ανάλυση Θεσξήζηε έλαλ αιγόξηζκν Α πνπ ρξεζηκνπνηεί κηα δνκή δεδνκέλσλ Γ : Καηά ηε δηάξθεηα εθηέιεζεο ηνπ Α ε Γ πξαγκαηνπνηεί κία αθνινπζία από πξάμεηο. Παξάδεηγκα: Θπκεζείηε ην πξόβιεκα ηεο εύξεζεο-έλσζεο Δίρακε

Διαβάστε περισσότερα

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη ΔΠΑΝΑΛΗΠΣΙΚΑ ΘΔΜΑΣΑ ΣΟ ΓΙΑΦΟΡΙΚΟ ΛΟΓΙΜΟ Μάρτιος 0 ΘΔΜΑ Να ππνινγίζεηε ηα όξηα: i ii lim 0 0 lim iii iv lim e 0 lim e 0 ΘΔΜΑ Γίλεηαη ε άξηηα ζπλάξηεζε '( ) ( ) γηα θάζε 0 * : R R γηα ηελ νπνία ηζρύνπλ:

Διαβάστε περισσότερα

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf Δξγαζηεξηαθή άζθεζε 03 Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf Ζιίαο Χαηδεζενδσξίδεο Οθηώβξηνο / Ννέκβξηνο 2004 Τη είλαη ην δίθηπν Wulf Δπίπεδν ζην νπνίν κπνξνύκε λα αλαπαξαζηήζνπκε ηξηζδηάζηαηα ζρήκαηα,

Διαβάστε περισσότερα

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα Κοιμωμικά δίκτυα (multiplex network) Έρεηε ινγαξηαζκό ζην Facebook? Έρεηε ινγαξηαζκό ζην LinkedIn? Έρεηε ινγαξηαζκό ζην Twitter? Αεροπορικές γραμμές της Ευρώπης(multiplex

Διαβάστε περισσότερα

ΥΡΙΣΟΤΓΔΝΝΙΑΣΙΚΔ ΚΑΣΑΚΔΤΔ

ΥΡΙΣΟΤΓΔΝΝΙΑΣΙΚΔ ΚΑΣΑΚΔΤΔ ΥΡΙΣΟΤΓΔΝΝΙΑΣΙΚΔ ΚΑΣΑΚΔΤΔ 1) Υξηζηνπγελληάηηθα ειαηάθηα θάξηα ή θαδξάθη θάξηα ή θαδξάθη Τιηθά πνπ ζα ρξεηαζηνύκε: Υαξηί θάλζνλ καύξν γηα ην θόλην, πξάζηλν γηα ηα ειαηάθηα, θόθθηλν γηα ηα αζηεξάθηα Απιό

Διαβάστε περισσότερα

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ ΚΔΦ.. ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ Οξηζκόο ηεηξαγσληθήο ξίδαο: Αλ 0 ηόηε νλνκάδνπκε ηεηξαγσληθή ξίδα ηνπ ηελ κε αξλεηηθή ιύζε ηεο εμίζσζεο:. Γειαδή ηεηξαγσληθή ξίδα ηνπ 0 ιέγεηαη ν αξηζκόο 0 πνπ όηαλ πςσζεί

Διαβάστε περισσότερα

Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική ΑΔ

Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική ΑΔ Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική Δίζηε μησανικόρ διοίκηζηρ μεγάληρ καηαζκεςαζηικήρ εηαιπείαρ και καλείζηε να ςλοποιήζεηε ηο έπγο πος πεπιγπάθεηαι από ηον Πίνακα 1. Κωδ.

Διαβάστε περισσότερα

6 η Εργαζηηριακή Άζκηζη Επαλήθεσζη Λειηοσργίας Βαζικών Φλιπ-Φλοπ

6 η Εργαζηηριακή Άζκηζη Επαλήθεσζη Λειηοσργίας Βαζικών Φλιπ-Φλοπ 6 η Εργαζηηριακή Άζκηζη Επαλήθεσζη Λειηοσργίας Βαζικών Φλιπ-Φλοπ Σηα πιαίζηα ηεο έθηεο εξγαζηεξηαθήο άζθεζεο ζα ρξεζηκνπνηεζεί απνθιεηζηηθά ην πεξηβάιινλ αλάπηπμεο νινθιεξσκέλσλ θπθισκάησλ IDL-800 Digital

Διαβάστε περισσότερα

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ. Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ. Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙΜΟ Α ΛΤΚΔΙΟΤ Ημεπομηνία: 10/12/11 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΔΙΝΟΜΔΝΔ ΛΤΔΙ Πρόβλημα 1: α) Να δείμεηε όηη αλ ζεηηθνί πξαγκαηηθνί αξηζκνί ηζρύεη: β) Αλ είλαη

Διαβάστε περισσότερα

ΙΣΤΟΡΙΑ ΤΟΥ ΑΡΧΑΙΟΥ ΚΟΣΜΟΥ

ΙΣΤΟΡΙΑ ΤΟΥ ΑΡΧΑΙΟΥ ΚΟΣΜΟΥ ΙΣΤΟΡΙΑ ΤΟΥ ΑΡΧΑΙΟΥ ΚΟΣΜΟΥ Α ΛΤΚΕΙΟΤ ΓΕΝΙΚΗ ΠΑΙΔΕΙΑ Σχολικό έτος: 2011-2012 Καθηγήτριες: Κεφαλληνού Λουκία- Καλλία Αθηνά ΙΙ. ΟΙ ΑΧΑΙΟΙ ΕΛΛΗΝΕΣ ΑΠΟ ΣΟΤ ΠΡΟΙΣΟΡΙΚΟΤ ΥΡΟΝΟΤ ΕΩ ΚΑΙ ΣΟ Μ. ΑΛΕΞΑΝΔΡΟ 1. ΕΛΛΗΝΙΚΗ

Διαβάστε περισσότερα

ΔΠΙΣΡΟΠΗ ΓΙΑΓΩΝΙΜΩΝ 74 ος ΠΑΝΔΛΛΗΝΙΟ ΜΑΘΗΣΙΚΟ ΓΙΑΓΩΝΙΜΟ ΣΑ ΜΑΘΗΜΑΣΙΚΑ Ο ΘΑΛΗ 19 Οκηωβρίοσ Δνδεικηικές λύζεις

ΔΠΙΣΡΟΠΗ ΓΙΑΓΩΝΙΜΩΝ 74 ος ΠΑΝΔΛΛΗΝΙΟ ΜΑΘΗΣΙΚΟ ΓΙΑΓΩΝΙΜΟ ΣΑ ΜΑΘΗΜΑΣΙΚΑ Ο ΘΑΛΗ 19 Οκηωβρίοσ Δνδεικηικές λύζεις ΔΛΛΗΝΙΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ Παλεπηζηεκίνπ (Διεπζεξίνπ Βεληδέινπ) 34 06 79 ΑΘΖΝΑ Τει. 36653-367784 - Fax: 36405 e-mail : info@hms.gr www.hms.gr GREEK MATHEMATICAL SOCIETY 34, Panepistimiou (Δleftheriou

Διαβάστε περισσότερα

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη 5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη Σηα πιαίζηα ηεο πέκπηεο εξγαζηεξηαθήο άζθεζεο ζα ρξεζηκνπνηεζεί απνθιεηζηηθά ην πεξηβάιινλ αλάπηπμεο νινθιεξσκέλσλ θπθισκάησλ IDL-800 Digital

Διαβάστε περισσότερα

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ. Μία αθηίλα θωηόο πξνζπίπηεη κε κία γωλία ζ ζηε επάλω επηθάλεηα ελόο θύβνπ από πνιπεζηέξα ν νπνίνο έρεη δείθηε δηάζιαζεο ε =,49 (ζρήκα ). Βξείηε πνηα ζα είλαη ε κέγηζηε γωλία

Διαβάστε περισσότερα

γηα ηνλ Άξε Κσλζηαληηλίδε

γηα ηνλ Άξε Κσλζηαληηλίδε γηα ηνλ Άξε Κσλζηαληηλίδε γηα «ην θνηλό θαη ην θύξην» (Γ.νισκόο) γηα λα ρηίδω πάληα κε ηνλ ίδηνλε ηξόπν, κε ηηο ίδηεο θαηαζθεπαζηηθέο θαη πιαζηηθέο πξννπηηθέο, κε ηελ ίδηαλε πάληνηε πίζηε θαη αγάπε.. Α.Κ.

Διαβάστε περισσότερα

Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD

Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD Γηα ηε δηεπθόιπλζή ζαο θαηά ην switch-off ηεο πεξηνρήο ηεο Πεινπνλλήζνπ έρνπκε πξνζζέζεη ζηνπο ςεθηαθνύο καο δέθηεο κία λέα,

Διαβάστε περισσότερα

4) Να γξάςεηε δηαδηθαζία (πξόγξακκα) ζηε Logo κε όλνκα θύθινο πνπ ζα ζρεδηάδεη έλα θύθιν. Λύζε Γηα θύθινο ζηθ επαλάιαβε 360 [κπ 1 δε 1] ηέινο

4) Να γξάςεηε δηαδηθαζία (πξόγξακκα) ζηε Logo κε όλνκα θύθινο πνπ ζα ζρεδηάδεη έλα θύθιν. Λύζε Γηα θύθινο ζηθ επαλάιαβε 360 [κπ 1 δε 1] ηέινο Λσμένες αζκήζεις ζηη Logo Στεδίαζη ζτημάηων με ηη τελώνα 1) Να γξάςεηε δηαδηθαζία (πξόγξακκα) ζηε Logo κε όλνκα ηεηξάγσλν πνπ ζα ζρεδηάδεη έλα ηεηξάγσλν κε πιεπξά 120. Γηα ηεηξάγσλν επαλάιαβε 4 [κπ 120

Διαβάστε περισσότερα

ΣΥΣΤΗΜΑΤΑ ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 1. Να ιπζνύλ ηα ζπζηήκαηα. 1 0,3x 0,1y x 3 3x 4y 2 4x 2y ( x 1) 6( y 1) (i) (ii)

ΣΥΣΤΗΜΑΤΑ ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 1. Να ιπζνύλ ηα ζπζηήκαηα. 1 0,3x 0,1y x 3 3x 4y 2 4x 2y ( x 1) 6( y 1) (i) (ii) . Να ιπζνύλ ηα ζπζηήκαηα.,, 6 4 4 4 5( ) 6( ). Να ιπζνύλ ηα ζπζηήκαηα.,,,6 7. Να ιπζνύλ ηα ζπζηήκαηα. 5 ( )( ) ( ) 4. Να ιπζνύλ ηα ζπζηήκαηα. 5 4 6 7 4. 5. Να ιπζνύλ ηα ζπζηήκαηα. 59 ( )( ) ()( 5) 7 6.

Διαβάστε περισσότερα

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) 30.04.67 FritzBox Fon WLAN 7140 - Annex B (30.04.67)

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) 30.04.67 FritzBox Fon WLAN 7140 - Annex B (30.04.67) Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) 30.04.67 FritzBox Fon WLAN 7140 - Annex B (30.04.67) Γηα λα επαλαθέξεηε ην FritzBox Fon WLAN 7140 ζηηο πξνεπηιεγκέλεο ηνπ ξπζκίζεηο

Διαβάστε περισσότερα

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ Διαφάνεια 1 η ΕΚΚΙΝΗΣΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΚΑΙ ΕΙΣΟΔΟΣ ΣΤΟ BIOS UITILITY Τν ζπλεζέζηεξν πιήθηξν γηα ηελ είζνδν ζην BIOS Utility είλαη ην πιήθηξν Del. Παξόια απηά δηαθνξεηηθνί θαηαζθεπαζηέο, ρξεζηκνπνηνύλ δηαθνξεηηθά

Διαβάστε περισσότερα

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο.

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ. 3. Έλαο θαηαρσξεηήο SISO ησλ 4 bits έρεη: α) Μία είζνδν, β) Δύν εηζόδνπο, γ) Σέζζεξεηο εηζόδνπο. 7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Ση είλαη έλαο θαηαρσξεηήο; O θαηαρσξεηήο είλαη κηα νκάδα από flip-flop πνπ κπνξεί λα απνζεθεύζεη πξνζσξηλά ςεθηαθή πιεξνθνξία. Μπνξεί λα δηαηεξήζεη ηα δεδνκέλα ηνπ

Διαβάστε περισσότερα

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ ΣΔΣΑΡΣΖ 25 ΜΑΨΟΤ 2016 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΑΡΥΔ ΟΗΚΟΝΟΜΗΚΖ ΘΔΧΡΗΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ - ΔΠΗΛΟΓΖ

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ ΣΔΣΑΡΣΖ 25 ΜΑΨΟΤ 2016 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΑΡΥΔ ΟΗΚΟΝΟΜΗΚΖ ΘΔΧΡΗΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ - ΔΠΗΛΟΓΖ ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ ΣΔΣΑΡΣΖ 25 ΜΑΨΟΤ 2016 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΑΡΥΔ ΟΗΚΟΝΟΜΗΚΖ ΘΔΧΡΗΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ - ΔΠΗΛΟΓΖ (Δλδεηθηηθέο Απαληήζεηο) ΘΔΜΑ Α Α1. α. Σωζηό β. Λάζνο

Διαβάστε περισσότερα

(Ενδεικηικές Απανηήζεις) ΘΔΜΑ Α. Α1. Βιέπε απόδεημε Σει. 262, ζρνιηθνύ βηβιίνπ. Α2. Βιέπε νξηζκό Σει. 141, ζρνιηθνύ βηβιίνπ

(Ενδεικηικές Απανηήζεις) ΘΔΜΑ Α. Α1. Βιέπε απόδεημε Σει. 262, ζρνιηθνύ βηβιίνπ. Α2. Βιέπε νξηζκό Σει. 141, ζρνιηθνύ βηβιίνπ ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ (ΟΜΑΓΑ Β ) ΣΔΣΑΡΣΖ 18 ΜΑΪΟΤ 16 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ (ΝΔΟ ΤΣΖΜΑ) ΚΑΣΔΤΘΤΝΖ (ΠΑΛΑΗΟ ΤΣΖΜΑ) (Ενδεικηικές Απανηήζεις) ΘΔΜΑ

Διαβάστε περισσότερα

Τ ξ ε ύ ο ξ π ς ξ σ ξ ο ί ξ σ _ Ι ε ο α μ ε ι κ ό π

Τ ξ ε ύ ο ξ π ς ξ σ ξ ο ί ξ σ _ Ι ε ο α μ ε ι κ ό π Τ ξ ε ύ ο ξ π ς ξ σ ξ ο ί ξ σ _ Ι ε ο α μ ε ι κ ό π Α ο υ ι ς ε κ ς ξ μ ι κ ή ρ ύ μ θ ε ρ η 6 Τ ξ μ έ α π ΘΘΘ, X ώ ο ξ π κ α ι Δ π ι κ ξ ι μ χ μ ί α Η έ μ α : Διδάρκξμςεπ: Τξ εύοξπ ςξσ ξοίξσ Ιεοαμεικόπ

Διαβάστε περισσότερα

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο:

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο: Σύνθεζη ηαλανηώζεων Α. Σύλζεζε δύν α.α.η ηεο ίδιας ζστνόηηηας Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο: Η απνκάθξπλζε

Διαβάστε περισσότερα

Πως να δημιουργήσετε ένα Cross-Over καλώδιο

Πως να δημιουργήσετε ένα Cross-Over καλώδιο Πως να δημιουργήσετε ένα Cross-Over καλώδιο Τν crossover καλώδιο ρξεζηκνπνηείηαη γηα λα ζπλδεζνύλ δπν ππνινγηζηέο κεηαμύ ηνπο θαη αλ θηηάμνπλ έλα κηθξό ηνπηθό δίθηπν(lan). Έλα LAN κπνξεί λα είλαη ηόζν

Διαβάστε περισσότερα

Κόληξα πιαθέ ζαιάζζεο κε δηαζηάζεηο 40Υ40 εθ. Καξθηά 3 θηιά πεξίπνπ κε κήθνο ηξηπιάζην από ην πάρνο ηνπ μύινπ θπξί κεγάιν θαη ππνκνλή

Κόληξα πιαθέ ζαιάζζεο κε δηαζηάζεηο 40Υ40 εθ. Καξθηά 3 θηιά πεξίπνπ κε κήθνο ηξηπιάζην από ην πάρνο ηνπ μύινπ θπξί κεγάιν θαη ππνκνλή Δξγαιεία Καηαζθεπέο 1 Δ.Κ.Φ.Δ. ΥΑΝΙΩΝ ΠΡΩΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ ΔΝΟΣΗΣΑ 10 ε : ΜΗΥΑΝΙΚΗ ΜΔΡΟ Β ΠΙΔΗ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ Καηαζθεπή 1: Καξέθια θαθίξε Όξγαλα Τιηθά Κόληξα πιαθέ ζαιάζζεο κε δηαζηάζεηο 40Υ40 εθ.

Διαβάστε περισσότερα

f '(x)g(x)h(x) g'(x)f (x)h(x) h'(x) f (x)g(x)

f '(x)g(x)h(x) g'(x)f (x)h(x) h'(x) f (x)g(x) ΓΙΑΓΩΝΙΣΜΑ ΣΤΑ ΜΑΘΗΜΑΤΙΚΑ 54 Υλη: Παράγωγοι Γ Λσκείοσ Ον/μο:.. 6--4 Θεη-Τετν. ΘΔΜΑ Α.. Αλ f, g, h ηξεηο παξαγωγίζηκεο ζπλαξηήζεηο ζην λα απνδείμεηε όηη : f () g() h() ' f '()g()h() g'()f ()h() h'() f ()g()

Διαβάστε περισσότερα

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα 10000 παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο 30000.

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα 10000 παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο 30000. ΔΕΟ 13 Ποσοτικές Μέθοδοι Σσνάρηηζη Κόζηοσς C(), μέζο κόζηος C()/. Παράδειγμα 1 Μηα εηαηξεία δαπαλά γηα θάζε πξντόλ Α πνπ παξάγεη 0.0 λ.κ. Τα πάγηα έμνδα ηεο εηαηξείαο είλαη 800 λ.κ. Ζεηείηαη 1) Να πεξηγξάςεηε

Διαβάστε περισσότερα

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84 Διαηιμήζεις για Αιολικά Πάρκα Κώδικες 28, 78 και 84 Διαηιμήζεις για Αιολικά Πάρκα Οη Διαηιμήζεις για Αιολικά Πάρκα εθαξκόδνληαη γηα ηελ απνξξνθνύκελε ελέξγεηα από Αηνιηθά Πάξθα πνπ είλαη ζπλδεδεκέλα ζην

Διαβάστε περισσότερα

ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε. Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο

ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε. Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο Πξαθηηθή Άζθεζε (επίπεδν 2): ηόρνο ηεο άζθεζεο είλαη ε πεξαηηέξω εμνηθείωζε

Διαβάστε περισσότερα

ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX

ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX Σηότοι εργαζηηρίοσ Σην πιαίζην ηνπ ζπγθεθξηκέλνπ εξγαζηεξίνπ, νη θνηηεηέο ζα εμνηθεησζνύλ κε βαζηθέο εληνιέο δηθηπαθώλ πξσηνθόιισλ νη νπνίεο βξίζθνπλ εθαξκνγή ζε πεξηβάιινληα Windows

Διαβάστε περισσότερα

Image J Plugin particle tracker για παρακολούθηση της κίνησης σωματιδίων

Image J Plugin particle tracker για παρακολούθηση της κίνησης σωματιδίων Image J Plugin particle tracker για παρακολούθηση της κίνησης σωματιδίων (https://weeman.inf.ethz.ch/particletracker/) Τν Plugin particle tracker κπνξεί λα αληρλεύζεη απηόκαηα ηα ζσκαηίδηα πνπ θηλνύληαη,

Διαβάστε περισσότερα

ΑΣΚΗΣΔΙΣ ΦΥΣΙΚΗΣ ΚΑΤΑΣΤΑΣΗΣ ΣΤΟ ΓΗΠΔΓΟ

ΑΣΚΗΣΔΙΣ ΦΥΣΙΚΗΣ ΚΑΤΑΣΤΑΣΗΣ ΣΤΟ ΓΗΠΔΓΟ Α. Αεπόβια ικανόηηηα: ΑΣΚΗΣΔΙΣ ΦΥΣΙΚΗΣ ΚΑΤΑΣΤΑΣΗΣ ΣΤΟ ΓΗΠΔΓΟ 1. Φόλλοος ζηα δύο καλάθια: νη αζιεηέο είλαη απέλαληη από ηα ηακπιώ ζε δπν γξακκέο. Οη πξώηνη έρνπλ από κηα κπάια. Με ην ζύλζεκα θάλνπλ θόιιννπ

Διαβάστε περισσότερα

1. Να ζεκεηώζεηε πνηα από ηηο επόκελεο ηαρύηεηεο είλαη κεγαιύηεξε. Α. π 1 = 30m/s Β. π 2 = 0.02km/s Γ. π 3 = 36000m/h Γ. π 4 = 144km/h.

1. Να ζεκεηώζεηε πνηα από ηηο επόκελεο ηαρύηεηεο είλαη κεγαιύηεξε. Α. π 1 = 30m/s Β. π 2 = 0.02km/s Γ. π 3 = 36000m/h Γ. π 4 = 144km/h. ΦΤΙΚΗ A ΛΤΚΔΙΟΤ ΓΙΑΡΚΔΙΑ: 10min ΣΜΗΜΑ:. ONOMA:. ΔΠΩΝΤΜΟ: ΗΜΔΡΟΜΗΝΙΑ: ΜΟΝΑΓΔ ΘΔΜΑ 1 ο ΘΔΜΑ ο ΘΔΜΑ 3 ο ΘΔΜΑ 4 ο ΤΝΟΛΟ ΘΔΜΑ A: 1. Να ζεκεηώζεηε πνηα από ηηο επόκελεο ηαρύηεηεο είλαη κεγαιύηεξε. Α. π 1 = 30m/s

Διαβάστε περισσότερα

ΕΓΧΕΙΡΙΔΙΟ ΕΚΔΟΗ 8.0.0

ΕΓΧΕΙΡΙΔΙΟ ΕΚΔΟΗ 8.0.0 ΕΓΧΕΙΡΙΔΙΟ ΕΚΔΟΗ 8.0.0 Γενικά Η έθδνζε 8.0.0 ηνπ ελόηεηεο: Business ERP, πεξηιακβάλεη λέεο ιεηηνπξγίεο πνπ αλαιύνληαη ζηηο παξαθάησ Γεληθόηεξε ιεηηνπξγία ηεο εθαξκνγήο Εκπνξηθή Δηαρείξηζε 7/2/2013 SingularLogic

Διαβάστε περισσότερα