Hvordan opretter man et talgættespil i Python?

Du burde allerede have gættet indholdet af denne artikel. Og du skal nok være bekendt med talgætte og lede efter en måde at bygge det på ved hjælp af Python.

Lad os lære at lave et tal-gættespil fra bunden.

Tal gætte spil

Spillet er enkelt. Brugeren skal gætte det tilfældigt genererede tal, der ligger mellem intervallet 1 til 100. Det er det.

Er spillet så simpelt?

Ja det er.

Men der er én ting, vi skal give brugerne for at gætte antallet. Det er hints. Vi skal give en besked til brugeren, der siger, at det aktuelle gættede tal er mindre end det korrekte tal, eller at det aktuelle gættede tal er større end det korrekte tal. Så brugerne ved, i hvilken retning de skal gå.

Vi kan gøre det mere spændende ved at tilføje ekstra funktioner som det maksimale antal chancer for at gætte, øge rækkevidden, indstille en timer osv..,

Oprettelse af det grundlæggende arbejdsspil er obligatorisk. Efter det kan vi tilføje flere funktioner som diskuteret. Så vi skal lave den grundlæggende version af spillet i dette afsnit. Og så vil vi flytte for at tilføje nye funktioner.

Jeg vil have dig til at prøve at skabe spillet uden blindt at kopiere koden. Så jeg vil først forklare algoritmen. Det hjælper dig med at kode dig selv eller forstå koden hurtigt.

Lad os se algoritmen til at skabe talgættespillet.

Algoritme

Sørg for at forstå algoritmen, før du går til kodningsdelen.

  • Definer rækkevidden af ​​tallene. Som standard er det 1-100, men du kan ændre det, som du foretrækker.
  • Generer et tilfældigt heltal fra ovenstående område (1-100).
  • Start spillet ved at vise brugeren en besked, der siger “Gæt tallet fra X til Y”. Du kan opdatere beskeden, som du ønsker.
  • Initialiser en variabel til 0 for at tælle det samlede antal chancer, som brugeren har taget for at gætte tallet korrekt.
  • Skriv en uendelig løkke.
    • Bed brugeren om at gætte nummeret.
    • Hvis det nuværende gættede tal er lig med det tilfældigt genererede tal, så lykønsk brugeren med en besked, som du vil. Et eksempel ville være “-> Hurra! Du fik det i 5 trin!”.
    • Bryd løkken efter at have lykønsket brugeren.
    • Hvis det nuværende gættede tal er mindre end det tilfældigt genererede tal, så giv en besked til brugeren, der siger “-> Dit nummer er mindre end det tilfældige tal” eller en brugerdefineret besked med samme betydning.
    • Hvis det nuværende gættede tal er større end det tilfældigt genererede tal, så giv en besked til brugeren, der siger “-> Dit tal er større end det tilfældige tal” eller en skik med samme betydning.
    • Til sidst skal du øge de chancer, som brugeren har taget til at gætte.
  Sådan læser du en diskette på en moderne pc eller Mac

Du ville have fået kode i dit sind efter at have set algoritmen. Bare rolig, selvom du ikke får hele koden. Men sørg for at forstå ovenstående algoritme.

Det er tid til at få vores hænder til at arbejde med kode. Kom ind i koden uden videre.

Kode

Prøvede du at skrive koden?

Hvis ja og fuldført det. Det er godt. Tjek koden og forstå den for at tilføje flere perspektiver til din viden.

Bare rolig, selvom du ikke har skrevet koden. Se nedenstående kode og forstå den. Prøv at finjustere og skrive det på din egen måde for bedre forståelse.

Så lad os se koden.

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()

Der er nogle ting, du forstår ud fra koden.

  • Området er defineret inde i __init__ metoden, så det kan bruges på tværs af klassemetoderne.
  • Vi kan nemt ændre det på ét sted, der ændres på tværs af appen i overensstemmelse hermed.
  • Der er en separat metode til at generere det tilfældige tal, som følger princippet om “adskil bekymringerne”. Her har vores metode lidt kode, men den kan muligvis øges i fremtiden.
  • Endelig har vi brugt klasse, så enhver metode, der er relateret til spillet, vil ligge inde i den. Og det kan nemt genbruges i nogle andre apps.
  Sådan finder du agern og fyrrekogler i 'Animal Crossing: New Horizons'

Alle de punkter, der er diskuteret ovenfor, er relateret til at skrive ren kode. Vi bør prøve at skrive den rene kode, som du forstår, selv efter nogle X år.

Eksempeloutputtet fra spillet ser ud som følger.

$ 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!

Jeg antager, at du har Python installeret for at prøve ovenstående kode.

Ekstra funktion

Vi vil tilføje det maksimale antal chancer, som en bruger får for at gætte antallet. Hvis brugeren ikke gætter tallet inden for antallet af chancer, så taber brugeren.

Hvordan tilføjer vi det?

Det er en simpel to-trins proces. Lad os se trinene.

  • Definer det maksimale antal chancer, som brugeren får for at gætte antallet.
  • Tjek, om brugeren har chancer eller ej, før du beder om input. Og afslut spillet, hvis brugeren er ude af givne chancer.

Følgende ekstra kode vil fuldende funktionen.

  • Tilføj følgende kode i __init__ metoden.
self.MAX_CHANCES = 10
  • Tilføj følgende betingelse, før brugeren indtaster det næste gæt.
if chances == self.MAX_CHANCES:
                print("-> Phew! You lost the game. You are out of chances")

Prøv nu spillet uden at gætte det rigtige tal. Du bør se et lignende output som følger.

$ 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

Hurra! vi har tilføjet en ekstra funktion til vores spil. Det er dog ikke enden. Du kan tilføje nogle flere funktioner for at gøre det mere engagerende for brugerne. Det er din tid nu. Gå videre og gør det smukkere :).

  Sådan gemmer du et Excel-ark som PDF

Konklusion

Vi har lavet et simpelt tal gættespil. Nu er det din tur til at tænke på spil, som du spillede, da du var ung. Få dem til at bruge programmeringssprog og del med dine venner. Vi kan digitalisere de fleste af vores barndoms spil.

Udforsk derefter Python IDE og online compiler for at køre Python-kode.

God kodning 🙂

Hvis du ikke kan få nok af virale ordspil, kan du se, hvordan du gør det bedre hos Wordle.

Nydt at læse artiklen? Hvad med at dele med verden?