ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΑΝΑΠΤΥΞΗ ΠΑΙΧΝΙΔΙΟΥ ΣΤΡΑΤΗΓΙΚΗΣ ΜΕΡΙΚΗΣ ΠΛΗΡΟΦΟΡΗΣΗΣ

Σχετικά έγγραφα
ΕΡΓΑΣΙΑ 2 - Παίζοντας Blackjack

2.2 Ειδικά Φύλλα Mahjong Phoenix - Φοίνικας Hund - Σκυλάκια Drache - Δράκος... 5

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

ΕΠΙΣΗΜΟΙ ΚΑΝΟΝΕΣ ΤΟΥ ΟΙ ΚΑΡΤΕΣ

Τεχνητή Νοημοσύνη. 2η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ. Πρώτη Σειρά ασκήσεων Ημερομηνία Παράδοσης: 24 Απριλίου 2018, 12 μ.μ.

Ασκήσεις μελέτης της 6 ης διάλεξης

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

NOVA PRODUCTIONS. by GDTronics

Το Jungle Speed είναι ένα παιχνίδι για 2 έως 10 παίκτες (ή και ακόμη περισσότερους!) ηλικίας 7 και άνω.

[ΠΛΗ 417] Τεχνητή Νοημοσύνη. Project Εξαμήνου ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

ΕΙΣΑΓΩΓΗ ΠΕΡΙΕΧΟΜΕΝΑ. 96 Κάρτες αντικειμένων 4 Κάρτες επεξήγησης ενεργειών Οδηγίες. Απεικόνιση Αντικειμένου. Αρνητικος Αριθμός.

Τεχνητή Νοημοσύνη. 6η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Οδηγίες. Θα το παίξεις... και θα πεις κι ένα τραγούδι!

Το Κ2 είναι ένα παιχνίδι για 1 έως 5 παίκτες, ηλικίας 8 ετών και άνω, με διάρκεια περίπου 60 λεπτά.

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

Τσάπελη Φανή ΑΜ: Ενισχυτική Μάθηση για το παιχνίδι dots. Τελική Αναφορά

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

ΕΓΧΕΙΡΙΔΙΟ ΚΑΝΟΝΩΝ ΕΝΑ ΠΑΙΧΝΙΔΙ ΑΝΤΑΓΩΝΙΣΜΟΥ ΓΙΑ 2 ΩΣ 4 ΠΑΙΚΤΕΣ

Το Μπαούλο του κυρ Γιάννη

Προγραμματιστικές Ασκήσεις, Φυλλάδιο 1

Πληροφορική 2. Αλγόριθμοι

Επίλυση προβληµάτων. Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών. ΤΗΜΜΥ Α.Π.Θ Πέμπτη 11 / 12 / 2014 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 8: Παίγνια πλήρους και ελλιπούς πληροφόρησης

Χαρτοπαίγνια. Ένα παιχνίδι, ατέλειωτη διασκέδαση

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

3. Προσομοίωση ενός Συστήματος Αναμονής.

Δυναμικές Δομές Δεδομένων Λίστες Δένδρα - Γράφοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

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

Αυτόνομοι Πράκτορες. Εργασία εξαμήνου. Value Iteration και Q- Learning για Peg Solitaire

Αυτόνομοι Πράκτορες Μαριάνος Νίκος Αυτόνομοι Πράκτορες. Χειμερινό Εξάμηνο 2016 Κωδικός Μαθήματος ΠΛΗ513 Πρότζεκτ Μαθήματος

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο

ΕΡΓΑΣΙΕΣ ΟΝΤΟΚΕΝΤΡΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη

n ίδια n διαφορετικά n n 0 n n n 1 n n n n 0 4

PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟ ΟΥΣ

Πίστας Αγώνα Αρχικών Στοιχημάτων Βοηθήματος Παικτών Πρώτου Παίκτη Τούρμπο Πρώτο στοίχημα: Κατασκευή της πίστας:

BRIDGE ÑÉÓÔÉÍÁ ÓÕÑÁÊÏÐÏÕËÏÕ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

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

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

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Κεφάλαιο 5. Αλγόριθµοι Αναζήτησης σε Παίγνια ύο Αντιπάλων. Τεχνητή Νοηµοσύνη - Β' Έκδοση

Περιεχόμενα του Παιχνιδιού

Σχεδιασμός Ψηφιακών Εκπαιδευτικών Εφαρμογών ΙI

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

32 κάρτες-πόλης 9 κάρτες-χαρακτήρων 5 κάρτες-αστυνομίας

EMOJITO! 7 Δίσκοι Ψηφοφορίας. 100 Κάρτες Συναισθημάτων. 1 Ταμπλό. 7 Πιόνια παικτών. 2-7 Παίκτες

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

Αυτόνομοι Πράκτορες. Εργασία εξαμήνου. Μάθηση του παιχνιδιού British square με χρήση Temporal Difference(TD) Κωνσταντάκης Γιώργος

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΠΑΙΓΝΙΑ Παιχνίδια Γενική Θεώρηση μεγιστοποιήσει την πιθανότητά

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

ΠΟΡΕΙΑ ΤΟΥ ΠΑΙΧΝΙΔΙΟΥ Σε κάθε γύρο έχετε 2 ενέργειες. Στην κάθε ενέργεια μπορείτε να κάνετε ένα από τα εξής:

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

ΠΛΗ 513-Αυτόνομοι Πράκτορες Χειμερινό εξάμηνο 2012 Εφαρμογή αλγορίθμων ενισχυτικής μάθησης στο παιχνίδι Βlackjack. Χλης Νικόλαος-Κοσμάς

σύµβολο μεταξύ δύο καρτών, τα οποία και πρέπει να βρείτε. σύµβολο στις δύο αυτές κάρτες.

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

Επίλυση προβλημάτων με αναζήτηση

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL

Επίλυση Προβλημάτων 1

Θεωρία Παιγνίων Δρ. Τασσόπουλος Ιωάννης

Blackjack: Στρατηγική, συμβουλές και τρόπος παιχνιδιού - ΚΑΛΑΜΠΑΚΑ CITY KALAMPAKA METEOR

Αντικειμενοστρεφής Προγραμματισμός

2.1 Αντικειµενοστρεφής προγραµµατισµός

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Θεωρία Παιγνίων και Αποφάσεων Διδάσκων: Ε. Μαρκάκης, Εαρινό εξάμηνο 2015

Επίλυση Προβλημάτων 1

Τεχνητή Νοημοσύνη Ι. Εργαστηριακή Άσκηση 4-6. Σγάρμπας Κυριάκος. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Κωνσταντίνος Κώστα

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Ενότητα: Δυαδική Αναζήτηση Σχέδιο Δραστηριότητας: Παιχνίδι: Βρες τον αριθμό

ΑΥΤΟΝΟΜΟΙ ΠΡΑΚΤΟΡΕΣ. ΑΝΑΦΟΡΑ ΕΡΓΑΣΙΑΣ Othello-TD Learning. Βόλτσης Βαγγέλης Α.Μ

Φύλλο Εργασίας 3. Μια γρήγορη επανάληψη από τα προηγούμενα

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΚΕΦΑΛΑΙΟ 2 ΔΙΑΤΑΞΕΙΣ, ΜΕΤΑΘΕΣΕΙΣ, ΣΥΝΔΥΑΣΜΟΙ

ΒΑΣΙΚΕΣ ΜΕΘΟΔΟΙ ΑΠΑΡΙΘΜΗΣΗΣ

Κεφάλαιο 10 Ψηφιακά Λεξικά

Σκοπός του παιχνιδιού. Περιεχόμενα

Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Δημητρίου Σωτήρης 6417

Αλγόριθμοι Αναζήτησης σε Παίγνια Δύο Αντιπάλων

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΕΝΣΥΡΜΑΤΗΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΣ ΑΝΑΠΤΥΞΗ ΠΑΙΧΝΙΔΙΟΥ ΣΤΡΑΤΗΓΙΚΗΣ ΜΕΡΙΚΗΣ ΠΛΗΡΟΦΟΡΗΣΗΣ Δ Ι Π Λ Ω Μ Α Τ Ι Κ Η Ε Ρ Γ Α Σ Ι Α ΜΑΡΘΑΣ Γ. ΒΛΑΧΟΥ-ΚΟΓΧΥΛΑΚΗ ΕΠΙΒΛΕΠΩΝ: Κ. ΣΓΑΡΜΠΑΣ ΠΑΤΡΑ - ΟΚΤΩΒΡΙΟΣ 2012

ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η διπλωματική εργασία με θέμα: Ανάπτυξη Παιχνιδιού Στρατηγικής Μερικής Πληροφόρησης Της φοιτήτριας του τμήματος Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών Μάρθας Βλάχου-Κογχυλάκη (Α.Μ. 6485) παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών στις 10/10/2012 Ο Επιβλέπων Ο Διευθυντής του Τομέα Κ. Σγάρμπας Επ. Καθηγητής Ν. Φακωτάκης Καθηγητής

ΤΙΤΛΟΣ: Ανάπτυξη Παιχνιδιού Στρατηγικής Μερικής Πληροφόρησης ΣΥΓΓΡΑΦΕΑΣ: Μάρθα Βλάχου-Κογχυλάκη (Α.Μ. 6485) ΠΕΡΙΛΗΨΗ: Στην παρούσα διπλωματική εργασία αναπτύσσεται ένα πρόγραμμα για τη δημιουργία ενός έξυπνου παίκτη του παιχνιδιού Tichu. Εισάγονται διάφορες τεχνικές Τεχνικής Νοημοσύνης όπως τα δένδρα αναζήτησης και οι ευρετικές συναρτήσεις οι οποίες ενσωματώνονται με τέτοιο τρόπο έτσι ώστε να ταιριάξουν στις απαιτήσεις του παιχνιδιού. Το πρόγραμμα περιλαμβάνει τρία στάδια: τη δημιουργία ενός δένδρου αναζήτησης το οποίο περιέχει όλους τους δυνατούς συνδυασμούς Tichu που μπορούν να προκύψουν από μία λίστα φύλλων, την αξιολόγησή του και τη λήψη αποφάσεων μέσα στο παιχνίδι βάση αυτού. Λόγω του πλήθους των παραμέτρων που μπορούμε να ορίσουμε για κάθε παίκτη προέκυψαν παίκτες με διαφορετικές συμπεριφορές και παιχνίδια με ίδιο μοίρασμα φύλλων αλλά διαφορετικά αποτελέσματα. Το πρόγραμμα είναι γραμμένο στην αντικειμενοστραφή γλώσσα Java λόγω της ευκολίας της γλώσσας για τον χειρισμό αντικειμένων. Τέλος, η μελέτη αυτή πρόκειται για μία από τις πρώτες προσεγγίσεις του παιχνιδιού από την πλευρά της Τεχνητής Νοημοσύνης, λόγος που ήταν καθοριστικός για την απόφαση εκπόνησής της. ABSTRACT: This diploma dissertation demonstrates the creation of an artificial player for the game of Tichu. It includes various techniques, such as search trees and heuristic functions, that we use in AI problems in such a way that these techniques correspond to our needs, according to the format of the game. The program is composed of three parts: the construction of a search tree that includes all the possible Tichu combinations that can be found in a list of cards, the evaluation of this search tree and finally the way this artificial player takes its decisions, accordingly to the outcome of the evaluation function, during the game play. Since the parameters which define the way an artificial player plays can differ for each player, we have resulted in creating players that act differently; thus, not only do our results vary according to the cards the player has, but also because of the way the player reaches a decision. In addition, the program was developed in the object-oriented language Java which gives us the chance to handle objects easily. Finally, the crucial reason why we decided to develop this project was the fact that this approach would be one of the first approaches of this game from the aspect of Artificial Intelligence.

Ευχαριστίες Η εργασία αυτή δεν θα είχε ολοκληρωθεί χωρίς τη βοήθεια και καθοδήγηση του επιβλέποντα επίκουρου καθηγητή στο τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Πανεπιστημίου Πατρών κ. Σγάρμπα Κυριάκου, καθώς και του επίκουρου καθηγητή του Πανεπιστημίου Sapienza University of Rome κ. Βάσσου Σταύρου. Θα ήθελα επίσης να ευχαριστήσω τους φίλους μου Αντωνάδο Κωνσταντίνο (Voldroni), Βρυώνη Νίκο, Καραβέντζα Βασίλη (BillKa), Κόγια Μαρία, Κοκόγια Στέφανο (stevegeno), Κυριάκο Ρωμαίο (R1ddl3), και Παπανδρέου Ελένη για τον κοινό προβληματισμό που μοιραστήκαμε πάνω σε θέματα της εργασίας καθώς και για την συνεχή ενθάρρυνσή τους καθ όλη τη διάρκεια εκπόνησης της εργασίας. Τέλος, θα ήθελα να ευχαριστήσω όλους τους φίλους μου που μοιράστηκαν χρόνο μαζί μου παίζοντας Tichu και ένας προς έναν συντέλεσαν στην απόφασή μου για επιλογή του παρόντος θέματος, καθώς και την οικογένειά μου για την υποστήριξη που μου έχει προσφέρει όλα αυτά τα χρόνια.

Π ε ρ ι ε χ ό μ ε ν α ΚΕΦΑΛΑΙΟ 1 Εισαγωγή... 7 1.1 Η εργασία... 7 1.2 Στόχος... 7 1.3 Δυσκολίες... 7 1.4 Δομή... 9 ΚΕΦΑΛΑΙΟ 2 Γενικές Γνώσεις... 11 2.1 Το Tichu... 11 2.1.1 Τι είναι το Tichu;... 11 2.1.2 Η Τράπουλα... 12 2.1.3 Κανόνες... 12 2.1.4 Τακτικές... 16 2.1.5 Mini Tichu... 16 2.2 Τεχνητή Νοημοσύνη... 16 2.2.1 Δένδρα αναζήτησης... 16 2.2.2 Συναρτήσεις Αναζήτησης και Ευρετικές Συναρτήσεις... 18 2.2.3 Λήψη Αποφάσεων... 20 2.3 Java... 21 2.3.1 Ιστορία της Java... 21 2.3.2 Τι είναι ο αντικειμενοστραφής προγραμματισμός;... 21 2.3.3. Γιατί χρησιμοποιήσαμε Java;... 21 2.4 Συνδυαστική Ανάλυση και Πιθανότητες... 22 2.4.1 Τι είναι συνδυασμός και γιατί τον χρειαζόμαστε εδώ;... 22 2.4.2 Πλήθος όλων των συνδυασμών... 22 2.4.3 Πιθανότητα εμφάνισης ενός συνδυασμού... 24 ΚΕΦΑΛΑΙΟ 3 Υλοποίηση... 25 3.1 Οι κλάσεις Card, Deck, Combination και Hand... 25 3.1.1 Card... 25 3.1.2 Deck... 26 3.1.3 Combination... 26 3.1.4 Hand... 27 3.2 Η κλάση CombList... 31 3.3 Οι κλάσεις Game, Round, Table και Rules... 31

3.3.1 Game... 31 3.3.2 Round... 32 3.3.3 Table... 32 3.3.4 Rules... 33 3.4 Δημιουργία δένδρου αναζήτησης Κλάσεις Node και Search... 33 3.4.1 Εμφωλευμένες κέντες... 36 3.4.2 Διαγραφή ίδιων κόμβων... 37 3.4.3 Αναζήτηση για φουλ... 38 3.4.4 Πρόσθεση μονών συνδυασμών... 39 3.5 Συναρτήσεις αξιολόγησης φύλλου Κλάσεις Evaluation και Possibilities... 40 3.5.1 Απλή συνάρτηση αξιολόγησης... 40 3.5.2 Κανονικοποίηση ως προς το πλήθος των καρτών... 42 3.5.3 Κανονικοποίηση ως προς τον αριθμό των συνδυασμών... 43 3.5.4 Συνάρτηση με μέτρηση των συνδυασμών που απομένουν στο παιχνίδι... 43 3.5.5 Αξιολόγηση λιστών χωρίς συνδυασμό... 44 3.6 Ο παίκτης Κλάση Player... 44 3.6.1. Ανταλλαγή φύλλων... 45 3.6.2 Συνεργατικότητα... 46 3.6.3 Πάσο ή όχι;... 46 3.6.4 Ορισμός νέου συνδυασμού... 47 3.6.5 Ο τυχαίος παίκτης... 47 ΚΕΦΑΛΑΙΟ 4 Παραδείγματα Χρήσης... 49 4.1 Εγκατάσταση Java... 49 4.2 Εκτέλεση προγράμματος... 51 4.3 Λειτουργία προγράμματος... 54 ΚΕΦΑΛΑΙΟ 5 Γενικές Μετρήσεις... 59 5.1 Βάρη συνδυασμών... 59 5.2 Επιθετικότητα... 64 5.3 Συναρτήσεις Αξιολόγησης... 64 5.2.1 Αποτελέσματα κάθε ομάδας... 73 5.2.2. Συνολικές νίκες κάθε συνάρτησης... 78 ΚΕΦΑΛΑΙΟ 6 Συμπεράσματα και Μελλοντικές Βελτιώσεις... 79 6.1 Συμπεράσματα... 79 6.2 Μελλοντικές Βελτιώσεις... 79 Βιβλιογραφία... 81

ΠΑΡΑΡΤΗΜΑ Α Δοκιμαστικά Φύλλα... 82 ΠΑΡΑΡΤΗΜΑ Β Πίνακες... 85 ΠΑΡΑΡΤΗΜΑ Γ Κώδικας... 87

ΚΕΦΑΛΑΙΟ 1 Εισαγωγή 1.1 Η εργασία Η εργασία αυτή ξεκίνησε με σκοπό την ανάπτυξη ενός έξυπνου παίκτη Tichu αφού πρώτα παρατηρήθηκε ότι δεν έχουν ακόμα αναπτυχθεί πολλές εφαρμογές που να δίνουν στο χρήστη τη δυνατότητα να παίζει με τεχνητό αντίπαλο, συμπαίκτη ή και τους δύο. Παράλληλα και με τη δημοτικότητα του παιχνιδιού στην Ελλάδα η ιδέα προσέγγισής του από την πλευρά της Τεχνητής Νοημοσύνης φάνηκε αρκετά ενδιαφέρουσα ώστε να ξεκινήσει η υλοποίησή της. Η συγγραφή του προγράμματος ξεκίνησε τον Δεκέμβριο του 2011 με την καθοριστική βοήθεια του επιβλέποντα επίκουρου καθηγητή στο τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών του Πανεπιστημίου Πατρών κ. Σγάρμπα Κυριάκου και του επίκουρου καθηγητή του Πανεπιστημίου Sapienza University of Rome, κ. Βάσσου Σταύρου. Το πρόγραμμα και ο στόχος της εργασίας ολοκληρώθηκε τον Σεπτέμβριο του 2012. 1.2 Στόχος Στην εργασία αυτή έγινε μία αρχική προσπάθεια μελέτης του παιχνιδιού από την πλευρά της Τεχνητής Νοημοσύνης. Στόχος μας ήταν να δημιουργήσουμε έναν παίκτη ικανό για λήψη αποφάσεων σύμφωνων με τους κανόνες καθώς και να του δώσουμε στοιχεία από την ανθρώπινη εμπειρία έτσι ώστε οι αποφάσεις αυτές να συγκλίνουν με αυτές που θα έπαιρνε ένας παίκτης άνθρωπος. Προσπαθήσαμε επίσης να δημιουργήσουμε δομές οι οποίες να ευνοούν την διόρθωση καθώς και την βελτίωση του προγράμματος. Στόχος μας ήταν να γίνει αυτή η αρχική προσέγγιση του θέματος με τέτοιο τρόπο ώστε να θεωρηθεί, τουλάχιστον κάποιο μέρος της, σαν βάση για περεταίρω μελέτη και ανάπτυξη. Η τελική μορφή του προγράμματος αντιστοιχεί σε μία υλοποίηση διαφορετικών παικτών οι οποίοι χρησιμοποιούν διαφορετικές συναρτήσεις και συσχετίσεις μεταβλητών για τη λήψη αποφάσεων. 1.3 Δυσκολίες Ένας έμπειρος παίκτης Tichu μπορεί να διαπιστώσει ότι πρόκειται για ένα παιχνίδι το οποίο εμπλέκει τεχνικές και στρατηγικές από πολλά διαφορετικά είδη παιχνιδιών πράγμα που το κάνει δύσκολο και πολύπλοκο προς πλήρη υλοποίηση. Όπως θα αναφερθεί και στους κανόνες στο Κεφάλαιο 2 ο παίκτης πρέπει σε κάθε κίνηση να λαμβάνει υπ όψιν τους πόντους της εκάστοτε μπάζας, τα tichu και large tichu από τον

8 συμπαίκτη ή/και τον αντίπαλο, την κατάσταση των κρυφών φύλλων, την χρήση των ειδικών φύλλων καθώς και να είναι σε θέση να αξιολογεί τα φύλλα του και να παίζει ή να δηλώνει πάσο αναλόγως. Λόγω αυτής της πολυπλοκότητας αντιμετωπίσαμε αρκετές δυσκολίες κατά την ανάπτυξή του. Καθώς δεν υπάρχει κάποια προηγούμενη δουλειά ανοιχτή προς το ευρύ κοινό πάνω σε αυτό το θέμα η υλοποίηση ξεκίνησε χωρίς κάποια προηγούμενα δεδομένα προς ανάπτυξη. Οι κύριες όμως δυσκολίες που έπρεπε να αντιμετωπίσουμε ήταν: η πολυπλοκότητα των συνδυασμών οι διαφορετικές προσεγγίσεις προς τους υπόλοιπους παίκτες (ομάδα ή αντίπαλοι) η χρήση των ειδικών φύλλων ο τρόπος ενσωμάτωσης της εμπειρίας του ανθρώπινου παράγοντα στις συναρτήσεις του τεχνητού παίκτη Λόγω αυτών των δυσκολιών αποφασίσαμε να κάνουμε κάποιες παραλείψεις από την υλοποίηση, των οποίων οι λόγοι εξηγούνται παρακάτω: Η πρώτη παράλειψη αφορά στην σχέση μεταξύ συμπαικτών. Στο τελικό πρόγραμμα υπάρχει, βέβαια, μία στοιχειώδης μορφή ομαδικότητας, πολύ γενικά ορισμένη, έτσι ώστε να μην καταργείται ο ρόλος των ομάδων και κατ επέκταση η ροή του παιχνιδιού. Αποφασίσαμε επιπλέον να παραλείψουμε τα ειδικά φύλλα της τράπουλας Tichu για να επιστήσουμε την προσοχή στις στρατηγικές που μπορούν να αναπτυχθούν κατά τη διάρκεια του παιχνιδιού. Βεβαίως και οι στρατηγικές μορφοποιούνται με την εισαγωγή των ειδικών φύλλων αλλά θεωρήσαμε πιο σωστό να γίνει πρώτα η υλοποίηση χωρίς αυτά για να δημιουργηθεί ένα πιο δομημένο και διαρθρωμένο πρόγραμμα. Στην υλοποίηση του προγράμματος και κατά τη διάρκεια μίας παρτίδας καταμετρούνται οι πόντοι κάθε ομάδας αλλά οι παίκτες δεν λαμβάνουν αποφάσεις σύμφωνα με αυτούς. Άλλωστε υπάρχουν άνθρωποι-παίκτες Tichu όλων των επιπέδων οι οποίοι δεν λαμβάνουν, αντίστοιχα, αποφάσεις σύμφωνα με τους πόντους της μπάζας. Επιπλέον ο «σωστός», εάν θα μπορούσε να οριστεί έτσι, παίκτης δε λαμβάνει αποφάσεις σύμφωνα με τους πόντους παρά μόνο σε κάποια συγκεκριμένα σημεία του παιχνιδιού. Τελευταία παράλειψη που έγινε είναι η δήλωση tichu και large tichu από τον παίκτη. Οι δηλώσεις αυτές προϋποθέτουν πολύ καλή συνεργασία ανάμεσα στην ομάδα η οποία δεν είναι ακόμα η βέλτιστη. Η τεχνική των αντιπάλων αλλάζει αντίστοιχα. Συνεπώς η επιλογή ενός παίκτη να πει tichu ή large tichu θα αλλοίωνε τα αποτελέσματα των στρατηγικών που αναπτύχθηκαν. Σημειώνουμε ότι οι παραπάνω παραλείψεις δεν είναι παρά μόνο στάδια του προγράμματος που δεν αναπτύχθηκαν ακόμα. Η δομή που δημιουργήσαμε είναι τέτοια έτσι ώστε να υπάρχουν περιθώρια βελτίωσής του προς όλες τις κατευθύνσεις.

9 1.4 Δομή Στα κεφάλαια που ακολουθούν έχουμε προσπαθήσει να δώσουμε μια καλή εικόνα της εργασίας, τα στάδια από τα οποία πέρασε καθώς και το τελικό αποτέλεσμα στο οποίο φτάσαμε. Πιο συγκεκριμένα, στο Κεφάλαιο 1 περιγράψαμε ήδη το στόχο της εργασίας και πώς ξεκίνησε η υλοποίησή της. Προχωρώντας στο Κεφάλαιο 2 θα παραθέσουμε όλες τις γενικές γνώσεις τις οποίες χρειάζεται ο αναγνώστης για να κατανοήσει την υλοποίηση του προγράμματος και το τελικό αποτέλεσμα. Η υλοποίηση γίνεται σαφής στο Κεφάλαιο 3 όπου περιγράφονται λεπτομερώς και με τη χρήση σχημάτων τα κομβικά σημεία λειτουργίας του προγράμματος πάνω στα οποία είναι βασισμένη η λήψη αποφάσεων του παίκτη. Το Κεφάλαιο 4 που ακολουθεί περιέχει μία ανάλυση του προγράμματος από την πλευρά του χρήστη καθώς και τις οδηγίες λειτουργίας του. Στο Κεφάλαιο 5 έχουμε παραθέσει όλες τις μετρήσεις και τα στατιστικά που προέκυψαν από το πρόγραμμά μας σημείο που είναι κομβικό για τις μελλοντικές βελτιώσεις του προγράμματος. Αυτές εξηγούνται στο Κεφάλαιο 6 μαζί με όλο το πλάνο βελτίωσης της εργασίας καθώς και τα συμπεράσματα που βγάλαμε από τη μελέτη αυτή.

10

ΚΕΦΑΛΑΙΟ 2 Γενικές Γνώσεις 2.1 Το Tichu 2.1.1 Τι είναι το Tichu; Το Tichu είναι ένα παιχνίδι καρτών που παίζεται με τέσσερεις παίκτες. Υπάρχουν βεβαίως και παραλλαγές των τριών ή έξι παικτών αλλά εδώ θα ασχοληθούμε με την κλασσική μορφή του παιχνιδιού. Οι παίκτες χωρίζονται σε δύο ομάδες των δύο (κάθονται αντικριστά μεταξύ τους) και κερδίζει η ομάδα που θα μαζέψει πρώτη 1000 ή παραπάνω πόντους. Οι πόντοι καταμετρούνται στο τέλος του κάθε γύρου αναλόγως με τις μπάζες της κάθε ομάδας. Στόχος του κάθε γύρου για κάθε παίκτη είναι να «βγει», δηλαδή να μείνει χωρίς φύλλα στα χέρια του, έχοντας μαζέψει ταυτόχρονα και πόντους. Εικόνα 2.1 Το παιχνίδι αυτό προέρχεται από ένα κινέζικο παραδοσιακό παιχνίδι και πρόκειται για μία παραλλαγή του παιχνιδιού Choi Dai Di ή Big Two ή Da Lao Er σε συνδυασμό με το Zheng Fen (ανταγωνίζομαι για τους πόντους) [1]. Σήμερα διανέμεται από την ελβετική εταιρία παιχνιδιών Fata Morgana [2]. Το παιχνίδι εντάσσεται στην κατηγορία των Climbing Games η οποία χαρακτηρίζεται από το γεγονός ότι κάθε παίκτης, στη σειρά του, πρέπει να παίξει ένα υψηλότερο φύλλο (ή συνδυασμό φύλλων) από τον προηγούμενο. Όποιος παίκτης δεν μπορεί ή δεν επιθυμεί να «χτυπήσει» το προηγούμενο φύλλο ή συνδυασμό μπορεί να δηλώσει «πάσο». Τα Climbing Games είναι ιδιαίτερα διαδεδομένα στην ανατολή και κυριότερα στην Κίνα. Σχήμα 2.1 Οι ομάδες του παιχνιδιού Η συνεχώς αυξανόμενη διάδοσή του στην Ελλάδα φαίνεται και από την πληθώρα ιστοσελίδων που περιγράφουν το παιχνίδι καθώς και τις διαδικτυακές πλατφόρμες που δίνουν τη δυνατότητα στους χρήστες να παίζουν, διαδικτυακά, με άλλους παίκτες. Η πολυπληθέστερη μέχρι στιγμής πλατφόρμα είναι η γερμανική BrettspielWelt [3]. Δημοφιλής είναι όμως και η ελληνική εφαρμογή του παιχνιδιού στο Facebook μέσω της ιστοσελίδας www.dod.gr.

12 2.1.2 Η Τράπουλα Η Τράπουλα Τichu αποτελείται από 56 φύλλα. Τα 52 από αυτά είναι τέσσερεις «σειρές» δεκατριών φύλλων με αξίες από 2 έως Άσσο, όπως δηλαδή μία κανονική τράπουλα των 52 φύλλων. Οι «σειρές» είναι τα παρακάτω τέσσερα σύμβολα : Σπαθί (Sword): Αστέρι (Star): Διαμάντι (Diamond): Παγόδα (Pagoda): Εικόνα 2.2: Μία τράπουλα Tichu Υπάρχουν επίσης τέσσερεις επιπλέον ειδικές κάρτες που είναι το Mah-Jong, ο Δράκος, ο Φοίνικας και τα Σκυλιά. 2.1.3 Κανόνες Στην ενότητα αυτή θα αναπτυχθούν πλήρως όλοι οι κανόνες του παιχνιδιού. Γενικοί Κανόνες [2] Όπως περιγράφτηκε και στην ενότητα 2.1.1 ο γενικός κανόνας του παιχνιδιού αυτού είναι ότι ο κάθε παίκτης στη σειρά του μπορεί είτε να παίξει ένα φύλλο ή συνδυασμό μεγαλύτερο του προηγούμενού του είτε - εάν δεν επιθυμεί να παίξει ή δεν έχει να δηλώσει «πάσο». Αυτό συνεχίζεται όσες φορές χρειάζεται μέχρις ότου κάποιος παίκτης παίξει ένα φύλλο ή συνδυασμό τον οποίο δεν θα «χτυπήσει» κανείς (ακουστούν, δηλαδή, τρία διαδοχικά πάσο). Ο παίκτης αυτός κερδίζει την «μπάζα» και ορίζει μία καινούρια. Στόχος του παιχνιδιού είναι για τον κάθε παίκτη να απαλλαγεί από όλα τα φύλλα του μαζεύοντας, ταυτόχρονα, και τους περισσότερους πόντους. Ένα παράδειγμα αυτής της λογικής φαίνεται και στο σχήμα 2.2. Σχήμα 2.2 Η ροή του παιχνιδιού Αρχή του Γύρου Ανταλλαγές Τα φύλλα μοιράζονται όλα στους τέσσερεις παίκτες. Στα πρώτα 8 φύλλα γίνεται μία

13 παύση για να δοθεί το δικαίωμα σε κάθε παίκτη να δηλώσει Large Tichu (βλ. 2.1.3 Tichu και Large Tichu). Στο τέλος του μοιράσματος ο κάθε παίκτης έχει στο χέρι του 14 φύλλα. Πριν ξεκινήσει το παιχνίδι κάθε παίκτης πρέπει να δώσει στους δύο αντιπάλους και στον συμπαίκτη του από ένα φύλλο. Αφού δώσει τα επιλεγμένα φύλλα μπορεί να σηκώσει τα αντίστοιχα που έχει λάβει από τους άλλους τρεις παίκτες. Ο παίκτης που αρχίζει πρώτος είναι αυτός που έχει το Mah-Jong. Μπορεί να ρίξει οποιονδήποτε συνδυασμό φύλλων θέλει. Οι υπόλοιποι παίκτες πρέπει είτε να ρίξουν τον ίδιο συνδυασμό σε μεγαλύτερη αξία είτε να πουν «πάσο». Συνδυασμοί Οι επιτρεπτοί συνδυασμοί είναι οι παρακάτω: ΣΥΝΔΥΑΣΜΟΣ ΠΕΡΙΓΡΑΦΗ ΠΑΡΑΔΕΙΓΜΑ Μονό Φύλλο: Ένα μονό φύλλο Το Mah-Jong είναι η μοναδική «μονάδα» στο παιχνίδι. Ο Άσσος είναι η επόμενη αξία μετά τον Ρήγα (Κ). Ο Δράκος έχει τη μεγαλύτερη αξία από όλα 7 τα μονά φύλλα και μπορεί να χτυπηθεί μόνο με βόμβα Ζευγάρι: Δύο ίδια φύλλα 7,7 Τρία Όμοια: Τρία ίδια φύλλα 7,7,7 Κέντα: Πέντε ή παραπάνω διαδοχικά φύλλα Η κέντα ορίζεται από το πλήθος των φύλλων της και την αξία του μεγαλύτερου φύλλου. Π.χ. μια κέντα έξι φύλλων 456789 είναι μεγαλύτερης αξίας από μία 5,6,7,8,9,+ κέντα έξι φύλλων 234567. Μια κέντα ν φύλλων μπορεί να «χτυπηθεί» μόνο από μια κέντα ν φύλλων μεγαλύτερης αξίας. Φουλ: Τρία όμοια φύλλα μαζί με ένα ζευγάρι Η αξία του φουλ ορίζεται από την αξία των τριών όμοιων φύλλων. Ένα φουλ δηλαδή 88855 είναι 7,7,7,3,3 μεγαλύτερης αξίας ενός φουλ 666ΚΚ. Διαδοχικά Ζευγάρια: Δύο ή και παραπάνω ζευγάρια στη σειρά Τα διαδοχικά ζευγάρια ορίζονται και αυτά από το πλήθος των ζευγαριών και την αξία του μεγαλύτερου ζευγαριού. Π.χ. τα διαδοχικά ζεύγη 8899 έχουν μεγαλύτερη αξία από τα διαδοχικά ζεύγη 4,4,5,5,++ 7788. Όπως και στην κέντα, διαδοχικά ζευγάρια ν στο πλήθος μπορούν να χτυπηθούν μόνο από ν στο Βόμβες: πλήθος διαδοχικά ζευγάρια μεγαλύτερης αξίας. 4 όμοια φύλλα (καρέ) ή κέντα πέντε ή και παραπάνω φύλλων ίδιου χρώματος (κέντα - χρώμα) Η βόμβα είναι η δυνατότερη από οποιοδήποτε συνδυασμό φύλλων. Μπορεί να παιχτεί οποιαδήποτε στιγμή πάνω σε οποιονδήποτε συνδυασμό οποιασδήποτε αξίας. (Εκτός φυσικά πάνω από βόμβα μεγαλύτερης αξίας) Η βόμβα καρέ ορίζεται από την αξία των φύλλων της. Μία βόμβα π.χ. 4444 είναι δυνατότερη από μία βόμβα 2222. Η βόμβα κέντα - χρώμα είναι δυνατότερη από την βόμβα καρέ. Όσον αφορά στην βόμβα κέντα - χρώμα Καρέ: 7,7,7,7 Κέντα - Χρώμα: 5, 6, 7, 8, 9, +

14 ανάμεσα σε δύο βόμβες ν πλήθους φύλλων η αξία ορίζεται από το μεγαλύτερο σε αξία φύλλο. Μία βόμβα με πλήθος φύλλων μεγαλύτερο του ν όμως υπερτερεί σε αξία μίας βόμβας με ν φύλλα (Π.χ. ανάμεσα στις δύο βόμβες χρώματος 10JQKA και 234567 η δεύτερη είναι πιο ισχυρή). Πίνακας 2.1: Συνδυασμοί του Tichu Ειδικές Κάρτες Το Mah-Jong Το Mah-Jong είναι το μικρότερο φύλλο της τράπουλας και η μοναδική μονάδα στο παιχνίδι. Μπορεί δηλαδή να παιχτεί είτε στην αρχή μιας κέντας πριν από το 2 (12345) είτε σαν μονό φύλλο. Αυτός που έχει το Mah-Jong στα φύλλα του είναι αυτός που ξεκινάει το γύρο. Μπορεί να ρίξει οποιονδήποτε συνδυασμό θέλει. Εικόνα 2.3 Το Mah-Jong Επιθυμία του Mah-Jong: Τη στιγμή που παίζεται το Mah-Jong ο παίκτης που το ρίχνει (είτε ως μονό φύλλο είτε ως κέντα) δικαιούται να ζητήσει ένα φύλλο (έναν «αριθμό» δηλαδή από το 2 έως τον Άσσο). Η επιθυμία του Mah-Jong πρέπει να εκπληρωθεί όταν βέβαια αυτό είναι δυνατόν. Για παράδειγμα έστω ότι το Mah-Jong παίζεται ως μονό φύλλο και ο παίκτης που το ρίχνει αποφασίζει να ζητήσει 6. Ο επόμενος παίκτης είναι υποχρεωμένος να ρίξει 6 εάν έχει. Εάν δεν έχει τότε μπορεί να ρίξει ό,τι θέλει ή να πάει πάσο. Ο τρίτος στη σειρά πρέπει τώρα αυτός να ρίξει 6 εάν έχει και μπορεί (δηλαδή προηγουμένως δεν έχει πέσει φύλλο μεγαλύτερο του 6) κοκ. Σε περίπτωση που το Mah-Jong πέφτει σε κέντα και ζητείται ένα φύλλο τότε αυτό το φύλλο πρέπει να πέσει σε κέντα ίδιου αριθμού φύλλων εάν φυσικά αυτό είναι δυνατόν. ΠΡΟΣΟΧΗ: Η επιθυμία του Mah-Jong παραμένει έως ότου είναι δυνατόν να εκπληρωθεί. Να θυμίσουμε ότι οι βόμβες μπορούν να παιχτούν ανά πάσα στιγμή και πάνω σε οποιονδήποτε συνδυασμό πράγμα που σημαίνει ότι εάν κάποιος έχει βόμβα στο ζητούμενο φύλλο είναι υποχρεωμένος είτε να τη ρίξει είτε να τη «σπάσει» εάν αυτό είναι δυνατό. Τα σκυλιά Τα σκυλιά μπορούν να παιχτούν από τον παίχτη που έχει «πάρει χέρι» δηλαδή ορίζει τον συνδυασμό που πρόκειται να παιχτεί. Αντί λοιπόν να ορίσει ένα καινούριο συνδυασμό μπορεί να ρίξει τα σκυλιά δίνοντας το λόγο στο συμπαίκτη του να ορίσει αυτός το συνδυασμό που επιθυμεί. Εάν ο συμπαίκτης έχει βγει τότε αυτός που «μιλάει» είναι ο επόμενος παίκτης του κύκλου. Σε περίπτωση που και αυτός έχει βγει τότε «μιλάει» πάλι ο παίχτης που τα έπαιξε. Εικόνα 2. 4 Τα Σκυλιά ΠΡΟΣΟΧΗ: Τα σκυλιά είναι το μόνο φύλλο πάνω στο οποίο δεν μπορεί να πέσει βόμβα.

15 Ο δράκος Ο δράκος είναι το υψηλότερο μονό φύλλο και μπορεί να παιχτεί μόνο όταν παίζονται μονά φύλλα. Μπορεί να χτυπηθεί μόνο από βόμβα. Όταν κάποιος παίχτης παίρνει τη μπάζα με το δράκο τότε την μπάζα αυτή την δίνει σε έναν από τους αντίπαλους παίχτες, αυτόν που πιθανολογεί ότι θα βγει τελευταίος (σε αυτόν, δηλαδή, που θα είναι ο μόνος στο τέλος του γύρου έχοντας φύλλα στα χέρια του). Ο φοίνικας Εικόνα 2. 5 Ο Δράκος Ο φοίνικας χρησιμοποιείται ως μπαλαντέρ. Μπορεί να χρησιμοποιηθεί στη θέση οποιουδήποτε κλασσικού φύλλου (όχι δηλαδή ειδικού) και να συμπληρώσει οποιονδήποτε συνδυασμό εκτός από βόμβα. Όταν παίζεται ως μονό φύλλο τότε η αξία του είναι μισή παραπάνω από το τελευταίο μονό φύλλο που έχει παιχτεί. Εάν δηλαδή παιχτεί πάνω από 6 τότε η αξία του είναι 6+½, εάν παιχτεί πάνω από Άσσο τότε η αξία του είναι Α+½. Ο φοίνικας δεν μπορεί να παιχτεί πάνω από τον Δράκο. Εικόνα 2. 6 Ο Φοίνικας Τέλος του γύρου Πόντοι Ο γύρος σταματάει σε δύο περιπτώσεις: Όταν οι τρείς από τους τέσσερεις παίχτες παίξουν όλα τους τα φύλλα. Τότε μετριούνται οι πόντοι των φύλλων της συνολικής μπάζας της κάθε ομάδας. Οι πόντοι είναι 100 και είναι οι παρακάτω: Πεντάρι (5) Δεκάρι (10) Ρήγας (Κ) Δράκος Φοίνικας 5 πόντοι 10 πόντοι 10 πόντοι 25 πόντοι -25 πόντοι Όλα τα υπόλοιπα φύλλα δεν έχουν πόντους. Ο τελευταίος παίκτης δίνει τους πόντους που έχει στο χέρι του στην αντίπαλη ομάδα και τους πόντους που έχει στη μπάζα του στην ομάδα που ανήκει ο παίκτης που έμεινε πρώτος χωρίς φύλλα (μπορεί δηλαδή να είναι και η δική του ομάδα) Όταν βγουν πρώτος και δεύτερος οι δύο παίκτες μίας ομάδας (ονομάζεται και ένα δύο). Τότε δεν μετριούνται οι πόντοι και η ομάδα αυτή παίρνει αυτόματα 200 πόντους ενώ η άλλη 0. Tichu και Large Tichu Κάθε παίκτης οποιαδήποτε στιγμή πριν ρίξει το πρώτο του φύλλο μπορεί να ανακοινώσει Τichu. Αυτό σημαίνει ότι πιθανολογεί πως θα είναι αυτός ο οποίος θα μείνει πρώτος χωρίς φύλλα. Εάν αυτό γίνει τότε η ομάδα του κερδίζει επιπλέον 100 πόντους. Σε αντίθετη περίπτωση η ομάδα του χάνει 100 πόντους.

16 Large Tichu μπορεί να ανακοινώσει κάποιος παίχτης αφού έχει δει μόνο τα 8 πρώτα φύλλα. Όπως και στο απλό Tichu πάλι πιθανολογεί ότι θα είναι ο πρώτος που θα μείνει χωρίς φύλλα. Εδώ οι πόντοι που προσθέτονται ή αφαιρούνται εάν το «βγάλει» ή όχι αντίστοιχα είναι 200. ΠΡΟΣΟΧΗ: Οι πόντοι του Tichu και Large Tichu είναι επιπλέον πόντοι στο γύρο. 2.1.4 Τακτικές Παρακάτω θα περιγραφούν οι βασικές τακτικές για έναν παίκτη tichu. Αυτές οι τακτικές χρησιμοποιήθηκαν έως ένα βαθμό στην υλοποίηση του προγράμματος. Ένας παίκτης πρέπει κατά τη διάρκεια του παιχνιδιού να προσπαθεί να «ξεφορτωθεί» πρώτα τα αδύναμα μονά φύλλα και συνδυασμούς και στη συνέχεια τους πιο ισχυρούς. Το παιχνίδι παίζεται σε δύο ομάδες γι αυτό καλό είναι οι παίκτες της κάθε ομάδας να συνεργάζονται. Αυτό σημαίνει ότι ένας παίκτης δηλώνει συχνά πάσο σε ισχυρά μονά φύλλα ή συνδυασμούς του συμπαίκτη του. Σκοπός του παιχνιδιού είναι μεν οι πόντοι αλλά αυτό δεν πρέπει να γίνεται αυτοσκοπός. Εξ άλλου υπάρχουν και άλλοι παράμετροι που προσθέτουν πόντους σε μία ομάδα όπως τα large tichu και απλό tichu, το «ένα - δύο» ή η «μπάζα» του τελευταίου παίκτη. 2.1.5 Mini Tichu Στην παρούσα εργασία ασχοληθήκαμε με μία μικρότερη μορφή του tichu το οποίο και ονομάσαμε Mini Tichu. Η έκδοση αυτή διαφέρει από την αρχική στο ότι δεν περιλαμβάνει τις τέσσερεις ειδικές κάρτες. Αυτό μας άφησε να εστιάσουμε περισσότερο στις συναρτήσεις αξιολόγησης του φύλλου και στον τρόπο παιξίματος ενός παίκτη σε ένα -λίγο πιο πολύπλοκο λόγω πλήθος διαφορετικών συνδυασμών - παιχνίδι με μπάζες. Ο παίκτης που παίζει πρώτος ορίζεται από μία τυχαία συνάρτηση. 2.2 Τεχνητή Νοημοσύνη 2.2.1 Δένδρα αναζήτησης Τι είναι δένδρο; - Ορισμός Στην επιστήμη των υπολογιστών το δέντρο είναι μία ευρέως διαδεδομένη δομή δεδομένων η οποία αναπαριστά μία ιεραρχημένη δομή δένδρου δημιουργημένη από ένα σύνολο κόμβων. Ένα δένδρο είναι ένας γράφος G=(V,E) τέτοιος ώστε για κάθε κόμβο κ1, κ2 V υπάρχει ένα μοναδικό απλό μονοπάτι από τον κόμβο κ 1, στον κόμβο κ 2. Διαφορετικά μπορούμε να ορίσουμε ένα δένδρο σαν έναν συνεκτικό γράφο ο οποίος δεν περιέχει κύκλους (είναι άκυκλος) [4] αλλά μπορεί να σχηματιστεί ένας απλός κύκλος εάν προστεθεί μια οποιαδήποτε ακμή στον γράφο. Ένα ακόμα χαρακτηριστικό του γράφου αυτού είναι ότι παύει να είναι συνεκτικός εάν αφαιρεθεί έστω και μία ακμή του.

17 A B C I D J K E F G H Σχήμα 2.3 Η δομή ενός δένδρου Παρακάτω παρουσιάζονται τα βασικά στοιχεία ενός δένδρου: Ρίζα δένδρου : Ο μοναδικός κόμβος στο δένδρο που δεν έχει γονείς. Για παράδειγμα στο σχήμα 2.3 ο κόμβος A είναι η ρίζα του δένδρου. Γονέας κόμβου κ : Είναι ο αμέσως προηγούμενος κόμβος της διαδρομής από τη ρίζα του δένδρου στον κόμβο κ. Όπως φαίνεται και στο σχήμα 2.3 ο κόμβος C έχει ως γονέα τον κόμβο B. Παιδί κόμβου κ : Παιδί ενός κόμβου θεωρείται ο κόμβος για τον οποίο ο κ είναι πατέρας. Για παράδειγμα στο σχήμα 2.3 ο κόμβος E έχει παιδιά τους κόμβους F και G. Φύλλα Δένδρου : Οποιοσδήποτε τερματικός κόμβος (κόμβος βαθμού 1) ορίζεται ως φύλλο δένδρου. Πιο απλά, ένα φύλλο δένδρου είναι οποιοσδήποτε κόμβος δεν έχει παιδί. Στο δένδρο του σχήματος 2.3 φύλλα είναι οι κόμβοι I, C, K, H και G Βάθος κόμβου : Η απόσταση (αριθμός κλαδιών) μεταξύ του κόμβου και της ρίζας του δένδρου. Παράδειγμα: ο κόμβος E έχει βάθος 3. Βάθος Δένδρου (d) : Η μεγαλύτερη απόσταση κόμβου και ρίζας στο δένδρο. Το βάθος του δένδρου του σχήματος 2.3 είναι ίσο με 5 γιατί ο κόμβος H ο οποίος και βρίσκεται πιο μακριά από τη ρίζα έχει βάθος ίσο με 5. Μέγεθος Δένδρου : Ο συνολικός αριθμός των κόμβων ενός δένδρου Παράγοντας Διακλάδωσης b : Ο αριθμός παιδιών κάθε κόμβου d Κόμβοι στο επίπεδο d 2d(για b=2) Συνολικός αριθμός κόμβων 0 1 2 3 4 1 2 4 8 16 1 3 7 15 31

18 5 32 63 Πίνακας 2.2 Κόμβοι δένδρου Κατασκευή δένδρου αναζήτησης Το δένδρο αναζήτησης παράγεται από την αρχική κατάσταση (κόμβος ρίζα) μέσω ορισμένων ενεργειών οι οποίοι δημιουργούν τους κόμβους φύλλα [5]. Μετά το πέρας της κατασκευής του δένδρου αναζήτησης έχει οριστεί ένα σύνολο καταστάσεων το οποίο ορίζεται και ως χώρος καταστάσεων. Η ρίζα του δένδρου είναι ένας κόμβος ο οποίος αντιστοιχεί στην αρχική κατάσταση και τα φύλλα του δένδρου θεωρούνται οι τελικές καταστάσεις ή στόχοι. Για να φτάσουμε από την αρχική κατάσταση σε μία κατάσταση στόχου πρέπει να επεκτείνουμε τον κάθε τον κάθε κόμβο-προς-αναζήτηση με κάποια ενέργεια. Ξεκινώντας, δηλαδή, από την αρχική κατάσταση και εφαρμόζοντας μία συνάρτηση διαδόχων παράγουμε ένα καινούριο σύνολο καταστάσεων οι οποίες αντιστοιχούν στα παιδιά της αρχικής κατάστασης. Συνεχίζοντας αυτή τη διαδικασία κατασκευάζουμε ολόκληρο το δένδρο αναζήτησης έως ότου φτάσουμε στις τερματικές καταστάσεις οι οποίες αντιστοιχούν στις καταστάσεις στόχου ή φύλλα του δένδρου. Ο τρόπος κατασκευής του δένδρου, και πιο συγκεκριμένα η επιλογή του κόμβου για τον οποίο θα γίνει επέκταση προσδιορίζεται από την στρατηγική αναζήτησης που έχει επιλεχθεί. 2.2.2 Συναρτήσεις Αναζήτησης και Ευρετικές Συναρτήσεις Παρακάτω θα περιγράψουμε μία απλή απληροφόρητη συνάρτηση αναζήτησης καθώς και μία ευρετική συνάρτηση με συνδυασμό των οποίων έγινε η υλοποίηση του προγράμματος. Οι απληροφόρητες συναρτήσεις αναζήτησης έχουν σαν μοναδικό τους γνώρισμα την ικανότητά τους να διακρίνουν καταστάσεις ως καταστάσεις στόχου. Αυτό σημαίνει ότι οι κόμβοι προς επέκταση επιλέγονται με κάποιον αλγόριθμο ο οποίος δεν λαμβάνει υπ όψιν το περιεχόμενο του κόμβου παρά μόνο εάν αυτός αποτελεί κατάσταση στόχου ή όχι. Αντίθετα, οι ευρετικές συναρτήσεις είναι στρατηγικές επέκτασης του δένδρου αναζήτησης οι οποίες χρησιμοποιούν μία συνάρτηση αξιολόγησης του κόμβου και επιλέγουν τον επόμενο κόμβο προς επέκταση με βάση αυτή την αξία. Οι συναρτήσεις αυτές κατά κύριο λόγο βρίσκουν τη λύση ενός προβλήματος πολύ πιο γρήγορα από τις απληροφόρητες συναρτήσεις αναζήτησης χωρίς όμως αυτό τους το γνώρισμα να είναι εγγυημένο. Υπάρχουν περιπτώσεις όπου ο ευρετικός μηχανισμός μπορεί να απαιτήσει πολύ περισσότερο χρόνο ή ακόμα και να μην οδηγήσει σε κάποια λύση. Η συνάρτηση αξιολόγησης συνήθως χρησιμοποιεί την ανθρώπινη γνώση και εμπειρία για να είναι βέλτιστη [5] [6]. Η αναζήτηση πρώτα σε βάθος Η αναζήτηση πρώτα σε βάθος είναι ένα είδος απληροφόρητης συνάρτησης αναζήτησης. Η επιλογή του επόμενου κόμβου προς επέκταση προκύπτει από τους απογόνους (παιδιά) του προηγούμενου κόμβου που αναζητήθηκε. Μετά την επέκταση ενός κόμβου γίνεται αυτόματα επέκταση του πρώτου απογόνου του κόμβου αυτού. Όταν ο κόμβος δεν έχει απογόνους τότε η αναζήτηση προχωρά στον επόμενο απόγονο του

19 προηγούμενου κόμβου (στον αδελφό-κόμβο). Στο σχήμα 2.4 φαίνεται ένα παράδειγμα αναζήτησης πρώτα σε βάθος με τα νούμερα στους κόμβους να ορίζουν τη σειρά επέκτασής τους [5] [6]. 1 2 3 4 9 10 11 5 6 8 7 Σχήμα 2.4 Αναζήτηση πρώτα σε βάθος Η αναζήτηση Α* Η αναζήτηση Α* είναι μία ευρετική αναζήτηση και εμπίπτει στην κατηγορία αναζητήσεων πρώτα στο καλύτερο. Για να βρεθεί ο καλύτερος κόμβος χρησιμοποιείται μία συνάρτηση αξιολόγησης κόστους του κάθε κόμβου. Ο κόμβος με το μικρότερο συνήθως κόστος επιλέγεται για επέκταση. Η συνάρτηση αυτή χρησιμοποιεί το άθροισμα τιμών που προκύπτουν καθ όλη τη διαδρομή. Για να γίνει πιο εύκολα κατανοητή η αναζήτηση Α* μπορούμε να θεωρήσουμε ότι το πρόβλημα προς εξερεύνηση είναι η εύρεση της γρηγορότερης διαδρομής από μία πόλη σε μία άλλη. Στο παράδειγμα του σχήματος 2.6 η πόλη αναχώρησης είναι η πόλη Α και η πόλη άφιξης είναι η πόλη Η. Στο σχήμα 2.5 φαίνεται η διαδικασία αναζήτησης του αλγορίθμου. Πιο συγκεκριμένα ο αλγόριθμος αρχικά επεκτείνει τον κόμβο Πόλη Α όπου προκύπτουν οι δύο κοντινές του πόλεις Β και Γ. Επιλέγει στη συνέχεια να επεκτείνει τον κόμβο με τη μικρότερη απόσταση, δηλαδή τον κόμβο Β. Από την ενέργεια αυτή προκύπτουν οι κόμβοι Γ και Δ που αντιπροσωπεύουν τις πόλεις Γ και Δ αντίστοιχα. Επιλέγεται για επέκταση η πόλη Δ η οποία και προκύπτει ότι είναι η πόλη με τη μικρότερη απόσταση από την αρχική. Στη συνέχεια επεκτείνεται ο κόμβος Δ και προκύπτουν οι κόμβοι Ε και Ζ οι οποίοι όμως βρίσκονται πιο «μακριά» από την αρχική πόλη από τον κόμβο Γ. Γι αυτόν το λόγο ο αλγόριθμος επιλέγει να αναπτύξει αυτόν από τον οποίο προκύπτει ο κόμβος Η ο οποίος και είναι ο κόμβος στόχος. Με αυτή τη διαδικασία βρίσκεται η γρηγορότερη διαδρομή από τον κόμβο Α στον Η η οποία (όπως φαίνεται και από τα σχήματα 2.5 και 2.6) γίνεται μέσω της πόλης Γ [5] [6]. Στο Κεφάλαιο 3 θα περιγραφεί αναλυτικά ο συνδυασμός των δύο αυτών αναζητήσεων για τη χρήση του δένδρου αναζήτησης έτσι ώστε ο τεχνητός παίκτης tichu να είναι ικανός στη λήψη αποφάσεων.