Πώς να δημιουργήσετε ένα παιχνίδι εικασίας αριθμών στην Python;

Θα έπρεπε να έχετε ήδη μαντέψει το περιεχόμενο αυτού του άρθρου. Και πιθανότατα θα πρέπει να είστε εξοικειωμένοι με την εικασία αριθμών και να ψάχνετε έναν τρόπο να το δημιουργήσετε χρησιμοποιώντας Python.

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

Παιχνίδι εικασίας αριθμών

Το παιχνίδι είναι απλό. Ο χρήστης πρέπει να μαντέψει τον τυχαία παραγόμενο αριθμό που βρίσκεται μεταξύ του εύρους από 1 έως 100. Αυτό ήταν.

Είναι τόσο απλό το παιχνίδι;

Ναι είναι.

Όμως, υπάρχει ένα πράγμα που πρέπει να παρέχουμε στους χρήστες για να μαντέψουν τον αριθμό. Αυτά είναι υποδείξεις. Πρέπει να δώσουμε ένα μήνυμα στον χρήστη λέγοντας ότι ο τρέχων μαντευόμενος αριθμός είναι μικρότερος από τον σωστό αριθμό ή ο τρέχων μαντευόμενος αριθμός είναι μεγαλύτερος από τον σωστό αριθμό. Έτσι ώστε οι χρήστες να γνωρίζουν προς ποια κατεύθυνση πρέπει να πάνε.

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

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

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

Ας δούμε τον αλγόριθμο για τη δημιουργία του παιχνιδιού εικασίας αριθμού.

Αλγόριθμος

Βεβαιωθείτε ότι κατανοείτε τον αλγόριθμο πριν προχωρήσετε στο τμήμα κωδικοποίησης.

  • Καθορίστε το εύρος των αριθμών. Από προεπιλογή, είναι 1-100, αλλά μπορείτε να το αλλάξετε όπως προτιμάτε.
  • Δημιουργήστε έναν τυχαίο ακέραιο από το παραπάνω εύρος (1-100).
  • Ξεκινήστε το παιχνίδι εμφανίζοντας στον χρήστη ένα μήνυμα που λέει “Μάντεψε τον αριθμό από το X στο Y”. Μπορείτε να ενημερώσετε το μήνυμα όπως θέλετε.
  • Αρχικοποιήστε μια μεταβλητή στο 0 για να μετρήσετε τον συνολικό αριθμό των πιθανοτήτων που έχει πάρει ο χρήστης για να μαντέψει σωστά τον αριθμό.
  • Γράψτε έναν άπειρο βρόχο.
    • Ζητήστε από τον χρήστη να μαντέψει τον αριθμό.
    • Εάν ο τρέχων μαντευόμενος αριθμός είναι ίσος με τον τυχαία δημιουργημένο αριθμό, τότε συγχαίρετε τον χρήστη με ένα μήνυμα όπως θέλετε. Ένα παράδειγμα θα ήταν “-> Ούρα! Το πήρες σε 5 βήματα!».
    • Σπάστε το βρόχο αφού συγχαρείτε τον χρήστη.
    • Εάν ο τρέχων μαντευόμενος αριθμός είναι μικρότερος από τον τυχαία δημιουργημένο αριθμό, τότε δώστε ένα μήνυμα στον χρήστη λέγοντας “-> Ο αριθμός σας είναι μικρότερος από τον τυχαίο αριθμό” ή ένα προσαρμοσμένο μήνυμα με το ίδιο νόημα.
    • Εάν ο τρέχων μαντευόμενος αριθμός είναι μεγαλύτερος από τον τυχαία δημιουργημένο αριθμό, τότε δώστε ένα μήνυμα στον χρήστη λέγοντας “-> Ο αριθμός σας είναι μεγαλύτερος από τον τυχαίο αριθμό” ή ένα έθιμο με την ίδια σημασία.
    • Τέλος, αυξήστε τις πιθανότητες που έχει πάρει ο χρήστης να μαντέψει.
  Εφαρμογή λήψης σημειώσεων βάσει χειρονομιών με κείμενο, φωτογραφία, φωνητικό σημείωμα και υπενθύμιση

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

Ήρθε η ώρα να βάλουμε τα χέρια μας να δουλέψουν με κώδικα. Μπείτε στον κώδικα χωρίς περαιτέρω καθυστέρηση.

Κώδικας

Δοκίμασες να γράψεις τον κωδικό;

Αν ναι και το συμπλήρωσε. Ειναι υπεροχο. Ελέγξτε τον κώδικα και κατανοήστε τον για να προσθέσετε περισσότερες προοπτικές στις γνώσεις σας.

Μην ανησυχείτε ακόμα κι αν δεν γράψατε τον κωδικό. Δείτε τον παρακάτω κώδικα και κατανοήστε τον. Προσπαθήστε να το τροποποιήσετε και να το γράψετε με τον δικό σας τρόπο για καλύτερη κατανόηση.

Λοιπόν, ας δούμε τον κώδικα.

import random


class NumberGuessingGame:

    def __init__(self):
        ## define the range
        self.LOWER = 1
        self.HIGHER = 100

    ## method to generate the random number
    def get_random_number(self):
        return random.randint(self.LOWER, self.HIGHER)

    ## game start method
    def start(self):
        ## generating the random number
        random_number = self.get_random_number()

        print(
            f"Guess the randomly generated number from {self.LOWER} to {self.HIGHER}")

        ## heart of the game
        chances = 0
        while True:
            user_number = int(input("Enter the guessed number: "))
            if user_number == random_number:
                print(
                    f"-> Hurray! You got it in {chances + 1} step{'s' if chances > 1 else ''}!")
                break
            elif user_number < random_number:
                print("-> Your number is less than the random number")
            else:
                print("-> Your number is greater than the random number")
            chances += 1

## instantiating and starting the game
numberGuessingGame = NumberGuessingGame()
numberGuessingGame.start()

Υπάρχουν κάποια πράγματα που καταλαβαίνετε από τον κώδικα.

  • Το εύρος ορίζεται μέσα στη μέθοδο __init__ έτσι ώστε να μπορεί να χρησιμοποιηθεί σε όλες τις μεθόδους κλάσης.
  • Μπορούμε εύκολα να το αλλάξουμε σε ένα μέρος που αλλάζει ανάλογα σε ολόκληρη την εφαρμογή.
  • Υπάρχει μια ξεχωριστή μέθοδος για τη δημιουργία του τυχαίου αριθμού που ακολουθεί την αρχή του «διαχωρίστε τις ανησυχίες». Εδώ, η μέθοδός μας έχει λίγο κώδικα, αλλά μπορεί να αυξηθεί στο μέλλον.
  • Τέλος, χρησιμοποιήσαμε την κλάση έτσι ώστε κάθε μέθοδος που σχετίζεται με το παιχνίδι να βρίσκεται μέσα σε αυτήν. Και μπορεί εύκολα να επαναχρησιμοποιηθεί σε κάποιες άλλες εφαρμογές.
  Τα καλύτερα ανέκδοτα, παιχνίδια και πασχαλινά αυγά για το Google Assistant

Όλα τα σημεία που συζητήθηκαν παραπάνω σχετίζονται με τη σύνταξη καθαρού κώδικα. Θα πρέπει να προσπαθήσουμε να γράψουμε τον καθαρό κώδικα που καταλαβαίνετε ακόμα και μετά από μερικά X χρόνια.

Το δείγμα εξόδου του παιχνιδιού φαίνεται ως εξής.

$ python number_guessing_game.py 
Guess the randomly generated number from 1 to 100
Enter the guessed number: 50
-> Your number is less than the random number
Enter the guessed number: 75
-> Your number is less than the random number
Enter the guessed number: 90
-> Your number is greater than the random number
Enter the guessed number: 85
-> Your number is greater than the random number
Enter the guessed number: 80
-> Hurray! You got it in 5 steps!

Υποθέτω ότι έχετε εγκαταστήσει την Python για να δοκιμάσετε τον παραπάνω κώδικα.

Επιπλέον Χαρακτηριστικό

Θα προσθέσουμε τον μέγιστο αριθμό πιθανοτήτων που έχει ένας χρήστης να μαντέψει τον αριθμό. Εάν ο χρήστης δεν μαντέψει τον αριθμό εντός του αριθμού των πιθανοτήτων, τότε ο χρήστης χάνει.

Πώς το προσθέτουμε;

Είναι μια απλή διαδικασία δύο σταδίων. Ας δούμε τα βήματα.

  • Καθορίστε τον μέγιστο αριθμό πιθανοτήτων που έχει ο χρήστης να μαντέψει τον αριθμό.
  • Ελέγξτε εάν ο χρήστης έχει πιθανότητες ή όχι πριν ζητήσει την εισαγωγή. Και τερματίστε το παιχνίδι εάν ο χρήστης δεν έχει ευκαιρίες.
  Πώς να χρησιμοποιήσετε το Google Lens για να αναγνωρίσετε αντικείμενα στις φωτογραφίες

Ο ακόλουθος επιπλέον κώδικας θα ολοκληρώσει τη λειτουργία.

  • Προσθέστε τον ακόλουθο κώδικα στη μέθοδο __init__.
self.MAX_CHANCES = 10
  • Προσθέστε την ακόλουθη συνθήκη πριν ο χρήστης εισαγάγει την επόμενη εικασία.
if chances == self.MAX_CHANCES:
                print("-> Phew! You lost the game. You are out of chances")

Τώρα, δοκιμάστε το παιχνίδι χωρίς να μαντέψετε τον σωστό αριθμό. Θα πρέπει να δείτε μια παρόμοια έξοδο ως εξής.

$ python number_guessing_game.py 
Guess the randomly generated number from 1 to 100. You have 10 chances to guess.
Enter the guessed number: 1
-> Your number is less than the random number
Enter the guessed number: 2
-> Your number is less than the random number
Enter the guessed number: 3
-> Your number is less than the random number
Enter the guessed number: 4
-> Your number is less than the random number
Enter the guessed number: 5
-> Your number is less than the random number
Enter the guessed number: 6
-> Your number is less than the random number
Enter the guessed number: 7
-> Your number is less than the random number
Enter the guessed number: 8
-> Your number is less than the random number
Enter the guessed number: 9
-> Your number is less than the random number
Enter the guessed number: 10
-> Your number is less than the random number
-> Phew! You lost the game. You are out of chances

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

συμπέρασμα

Δημιουργήσαμε ένα απλό παιχνίδι εικασίας αριθμών. Τώρα, είναι η σειρά σας να σκεφτείτε παιχνίδια που παίζατε όταν ήσασταν νέος. Φτιάξτε τα χρησιμοποιώντας γλώσσα προγραμματισμού και μοιραστείτε τα με τους φίλους σας. Μπορούμε να ψηφιοποιήσουμε τα περισσότερα από τα παιδικά μας παιχνίδια.

Στη συνέχεια, εξερευνήστε το Python IDE και τον διαδικτυακό μεταγλωττιστή για να εκτελέσετε τον κώδικα Python.

Καλή Κωδικοποίηση 🙂

Αν δεν χορταίνετε από viral παιχνίδια λέξεων, δείτε πώς να τα πάτε καλύτερα στο Wordle.

Σας άρεσε να διαβάζετε το άρθρο; Τι θα λέγατε να μοιράζεστε με τον κόσμο;