Hur man skapar ett nummergissningsspel i Python?

Du borde redan ha gissat innehållet i den här artikeln. Och du borde förmodligen vara bekant med talgissning och leta efter ett sätt att bygga det med Python.

Låt oss lära oss att skapa ett gissningsspel från grunden.

Innehållsförteckning

Gissa spel

Spelet är enkelt. Användaren måste gissa det slumpmässigt genererade numret som ligger mellan intervallet 1 till 100. Det är allt.

Är spelet så enkelt?

Ja det är det.

Men det finns en sak som vi måste ge användarna för att gissa antalet. Det är tips. Vi måste skicka ett meddelande till användaren som säger att det aktuella gissade numret är mindre än det korrekta siffran eller att det aktuella gissade siffran är större än det korrekta siffran. Så att användarna ska veta i vilken riktning de måste gå.

Vi kan göra det mer spännande genom att lägga till extra funktioner som maximalt antal chanser att gissa, öka räckvidden, ställa in en timer, etc..,

Att skapa det grundläggande arbetsspelet är obligatoriskt. Efter det kan vi lägga till fler funktioner som diskuterats. Så vi kommer att skapa den grundläggande versionen av spelet i det här avsnittet. Och sedan kommer vi att flytta för att lägga till nya funktioner.

Jag vill att du ska försöka skapa spelet utan att blint kopiera koden. Så jag ska först förklara algoritmen. Det hjälper dig att koda själv eller förstå koden snabbt.

Låt oss se algoritmen för att skapa talgissningsspelet.

Algoritm

Se till att du förstår algoritmen innan du går till kodningsdelen.

  • Definiera intervallet för siffrorna. Som standard är det 1-100 men du kan ändra det som du föredrar.
  • Generera ett slumpmässigt heltal från ovanstående intervall (1-100).
  • Starta spelet genom att visa användaren ett meddelande som säger ”Gissa numret från X till Y”. Du kan uppdatera meddelandet som du vill.
  • Initiera en variabel till 0 för att räkna det totala antalet chanser som användaren har tagit för att gissa numret korrekt.
  • Skriv en oändlig slinga.
    • Be användaren gissa numret.
    • Om det nuvarande gissade talet är lika med det slumpmässigt genererade numret, gratulera användaren med ett meddelande som du vill. Ett exempel skulle vara ”-> Hurra! Du fick det i 5 steg!”.
    • Bryt slingan efter att ha gratulerat användaren.
    • Om det nuvarande gissade numret är mindre än det slumpmässigt genererade numret, ge sedan ett meddelande till användaren som säger ”-> Ditt nummer är mindre än det slumpmässiga numret” eller ett anpassat meddelande med samma betydelse.
    • Om det nuvarande gissade talet är större än det slumpmässigt genererade numret, ge sedan ett meddelande till användaren som säger ”-> Ditt nummer är större än det slumpmässiga talet” eller en anpassad med samma betydelse.
    • Slutligen, öka chanserna som användaren har tagit för att gissa.

Du skulle ha fått kod i ditt sinne efter att ha sett algoritmen. Oroa dig inte även om du inte får hela koden. Men se till att du förstår ovanstående algoritm.

Det är dags att få händerna att arbeta med kod. Kom in i koden utan vidare.

Koda

Försökte du skriva koden?

Om ja och slutfört det. Det är toppen. Kolla in koden och förstå den för att lägga till fler perspektiv till din kunskap.

Oroa dig inte även om du inte skrev koden. Se koden nedan och förstå den. Försök att justera och skriv det på ditt eget sätt för bättre förståelse.

Så, låt 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 finns några saker som du förstår från koden.

  • Området definieras i __init__-metoden så att det kan användas över klassmetoderna.
  • Vi kan enkelt ändra det på ett ställe som ändras i appen därefter.
  • Det finns en separat metod för att generera det slumpmässiga numret som följer principen ”separera bekymmer”. Här har vår metod lite kod, men den kan komma att öka i framtiden.
  • Slutligen har vi använt klass så att varje metod som är relaterad till spelet kommer att finnas i den. Och det kan enkelt återanvändas i vissa andra appar.

Alla punkter som diskuteras ovan är relaterade till att skriva ren kod. Vi bör försöka skriva den rena koden som du förstår även efter några X år.

Exempelutdata från spelet ser ut som följer.

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

Jag antar att du har Python installerat för att prova ovanstående kod.

Extra funktion

Vi kommer att lägga till det maximala antalet chanser som en användare får att gissa antalet. Om användaren inte gissar antalet inom antalet chanser, förlorar användaren.

Hur lägger vi till det?

Det är en enkel process i två steg. Låt oss se stegen.

  • Definiera det maximala antalet chanser som användaren får att gissa antalet.
  • Kontrollera om användaren har chanser eller inte innan du ber om input. Och avsluta spelet om användaren är utanför givna chanser.

Följande kod kompletterar funktionen.

  • Lägg till följande kod i __init__-metoden.
self.MAX_CHANCES = 10
  • Lägg till följande villkor innan användaren anger nästa gissning.
if chances == self.MAX_CHANCES:
                print("-> Phew! You lost the game. You are out of chances")

Prova nu spelet utan att gissa rätt nummer. Du bör se en liknande utgång enligt följande.

$ 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 till en extra funktion till vårt spel. Det är dock inte slutet. Du kan lägga till några fler funktioner för att göra det mer engagerande för användarna. Det är din tid nu. Varsågod och gör det vackrare :).

Slutsats

Vi har skapat ett enkelt gissningsspel. Nu är det din tur att tänka på spel som du spelade när du var ung. Få dem att använda programmeringsspråk och dela med dina vänner. Vi kan digitalisera de flesta av våra barndomsspel.

Utforska sedan Python IDE och onlinekompilator för att köra Python-kod.

Glad kodning 🙂

Om du inte kan få nog av virala ordspel, här är hur du gör bättre på Wordle.

Gillade du att läsa artikeln? Vad sägs om att dela med världen?