Monday, August 27, 2012

Παράδειγμα Εφαρμογής - μέρος 4ο

Στο σημερινό μάθημα θα ολοκληρώσουμε το Tic-Tac-Toe.


Για να είμαι ειλικρινής το είχα ολοκληρώσει με βιντεάκι, αλλά αντιλήφθηκα στο τέλος ότι δεν έγραφε το βιντεάκι. Έτσι θα συμβιβαστούμε με screenshots!

Πάμε!


Ανοίγουμε τη φόρμα FrmTicTacToeBoard που δημιουργήσαμε σε προηγούμενο μάθημα. Δεξί κλικ πάνω στη φόρμα [ στο designer ] και επιλέγουμε "View Code" για να μεταβούμε στο αρχείο που γράφουμε τον κώδικα.


Αντιγράψτε τον κώδικα ως έχει πιο κάτω:


Εξηγήσεις:

1. partial : λέξη κλειδί που υποδηλώνει ότι κώδικας που αφορά την ίδια κλάση ενδέχεται να υπάρχει και σε άλλο αρχείο.
2. : Το σύμβολο ':' αναμεταξύ των λέξεων  FrmTicTacToeBoard  και  Form, σημαίνει ότι η κλάση FrmTicTacToeBoard κληρονομεί από την κλάση Form. Αυτό σημαίνει ότι η κλάση FrmTicTacToeBoard έχει όλες τις ιδιότητες της κλάσης Form.
3. Δήλωση και αρχικοποίηση ενός μονοδιάστατου πίνακα τύπου Player, με δύο θέσεις.
4. Στην πρώτη θέση του πίνακα τοποθετούμε ένα αντικείμενο της κλάσης Player, με το σύμβολο Χ ενώ στη δεύτερη θέση βάζουμε ένα άλλο αντικείμενο με το σύμβολο Ο.
5. Η μέθοδος που έχει το ίδιο όνομα με την κλάση, και δεν έχει τύπο επιστροφής ονομάζεται constructor. Η μέθοδος αυτή καλείται όταν δημιουργείται ένα αντικείμενο της κλάσης αυτής.



Μετά μεταβείτε στον Designer της φόρμας [δεξί κλικ -> View Designer ].

Επιλέξτε το πρώτο από τα εννιά κουμπιά του πίνακα. Δεξί κλικ -> Properties.
Στο παράθυρο με τα Properties, επιλέξτε το κεραυνάκι που βρίσκεται πάνω ψηλά στο παράθυρο. Στη λίστα με τα events, κάνετε διπλό κλικ πάνω στο event "Click".

Το διπλό κλικ θα σας μεταφέρει στον κώδικα, και συγκεκριμένα μέσα σε ένα event που ονομάζεται:



Αντιγράψτε το κώδικα στο event, όπως εμφανίζεται πιο κάτω:



Εξηγήσεις:

1. Το event 'Click' έχει δύο παραμέτρους. Η πρώτη παράμετρος 'object sender' είναι το control το οποίο προκάλεσε το event. Σε αυτή τη γραμμή, κάνουμε cast τον αποστολέεα [sender] σε Button, επειδή γνωρίζουμε ότι ο αποστολέας είναι Button, και θέλουμε να έχουμε πρόσβαση σε αυτό.
2. Η μέθοδος Split είναι μια πολύ χρήσιμη μέθοδος. Μας βοηθά να διαχωρίζουμε strings με βάση ένα χαρακτήρα [ή σύνολο χαρακτήρων]. Στην περίπτωσή μας, επειδή το όνομα των κουμπιών έχει κάποια δομή [Όνομα_x_y] χρησιμοποιούμε τον χαρακτήρα "_" για να σπάσουμε το όνομα του button στις χρήσιμες πληροφορίες.
3.Εδώ μετατρέπουμε το string που περιγράφει ένα αριθμό, στην αριθμητική του τιμή. Προσέξτε ότι δεν κάνουμε cast, αλλά μετατροπή.
4. ** για να είναι σωστή αυτή η γραμμή πρέπει να κάνετε μια αλλαγή στον κώδικα της κλάσης Player. Θα το αφήσω να το ανακαλύψετε.
5. Η δομή συνθήκης switch μας βοηθά να επιλέξουμε την επόμενή μας κίνηση ανάλογα με το τι ισχύει για τη συνθήκη μας. Το σύμβολο '%' συμβολίζει το υπόλοιπο της διαίρεσης μεταξύ δύο αριθμών! πχ. 2%2 = 0,   3%2=1,  5%2=1
6. Το σύμβολο '!' μας δίνει την άρνηση μιας πρότασης bool. Δηλαδή !true = false.



Πηγαίνετε στον Designer της φόρμας. Επιλέξτε τα υπόλοιπα 8 κουμπιά του πίνακα [κρατώντας πατημένο το Ctrl, και επιλέγοντας με το ποντίκι ένα-ένα τα κουμπιά]. Όπως είναι επιλεγμένα τα κουμπιά, δεξί κλικ, Properties και μετά Events [κεραυνάκι]. Στο event click, επιλέξτε από τη λίστα, το event "btnCell_1_1_Click".


Για να δουλέψει σωστά το πρόγραμμα, πέρα από το σημείο 4, πρέπει να γίνει ακόμα μια διόρθωση στην κλάση Player, στη συνάρτηση HasWon. Θα το αφήσω να το ανακαλύψετε.
 Πατώντας F5 ή το play, μπορείτε να τρέξετε την εφαρμογή.



No comments:

Post a Comment