Hvordan lage et tallgjettespill i Python?

Du burde allerede ha gjettet innholdet i denne artikkelen. Og du bør sannsynligvis være kjent med tallgjetting og lete etter en måte å bygge det på ved hjelp av Python.

La oss lære å lage et tallgjettespill fra bunnen av.

Antall gjettespill

Spillet er enkelt. Brukeren må gjette det tilfeldig genererte tallet som ligger mellom området fra 1 til 100. Det er det.

Er spillet så enkelt?

Ja det er.

Men det er én ting vi må gi brukerne for å gjette antallet. Det er hint. Vi må gi en melding til brukeren som sier at det gjeldende gjettet tallet er mindre enn det riktige tallet eller det gjeldende gjettet tallet er større enn det riktige tallet. Slik at brukerne vet i hvilken retning de må gå.

Vi kan gjøre det mer spennende ved å legge til ekstra funksjoner som maksimalt antall sjanser til å gjette, øke rekkevidden, stille inn en tidtaker osv.,

Det er obligatorisk å lage det grunnleggende arbeidsspillet. Etter det kan vi legge til flere funksjoner som diskutert. Så vi skal lage den grunnleggende versjonen av spillet i denne delen. Og så vil vi flytte for å legge til nye funksjoner.

Jeg vil at du skal prøve å lage spillet uten å blindt kopiere koden. Så jeg skal først forklare algoritmen. Det vil hjelpe deg å kode selv eller forstå koden raskt.

La oss se algoritmen for å lage tall-gjetting-spillet.

Algoritme

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

  • Definer rekkevidden til tallene. Som standard er det 1-100, men du kan endre det som du foretrekker.
  • Generer et tilfeldig heltall fra området ovenfor (1-100).
  • Start spillet ved å vise brukeren en melding som sier «Gjett tallet fra X til Y». Du kan oppdatere meldingen som du ønsker.
  • Initialiser en variabel til 0 for å telle det totale antallet sjanser som brukeren har tatt for å gjette tallet riktig.
  • Skriv en uendelig løkke.
    • Be brukeren gjette tallet.
    • Hvis det nåværende gjettede tallet er lik det tilfeldig genererte tallet, så gratuler brukeren med en melding som du vil. Et eksempel kan være «-> Hurra! Du fikk det i 5 trinn!».
    • Bryt løkken etter å ha gratulert brukeren.
    • Hvis det nåværende gjettede tallet er mindre enn det tilfeldig genererte tallet, gi en melding til brukeren som sier «-> Tallet ditt er mindre enn det tilfeldige tallet» eller en egendefinert melding som har samme betydning.
    • Hvis det nåværende gjettede tallet er større enn det tilfeldig genererte tallet, gi en melding til brukeren som sier «-> Tallet ditt er større enn det tilfeldige tallet» eller en egendefinert med samme betydning.
    • Til slutt øker sjansene brukeren har tatt for å gjette.
  15 beste nye og populære Udemy-kurs i 2022

Du ville ha fått kode i tankene etter å ha sett algoritmen. Ikke bekymre deg selv om du ikke får hele koden. Men sørg for at du forstår algoritmen ovenfor.

Det er på tide å få hendene til å jobbe med kode. Kom inn i koden uten videre.

Kode

Prøvde du å skrive koden?

Hvis ja og fullførte det. Det er flott. Sjekk ut koden og forstå den for å legge til flere perspektiver til kunnskapen din.

Ikke bekymre deg selv om du ikke skrev koden. Se koden nedenfor og forstå den. Prøv å finpusse og skrive det på din egen måte for bedre forståelse.

Så la oss 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()

Det er noen ting du forstår av koden.

  • Området er definert inne i __init__ metoden slik at det kan brukes på tvers av klassemetodene.
  • Vi kan enkelt endre det på ett sted som endres på tvers av appen tilsvarende.
  • Det er en egen metode for å generere det tilfeldige tallet som følger prinsippet om å «separere bekymringene». Her har metoden vår lite kode, men den kan øke i fremtiden.
  • Til slutt har vi brukt klasse slik at hver metode som er relatert til spillet vil ligge inne i den. Og den kan enkelt gjenbrukes i noen andre apper.
  8 beste virtualiseringsovervåkingsverktøy for mellomstore til store bedrifter

Alle punktene som er diskutert ovenfor er relatert til å skrive ren kode. Vi bør prøve å skrive den rene koden som du forstår selv etter noen X år.

Eksempelutgangen til spillet ser ut 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 antar at du har Python installert for å prøve koden ovenfor.

Ekstra funksjon

Vi skal legge til det maksimale antallet sjanser en bruker får til å gjette antallet. Hvis brukeren ikke gjetter tallet innenfor antall sjanser, taper brukeren.

Hvordan legger vi det til?

Det er en enkel to-trinns prosess. La oss se fremgangsmåten.

  • Definer maksimalt antall sjanser som brukeren får til å gjette antallet.
  • Sjekk om brukeren har sjanser eller ikke før du ber om input. Og avslutte spillet hvis brukeren er ute av gitte sjanser.

Følgende kodetillegg vil fullføre funksjonen.

  • Legg til følgende kode i __init__-metoden.
self.MAX_CHANCES = 10
  • Legg til følgende betingelse før brukeren legger inn neste gjetning.
if chances == self.MAX_CHANCES:
                print("-> Phew! You lost the game. You are out of chances")

Prøv nå spillet uten å gjette riktig tall. Du bør se en lignende utgang 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 lagt til en ekstra funksjon til spillet vårt. Det er imidlertid ikke slutten. Du kan legge til noen flere funksjoner for å gjøre det mer engasjerende for brukerne. Det er din tid nå. Gå videre og gjør det vakrere :).

  7 beste verktøy for overvåking og revisjon av serverkonfigurasjon

Konklusjon

Vi har laget en enkel gjettelek. Nå er det din tur til å tenke på spill du spilte da du var ung. Få dem til å bruke programmeringsspråk og del med vennene dine. Vi kan digitalisere de fleste av barndomsspillene våre.

Utforsk deretter Python IDE og online kompilator for å kjøre Python-kode.

Lykke til med koding 🙂

Hvis du ikke kan få nok av virale ordspill, her er hvordan du gjør det bedre på Wordle.

Likte du å lese artikkelen? Hva med å dele med verden?