Προγραμματισμός παιχνιδιού Tic Tac Toe σε Visual Basic

click fraud protection

Προγραμματισμός παιχνίδια υπολογιστών μπορεί να είναι η πιο τεχνικά προκλητική (και πιθανώς η καλύτερη πληρωμή) εργασία που α προγραμματιστής μπορώ να έχω. Τα παιχνίδια κορυφαίου επιπέδου απαιτούν το καλύτερο από τους προγραμματιστές και τους υπολογιστές.

Visual Basic 6 έχει πλέον ξεπεραστεί προσεκτικά ως πλατφόρμα προγραμματισμού παιχνιδιών. (Ποτέ δεν ήταν πραγματικά ένα. Ακόμη και στις "καλές εποχές", οι σοβαροί προγραμματιστές παιχνιδιών δεν θα χρησιμοποιούσαν ποτέ γλώσσα υψηλού επιπέδου, όπως η VB 6, επειδή απλά δεν μπορούσατε να πάρετε το κοπτικό αλλά το απλό παιχνίδι "Tic Tac Toe" είναι μια μεγάλη εισαγωγή στον προγραμματισμό που είναι λίγο πιο προηγμένη από "Γειά σου Κόσμε!"

Πρόκειται για μια μεγάλη εισαγωγή σε πολλές από τις θεμελιώδεις έννοιες του προγραμματισμού, καθώς συνδυάζει τεχνικές όπως:

  • Η χρήση του συστοιχίες. Οι δείκτες Χ και Ο διατηρούνται σε ξεχωριστές συστοιχίες και οι ολόκληρες συστοιχίες περνούν μεταξύ λειτουργιών για να παρακολουθούν την πρόοδο του παιχνιδιού.
  • Χρησιμοποιώντας γραφικά επιπέδου VB 6: Το VB 6 δεν προσφέρει μεγάλη γραφική ικανότητα, αλλά το παιχνίδι είναι μια καλή εισαγωγή σε ό, τι είναι διαθέσιμο. Πολλά από τα υπόλοιπα αυτής της σειράς είναι μια εξερεύνηση του πώς το GDI +, η επόμενη γενιά γραφικών της Microsoft, αντικαθιστά τα γραφικά επιπέδου VB 6.
    instagram viewer
  • Χρήση υπολογισμών μαθηματικών για έλεγχο προγράμματος: Το πρόγραμμα χρησιμοποιεί έξυπνο modulo (Mod) και ακέραιο αριθμό υπολογισμούς διαίρεσης χρησιμοποιώντας τις συστοιχίες δεικτών δύο παιχνιδιών για να καθορίσετε πότε έχει ένα "κερδίσει" τριών στοιχείων συνέβη.

Η τάξη προγραμματισμού σε αυτό το άρθρο είναι ίσως λίγο πέρα ​​από το αρχικό επίπεδο, αλλά θα πρέπει να είναι καλό για τους "ενδιάμεσους" προγραμματιστές. Αλλά ας αρχίσουμε σε ένα στοιχειώδες επίπεδο για να απεικονίσουμε μερικές από τις έννοιες και να ξεκινήσουμε με σας Visual Basic παιχνίδι καριέρα προγραμματισμού. Ακόμα και οι σπουδαστές πιο προχωρημένοι από αυτό μπορεί να διαπιστώσουν ότι είναι λίγο δύσκολο να πάρει τα αντικείμενα με τη μορφή ακριβώς σωστή.

Πώς να παίξετε Tic Tac Toe

Εάν δεν έχετε παίξει ποτέ Τρίλιζα, εδώ είναι οι κανόνες. Δύο παίκτες εναλλάσσονται κατά την τοποθέτηση των Xs και Os σε 3 x 3 παιχνίδι.

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

Πριν ξεκινήσετε οποιαδήποτε πραγματική κωδικοποίηση, είναι πάντα καλή ιδέα να αλλάξετε τα ονόματα οποιωνδήποτε στοιχείων που χρησιμοποιείτε. Μόλις ξεκινήσετε κωδικοποίηση, το όνομα θα χρησιμοποιηθεί αυτόματα από τη Visual Basic για να είναι το σωστό όνομα. Θα χρησιμοποιήσουμε το όνομα της φόρμας frmTicTacToe και θα αλλάξουμε επίσης τη λεζάντα "Σχετικά με το Tic Tac Toe".

Με τη μορφή που έχει καθοριστεί, χρησιμοποιήστε το στοιχείο ελέγχου γραμμής εργαλείων για να σχεδιάσετε ένα πλέγμα 3 x 3. Κάντε κλικ στο εργαλείο γραμμής και, στη συνέχεια, σχεδιάστε μια γραμμή όπου θέλετε. Θα πρέπει να δημιουργήσετε τέσσερις γραμμές με αυτό τον τρόπο και να ρυθμίσετε το μήκος και τη θέση τους για να τους κάνουν να φαίνονται σωστοί. Η Visual Basic διαθέτει επίσης μερικά βολικά εργαλεία στο μενού Format που θα σας βοηθήσουν. Αυτή είναι μια μεγάλη ευκαιρία να εξασκηθείτε μαζί τους.

Εκτός από το πλέγμα παιχνιδιών, θα χρειαστούμε κάποια αντικείμενα για τα σύμβολα X και O που θα τοποθετηθούν στο πλέγμα. Δεδομένου ότι υπάρχουν εννέα κενά στο πλέγμα, θα δημιουργήσουμε έναν πίνακα αντικειμένων με εννέα κενά, που ονομάζονται στοιχεία στη Visual Basic.

Υπάρχουν διάφοροι τρόποι να κάνουμε σχεδόν τα πάντα στο περιβάλλον ανάπτυξης της Visual Basic και η δημιουργία αρχείων ελέγχου δεν είναι καμία εξαίρεση. Πιθανώς ο ευκολότερος τρόπος είναι να δημιουργήσετε την πρώτη ετικέτα (κάντε κλικ και να σχεδιάσετε όπως το εργαλείο γραμμής), ονομάστε το, ορίστε όλα τα χαρακτηριστικά (όπως το Font και ForeColor) και, στη συνέχεια, κάντε αντίγραφα του. Το VB 6 θα σας ρωτήσει εάν θέλετε να δημιουργήσετε έναν πίνακα ελέγχου. Χρησιμοποιήστε το όνομα lblPlayGround για την πρώτη ετικέτα.

Για να δημιουργήσετε τα άλλα οκτώ στοιχεία του πλέγματος, επιλέξτε το πρώτο αντικείμενο της ετικέτας, ορίστε την ιδιότητα Ευρετήριο στο μηδέν και πατήστε CTRL + C (αντιγραφή). Τώρα μπορείτε να πατήσετε CTRL + V (επικόλληση) για να δημιουργήσετε ένα άλλο αντικείμενο ετικέτας. Όταν αντιγράφετε αντικείμενα όπως αυτό, κάθε αντίγραφο θα κληρονομήσει όλες τις ιδιότητες εκτός από τον Δείκτη από την πρώτη. Ο δείκτης θα αυξηθεί κατά ένα για κάθε αντίγραφο. Αυτός είναι ένας πίνακας ελέγχου, επειδή όλοι έχουν το ίδιο όνομα, αλλά διαφορετικές τιμές δείκτη.

Εάν δημιουργήσετε αυτόν τον πίνακα, όλα τα αντίγραφα θα στοιβάζονται το ένα πάνω στο άλλο στην επάνω αριστερή γωνία της φόρμας. Σύρετε κάθε ετικέτα σε μία από τις θέσεις του πλέγματος αναπαραγωγής. Βεβαιωθείτε ότι οι τιμές του δείκτη είναι διαδοχικές στο πλέγμα. Η λογική του προγράμματος εξαρτάται από αυτό. Το αντικείμενο ετικέτας με τιμή δείκτη 0 θα πρέπει να βρίσκεται στην επάνω αριστερή γωνία και η κάτω δεξιά ετικέτα θα πρέπει να έχει ευρετήριο 8. Εάν οι ετικέτες καλύπτουν το πλέγμα αναπαραγωγής, επιλέξτε κάθε ετικέτα, κάντε δεξί κλικ και επιλέξτε Αποστολή προς επιστροφή.

Δεδομένου ότι υπάρχουν οκτώ δυνατότητες για να κερδίσετε το παιχνίδι, θα χρειαστούμε οκτώ διαφορετικές γραμμές για να δείξουμε τη νίκη στο πλέγμα παιχνιδιού. Θα χρησιμοποιήσετε την ίδια τεχνική για να δημιουργήσετε έναν άλλο πίνακα ελέγχου. Πρώτα, σχεδιάστε τη γραμμή, ονομάστε το linWin και ορίστε την ιδιότητα Index στο μηδέν. Στη συνέχεια, χρησιμοποιήστε την τεχνική αντιγραφής-επικόλλησης για να δημιουργήσετε άλλες επτά γραμμές. Η παρακάτω εικόνα δείχνει τον τρόπο ρύθμισης των αριθμών ευρετηρίου.

Εκτός από τα ετικέτα και τα αντικείμενα γραμμής, χρειάζεστε κάποια κουμπιά εντολών για να παίξετε το παιχνίδι και περισσότερες ετικέτες για να κρατήσετε τη βαθμολογία. Τα βήματα για τη δημιουργία αυτών δεν είναι λεπτομερή εδώ, αλλά αυτά είναι τα αντικείμενα που χρειάζεστε.

Δύο κουμπιά αντικείμενα:

  • cmdNewGame
  • cmdResetScore

Το αντικείμενο πλαισίου fraPlayFirst περιέχει δύο κουμπιά επιλογών:

  • optXPlayer
  • optOplayer

Το αντικείμενο πλαισίου fraScoreBoard περιέχει έξι ετικέτες. Μόνο τα lblXScore και lblOScore αλλάζουν στον κώδικα του προγράμματος.

  • lblX
  • lblXScore
  • lblO
  • lblOScore
  • lblMinus
  • lblColon

Τέλος, χρειάζεστε επίσης το αντικείμενο ετικέτας lblStartMsg για να «μάσκατε» το κουμπί cmdNewGame όταν δεν πρέπει να κάνετε κλικ. Αυτό δεν είναι ορατό στην παρακάτω εικόνα επειδή καταλαμβάνει τον ίδιο χώρο στη μορφή με το κουμπί εντολής. Μπορεί να χρειαστεί να μετακινήσετε προσωρινά το κουμπί εντολής για να σχεδιάσετε αυτήν την ετικέτα στη φόρμα.

Μέχρι στιγμής, δεν έχει γίνει κωδικοποίηση VB, αλλά τελικά είμαστε έτοιμοι να το κάνουμε αυτό.

Αρχικοποίηση

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

Μία από τις πρώτες σχεδιαστικές αποφάσεις που πρέπει να κάνετε είναι να παρακολουθείτε την τρέχουσα «κατάσταση» του παιχνιδιού. Με άλλα λόγια, ποια είναι τα τρέχοντα Xs και Os στο πλέγμα παιχνιδιού και ποιος κινείται στη συνέχεια. Η έννοια του «κράτους» είναι κρίσιμη σε πολλούς προγραμματισμούς και, ειδικότερα, είναι σημαντική στον προγραμματισμό ASP και ASP.NET για τον Ιστό

Υπάρχουν διάφοροι τρόποι για να γίνει αυτό, γι 'αυτό είναι ένα κρίσιμο βήμα στην ανάλυση. Εάν επιλύσατε αυτό το πρόβλημα μόνοι σας, ίσως θελήσετε να σχεδιάσετε ένα διάγραμμα ροής και να δοκιμάσετε διαφορετικές επιλογές με το «χαρτί γρατσουνίσματος» πριν ξεκινήσετε οποιαδήποτε κωδικοποίηση.

Η λύση μας χρησιμοποιεί δύο "δισδιάστατες συστοιχίες", διότι αυτό βοηθά στην παρακολούθηση της «κατάστασης» με την απλή αλλαγή των δεικτών συστοιχιών σε βρόχους προγράμματος. Η κατάσταση της επάνω αριστεράς γωνίας θα είναι στο στοιχείο πίνακα με δείκτη (1, 1), η πάνω δεξιά γωνία θα είναι (1, 3), η κάτω δεξιά στην (3,3) και ούτω καθεξής. Οι δύο συστοιχίες που το κάνουν είναι:

iXPos (χ, γ)

και

iOPos (χ, γ)

Υπάρχουν πολλοί διαφορετικοί τρόποι με τους οποίους αυτό μπορεί να γίνει και η τελική λύση VB.NET σε αυτή τη σειρά σας δείχνει πώς να το κάνετε μόνο με έναν ενιαίο μονοδιάστατο πίνακα.

Ο προγραμματισμός για να μεταφράσει αυτές τις συστοιχίες στις αποφάσεις κερδίζει παίκτη και οι ορατές ενδείξεις στη φόρμα βρίσκονται στην επόμενη σελίδα.

Χρειάζεστε επίσης μερικές γενικές μεταβλητές ως εξής. Παρατηρήστε ότι αυτά βρίσκονται στον γενικό και κώδικα δηλώσεων για τη φόρμα. Αυτό το κάνει "επίπεδο ενότητας" μεταβλητές που μπορούν να αναφερθούν οπουδήποτε στον κώδικα αυτής της φόρμας. Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα Κατανόηση του πεδίου των μεταβλητών στη Βοήθεια της Visual Basic.

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

Private Sub Form_Load ()

Δεύτερον, πριν από κάθε νέο παιχνίδι, όλες οι μεταβλητές που πρέπει να επαναφέρονται στις αρχικές τιμές ανατίθενται σε μια υπορουτίνα προετοιμασίας.

Sub InitPlayGround ()

Λάβετε υπόψη ότι η αρχικοποίηση φορτίου φόρμας καλεί επίσης την αρχικοποίηση της παιδικής χαράς.

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

  • Περάστε τον κώδικα με το πλήκτρο F8
  • Ρύθμιση ρολογιού σε βασικές μεταβλητές, όπως sPlaySign ή iMove
    Ορισμός ενός σημείου διακοπής και ερώτηση της τιμής των μεταβλητών. Για παράδειγμα, στον εσωτερικό βρόχο της αρχικοποίησης:
lblPlayGround ((i - 1) * 3 + j - 1) .Caption = ""

Σημειώστε ότι αυτό το πρόγραμμα δείχνει σαφώς γιατί είναι μια καλή πρακτική προγραμματισμού για τη διατήρηση δεδομένων σε συστοιχίες όποτε είναι δυνατόν. Εάν δεν είχατε συστοιχίες σε αυτό το πρόγραμμα, θα πρέπει να γράψετε κώδικα κάτι τέτοιο:

Line0.Visible = False
Line1.Visible = False
Line2.Visible = False
Line3.Visible = False
Line4.Visible = False
Line5.Visible = False
Line6.Visible = False
Line7.Visible = False

αντί αυτού:

Για i = 0 έως 7
linWin (i) .Visible = False
Επόμενο i

Κάνοντας μια κίνηση

Αν οποιοδήποτε μέρος του συστήματος μπορεί να θεωρηθεί ως 'η καρδιά', είναι υπορουτίνας lblPlayGround_Click. Αυτή η υπορουτίνα ονομάζεται κάθε φορά που ένας παίκτης κάνει κλικ στο πλέγμα αναπαραγωγής. (Τα κλικ πρέπει να βρίσκονται μέσα σε ένα από τα εννέα στοιχεία lblPlayGround.) Σημειώστε ότι αυτή η υπορουτίνα έχει ένα όρισμα: (ευρετήριο ως ακέραιος). Οι περισσότερες από τις άλλες υπορουτίνες γεγονότων, όπως το cmdNewGame_Click (), δεν το κάνουν. Ο ευρετήριο δείχνει σε ποιο αντικείμενο ετικέτας έχει γίνει κλικ. Για παράδειγμα, ο δείκτης θα περιέχει την τιμή μηδέν για την επάνω αριστερή γωνία του πλέγματος και την τιμή οκτώ για την κάτω δεξιά γωνία.

Αφού ένας παίκτης κάνει κλικ σε ένα τετράγωνο στο πλέγμα παιχνιδιών, το κουμπί εντολής για να ξεκινήσει ένα άλλο παιχνίδι, το cmdNewGame, είναι "ενεργοποιημένο" κάνοντάς το ορατό. Η κατάσταση αυτού του κουμπιού εντολής κάνει διπλή λειτουργία επειδή χρησιμοποιείται επίσης ως μεταβλητή απόφασης boole αργότερα στο πρόγραμμα. Η χρήση μιας τιμής ιδιοκτησίας ως μεταβλητής απόφασης συνήθως αποθαρρύνεται επειδή εάν γίνει πάντα απαραίτητο να αλλάξετε το πρόγραμμα (για παράδειγμα, για να κάνετε το cmdNewGame που είναι ορατό όλη την ώρα), τότε το πρόγραμμα θα αποτύχει απροσδόκητα επειδή δεν μπορείτε να θυμηθείτε ότι χρησιμοποιείται επίσης ως μέρος του προγράμματος λογική. Για το λόγο αυτό, είναι πάντα καλή ιδέα να κάνετε αναζήτηση μέσω κώδικα προγράμματος και να ελέγξετε τη χρήση οτιδήποτε αλλάζετε όταν πραγματοποιείτε συντήρηση προγράμματος, ακόμα και τιμές ιδιοκτησίας. Αυτό το πρόγραμμα παραβιάζει τον κανόνα εν μέρει για να κάνει αυτό το σημείο και εν μέρει επειδή πρόκειται για ένα σχετικά απλό κομμάτι κώδικα όπου είναι ευκολότερο να δούμε τι γίνεται και να αποφύγουμε προβλήματα αργότερα.

Η επιλογή ενός παίκτη από μια πλατφόρμα παιχνιδιού γίνεται με την κλήση της υπορουτίνας του παιχνιδιού με το Ευρετήριο ως το όρισμα.

Επεξεργασία της κίνησης

Πρώτον, ελέγχετε αν έχει γίνει κλικ σε μια κενή πλατεία.

Αν το lblPlayGround (xo_Move) .Caption = "" Τότε

Μόλις είμαστε βέβαιοι ότι πρόκειται για νόμιμη κίνηση, ο μετρητής κίνησης (iMove) αυξάνεται. Οι επόμενες δύο γραμμές είναι πολύ ενδιαφέρουσες αφού μεταφράζουν τις συντεταγμένες από τη μονοδιάστατη Αν η παράμετρος lblPlayGround συνιστωσών σε δισδιάστατα ευρετήρια που μπορείτε να χρησιμοποιήσετε σε iXPos ή iOPos. Η διαίρεση mod και ακέραιος ("backslash") είναι μαθηματικές πράξεις που δεν χρησιμοποιείτε κάθε μέρα, αλλά εδώ είναι ένα καλό παράδειγμα που δείχνει πώς μπορούν να είναι πολύ χρήσιμες.

Αν το lblPlayGround (xo_Move) .Caption = "" Τότε
iMove = iMove + 1
x = Int (xo_Move / 3) + 1
y = (xo_Move Mod 3) + 1

Η τιμή xo_Move 0 θα μεταφραστεί σε (1, 1), 1 έως (1, 2)... 3 έως (2, 1)... 8 έως (3, 3).

Η τιμή του sPlaySign, μια μεταβλητή με την εμβέλεια της μονάδας, παρακολουθεί ποιος παίκτης έκανε την κίνηση. Μόλις ενημερωθούν οι πίνακες μετακίνησης, τα στοιχεία της ετικέτας στο πλέγμα αναπαραγωγής μπορούν να ενημερωθούν με το κατάλληλο σύμβολο.

Αν το sPlaySign = "O" Στη συνέχεια
iOPos (χ, γ) = 1
iWin = CheckWin (iOPos ())
Αλλού
iXPos (χ, γ) = 1
iWin = CheckWin (iXPos ())
Τέλος εαν
lblPlayGround (xo_Move) .Caption = sPlaySign

Για παράδειγμα, όταν ο παίκτης X κάνει κλικ στην επάνω αριστερή γωνία του πλέγματος, οι μεταβλητές θα έχουν τις ακόλουθες τιμές:

Η οθόνη χρηστών εμφανίζει μόνο ένα X στο επάνω αριστερό πλαίσιο, ενώ το iXPos διαθέτει 1 στο επάνω αριστερό πλαίσιο και 0 σε όλα τα άλλα. Το iOPos έχει 0 σε κάθε κουτί.

Οι τιμές αλλάζουν όταν ο παίκτης O κάνει κλικ στο κεντρικό τετράγωνο του πλέγματος. Τώρα ο iOPos δείχνει ένα 1 στο κεντρικό πλαίσιο ενώ η οθόνη χρήστη δείχνει ένα Χ στην επάνω αριστερή πλευρά και ένα O στο κεντρικό κουτί. Το iXPos εμφανίζει μόνο το 1 στην επάνω αριστερή γωνία, με 0 σε όλα τα άλλα πλαίσια.

Τώρα που ξέρετε πού ένας παίκτης έκανε κλικ και ποιος παίκτης έκανε κλικ (χρησιμοποιώντας την τιμή στο sPlaySign), το μόνο που έχετε να κάνετε είναι να μάθετε αν κάποιος κέρδισε ένα παιχνίδι και να καταλάβει πώς να το δείξει αυτό στο απεικόνιση.

Εύρεση ενός νικητή

Μετά από κάθε κίνηση, η λειτουργία CheckWin ελέγχει τον νικηφόρο συνδυασμό. Το CheckWin λειτουργεί προσθέτοντας κάθε γραμμή, σε κάθε στήλη και μέσα από κάθε διαγώνιο. Η ανίχνευση των βημάτων μέσω του CheckWin χρησιμοποιώντας τη δυνατότητα εντοπισμού σφαλμάτων της Visual Basic μπορεί να είναι πολύ εκπαιδευτική. Βρίσκοντας μια νίκη είναι θέμα πρώτα, ελέγξτε αν βρέθηκαν τρία 1 σε κάθε έναν από τους επιμέρους ελέγχους στη μεταβλητή iScore, και στη συνέχεια επιστρέφοντας μια μοναδική τιμή "signature" στον Checkwin που χρησιμοποιείται ως ευρετήριο πίνακα για να αλλάξει την ιδιότητα Visible ενός στοιχείου στο linWin συνιστωσών. Εάν δεν υπάρχει νικητής, το CheckWin θα περιέχει την τιμή -1. Εάν υπάρχει νικητής, η οθόνη ενημερώνεται, ο πίνακας αποτελεσμάτων αλλάζει, εμφανίζεται ένα μήνυμα συγχαρητηρίων και το παιχνίδι ξαναρχίζει.

Ας δούμε λεπτομερώς έναν από τους ελέγχους για να δούμε πώς λειτουργεί. Οι άλλοι είναι παρόμοιοι.

'Έλεγχος σειρών για 3
Για i = 1 έως 3
iScore = 0
CheckWin = CheckWin + 1
Για j = 1 έως 3
iScore = iScore + iPos (i, j)
Επόμενο j
Εάν το iScore = 3 Στη συνέχεια
Λειτουργία εξόδου
Τέλος εαν
Επόμενο i

Το πρώτο πράγμα που πρέπει να παρατηρήσετε είναι ότι ο πρώτος απαριθμητής δεικτών i μετράει τις σειρές ενώ το δεύτερο j μετράει στις στήλες. Ο εξωτερικός βρόχος, στη συνέχεια μετακινείται απλά από τη μια σειρά στην άλλη. Ο εσωτερικός βρόχος μετρά τα 1 στην τρέχουσα σειρά. Εάν υπάρχουν τρία, τότε έχετε έναν νικητή.

Παρατηρήστε ότι παρακολουθείτε επίσης τον συνολικό αριθμό τετραγώνων που ελέγχθηκαν στη μεταβλητή CheckWin, η οποία είναι η τιμή που πέρασε όταν η λειτουργία τερματιστεί. Κάθε συνδυασμός που θα κερδίσει θα καταλήξει σε μια μοναδική τιμή στο CheckWin από το 0 έως το 7, το οποίο χρησιμοποιείται για να επιλέξετε ένα από τα στοιχεία της συστοιχίας συνιστωσών linWin (). Αυτό κάνει τη σειρά του κώδικα σε λειτουργία CheckWin σημαντική επίσης! Εάν μετακινήσατε ένα από τα μπλοκ του κώδικα βρόχου (όπως το παραπάνω), θα γίνει λάθος γραμμή στο πλέγμα όταν παίζει κάποιος. Δοκιμάστε το και δείτε!

Λεπτομέρειες τερματισμού

Ο μόνος κώδικας που δεν έχει ακόμη συζητηθεί είναι η υπορουτίνα για ένα νέο παιχνίδι και η υπορουτίνα που θα επαναφέρει το σκορ. Η υπόλοιπη λογική στο σύστημα καθιστά τη δημιουργία αυτών αρκετά εύκολη. Για να ξεκινήσετε ένα νέο παιχνίδι, πρέπει μόνο να καλέσετε την υπορουτίνα InitPlayGround. Ως ευκολία για τους παίκτες, αφού το κουμπί μπορεί να κτυπηθεί στη μέση ενός παιχνιδιού, ζητάτε επιβεβαίωση πριν προχωρήσετε. Ζητάτε επίσης επιβεβαίωση πριν επανεκκινήσετε τον πίνακα αποτελεσμάτων.

instagram story viewer