Μελετώντας κινήσεις και στρατηγικές στο σκάκι με τη χρήση του Μatlab
Abstract
Στην παρούσα εργασία θα μελετήσουμε τις κινήσεις και τις στρατηγικές στο σκάκι. Η πολύπλοκη φύση του παιχνιδιού αυτού μας προσφέρει την δυνατότητα να εφαρμόσουμε αλγόριθμους τεχνητής νοημοσύνης, στατιστικές αναλύσεις και ευρετικές μεθόδους. Βλέπουμε δηλαδή ότι συνδυάζει ένα ευρύ φάσμα από επιστήμες πράγμα που το ξεχωρίζει από τα υπόλοιπα επιτραπέζια παιχνίδια. Η υλοποίηση διαλέξαμε να είναι σε MATLAB γιατί είναι μια γλώσσα με πολλές ενσωματωμένες συναρτήσεις που μας διευκολύνουν κατά πολύ στην εφαρμογή πολύπλοκων μαθηματικών αλγορίθμων. Επιπλέον, θα δούμε πώς η υλοποίηση μπορεί να ενισχυθεί από το UCI (συγκεκριμένα από το Stockfish 14) που είναι ένα ανοιχτό πρωτόκολλο επικοινωνίας και επιτρέπει στις μηχανές σκακιού να επικοινωνούν με διεπαφές χρήστη. Στις επόμενες σελίδες θα δούμε αναλυτικά τι χρειάζεται για να παίξει σκάκι ένας υπολογιστής και πιο συγκεκριμένα:
⮚ Τον τρόπο αναπαράστασης της σκακιέρας στη μνήμη, έτσι ώστε να γνωρίζει ποια είναι η κατάσταση του παιχνιδιού. (θα το δούμε στο Κεφ. 3 , Σελίδες 37 – 38 )
⮚ Κανόνες για τον καθορισμό του τρόπου δημιουργίας νόμιμων κινήσεων, έτσι ώστε να μπορεί να παίζει σωστά (θα το δούμε αναλυτικά στο Κεφ. 1 , Σελίδες 13 – 18 )
⮚ Κανόνες για τον καθορισμό του τρόπου υπολογισμού της αξίας που έχει το κάθε πιόνι, την αναπαράσταση(σκακιστική γραφή) και τον τερματισμό του παιχνιδιού (θα τα δούμε αναλυτικά στο Κεφ. 1, Σελίδες 19 – 27 )
⮚ Μια τεχνική για να επιλέξετε την κίνηση που θα πραγματοποιήσει ανάμεσα σε όλες τις νόμιμες δυνατότητες, έτσι ώστε να μπορεί να επιλέξει μια κίνηση αντί να αναγκαστεί να επιλέξει μια τυχαία. Επίσης, έναν τρόπο σύγκρισης κινήσεων και θέσεων, ώστε να κάνει έξυπνες επιλογές. (θα τα δούμε στο Κεφ.3 , Σελίδες 39 – 46 )
⮚ Τον κώδικα (θα τον δούμε στο Κεφ. 4, Σελίδες 49 – 77 )
⮚ Κάποιο είδος διεπαφής χρήστη - Graphical User Interface και αν θέλουμε κάποιον εξωτερικό κινητήρα σκακιού. (θα τα δούμε στο Κεφ. 2, Σελίδες 27-32 και στο Κεφ.5 , Σελίδες 78 – 88 )
In this project we will study movements and strategies of chess. The complex nature of this game gives us a chance to implement artificial intelligence algorithms, statistical analysis and heuristic methods. Therefore, we see that it combines a wide variety of sciences which makes it different from other board games. We chose to use MATLAB for the implementation as it is a programming language with many embedded functions that make it easier for us to apply complex algorithms. In addition, we will see how our implementation can be strengthened by the UCI tool (Stockfish 14) which is an open communication protocol that allows chess machines to communicate with the user interface. In the next pages we will study in detail the whole procedure of a computer that makes it able to play chess.
To be more specific:
⮚ The way chessboard uses memory in order to be updated with the game status (Section 3, page 37-38)
⮚ The rules to determine a way to create legal movements in order to play right (Section 1, page 13-18)
⮚ The rules to determine a way to calculate the value of each piece, the presentation (chess writing) and the termination of the game (Section 1, page 19-27)
⮚ A technique in order to choose a move to apply among all legal choices and not just make a random move. Also, we will look through a way of comparing the moves so the computer can make smart choices (Section 3, page 39-46)
⮚ Look through the code (Section 4, page 49-77)
⮚ Some kind of Graphical User Interface and a chess engine (Section 5, 78-88)