Το παιχνίδι είναι μια μορφή ψυχαγωγίας που διατίθεται στους ανθρώπους. Παιχνίδια όλων των ειδών είναι διαθέσιμα στο διαδίκτυο, σε κινητές συσκευές, σε επιτραπέζιους υπολογιστές κ.λπ. Τώρα δεν είναι η ώρα να δημιουργήσετε ένα από αυτά τα απαιτητικά παιχνίδια.
Χρησιμοποιώντας Python, θα φτιάξουμε ένα CLI tic-tac-toe παιχνίδι. Ας χρησιμοποιήσουμε την Python για να δημιουργήσουμε ένα απλό παιχνίδι Tic Tac Toe. Θα σας βοηθήσει να δημιουργήσετε τη λογική του παιχνιδιού και να μάθετε πώς να οργανώνετε κώδικα.
Tic-Tac-Toe
Πριν ξεκινήσουμε την κωδικοποίηση, σκέφτηκα να συνοψίσω γρήγορα το παιχνίδι και να συζητήσω το σχέδιό μου για την ανάπτυξή του.
Πρώτον, θα δημιουργήσουμε την υπόθεση ότι τα X αναλαμβάνουν πάντα την πρωτοβουλία και κινούνται πρώτα, δίνοντας στον χρήστη την ευκαιρία να ενεργήσει.
Από την κονσόλα, θα εισαχθεί ένας αριθμός μεταξύ 1 και 9. Σε ένα πλέγμα όπου κάθε αριθμός αντιστοιχεί σε διαφορετικό αριθμό (πάνω αριστερά είναι 1, κάτω δεξιά είναι 9).
Ο υπολογιστής θα καθορίσει αυτόματα και θα κάνει την κίνησή του μόλις μετακινηθεί ο χρήστης. Ένας κύριος βρόχος παιχνιδιού που καλεί μια σειρά από διάφορες ρουτίνες θα χρησιμοποιηθεί από εμένα.
Ποια λειτουργία ολοκληρώνεται πιθανώς υποδεικνύεται σε κάθε κεφαλίδα αυτού του μαθήματος που βασίζεται σε κείμενο.
Σχεδιασμός Διοικητικού Συμβουλίου
Θα απεικονίσουμε τον πίνακα μας χρησιμοποιώντας μια διάταξη πλέγματος, όπως ανέφερα προηγουμένως. Θα φτιάξουμε μια λίστα με όνομα πίνακας στην Python για να το κάνουμε αυτό, και θα ξεκινήσει με 10 κενές τιμές.
Επειδή ο χρήστης μπορεί να εισάγει μόνο αριθμούς 1 έως 9, όχι από 0 έως 8, έχουμε 10 κενές τιμές αντί για 9. Έτσι, για να απλοποιήσουμε τα πράγματα, θα δώσουμε στην πρώτη καταχώριση της λίστας μας την τιμή "κενό κείμενο".
Με αυτόν τον τρόπο, μπορούμε να χρησιμοποιήσουμε το 1–9 αντί για το 0–8 για την ευρετηρίαση των εγγραφών στη λίστα μας.
insertLetter()
Το Letter και το Pos θα είναι οι δύο είσοδοι για αυτήν τη συνάρτηση. Θα τοποθετήσει μόνο την επιστολή που ζητήθηκε στη ζητούμενη τοποθεσία.
spaceIsFree(pos)
Με απλά λόγια, αυτή η μέθοδος θα μας ενημερώσει εάν η καθορισμένη περιοχή είναι ελεύθερη. Επομένως, δεν υπάρχει ήδη γράμμα. Το Pos, το μοναδικό του όρισμα, θα είναι ένας ακέραιος αριθμός μεταξύ 1 και 9.
printboard(board)
Ο πίνακας αποστέλλεται ως όρισμα σε αυτήν τη μέθοδο, η οποία την εμφανίζει στην κονσόλα.
isWinner()
Με βάση τον παρόντα πίνακα, αυτή η λειτουργία θα μας ενημερώσει εάν το παρεχόμενο γράμμα έχει κερδίσει. Έχει δύο παραμέτρους: le και board (γράμμα).
Πρέπει να είναι «Χ» ή «Ο». Απλώς κοιτάξτε για να δείτε εάν το καθορισμένο γράμμα υπάρχει σε κάθε πιθανή νικητήρια γραμμή στον πίνακα.
κύριος()
Όταν θέλουμε να ξεκινήσουμε το παιχνίδι, θα καλέσουμε αυτή τη μέθοδο. Θα καλέσει κάθε μία από τις πολλές λειτουργίες του προγράμματός μας και θα κατευθύνει τον τρόπο λειτουργίας του προγράμματος.
isBoardFull()
Όταν δίνεται στο πλοίο ως είσοδος, αυτή η μέθοδος θα επιστρέψει απλώς True εάν ο πίνακας είναι γεμάτος και False διαφορετικά.
playerMove()
Σε αυτήν τη μέθοδο, θα ζητήσουμε μια κίνηση από τον χρήστη και θα την επικυρώσουμε. Το γράμμα θα προστεθεί στον πίνακα εάν η κίνηση είναι νόμιμη. Εάν όχι, θα συνεχίσουμε να ζητάμε τα σχόλια του χρήστη.
CompMove() – AI
Το AI θα ξεκινήσει τώρα. Η κίνηση των υπολογιστών θα ελέγχεται από αυτή τη λειτουργία. Θα αξιολογήσει το ταμπλό και θα επιλέξει την καλύτερη κίνηση για να κάνει.
Ακολουθεί μια λίστα με τον αλγόριθμο που θα χρησιμοποιήσουμε για να το κάνουμε αυτό.
- Εάν το τρέχον βήμα δεν μπορεί να ολοκληρωθεί, προχωρήστε στο επόμενο.
- Κάντε τη νικητήρια κίνηση αν μπορείτε.
- Μετακινηθείτε σε αυτή τη θέση στην επόμενη στροφή, εάν ο παίκτης έχει μια δυνητικά κερδοφόρα κίνηση.
- Διαλέξτε μια γωνία και γυρίστε την. Επιλέξτε τυχαία εάν υπάρχουν πολλές επιλογές.
- Τοποθετήστε τον εαυτό σας στη μέση.
- Εξετάστε μια από τις άκρες. Επιλέξτε τυχαία εάν υπάρχουν πολλές επιλογές.
- Εάν δεν υπάρχει τρόπος να κινηθείτε, το παιχνίδι τελειώνει ισόπαλο.
select Random()
Δεδομένης μιας λίστας πιθανών τοποθεσιών, αυτή η συνάρτηση θα επιλέξει τυχαία την ενέργεια που θα πραγματοποιήσει.
Το παιχνίδι ξεκινά
Το παιχνίδι μπορεί τώρα να ξεκινήσει τώρα που έχουμε ολοκληρώσει όλες τις εργασίες μας. Το μόνο που θα χρειαστεί να κάνουμε είναι να καλέσουμε main αν θέλαμε να τρέξουμε το παιχνίδι μία φορά.
Αλλά στην περίπτωσή μας, θέλουμε το παιχνίδι να συνεχίσει να εκτελείται μέχρι ο χρήστης να αποφασίσει ότι δεν θέλει πλέον να παίζει, επομένως θα προσθέσουμε έναν μικρό βρόχο while στην κύρια γραμμή.
Πλήρης κώδικας
Εδώ είναι ολόκληρος ο κώδικας για το παιχνίδι μας, ο οποίος έχει πλέον ολοκληρωθεί.
Παραγωγή
Συμπέρασμα
Ώρα!
Ένα παιχνίδι που φτιάξατε εξ ολοκλήρου από την αρχή. Δεν είναι ένα παιχνίδι που παίζουμε σε τακτική βάση. Βοηθά όμως στη σύνταξη της λογικής και στη διατήρηση μιας ξεκάθαρης δομής στον κώδικα.
Καλή κωδικοποίηση!
Αφήστε μια απάντηση