Cum se creează un joc de ghicire a numărului în Python?

Ar fi trebuit să fi ghicit deja conținutul acestui articol. Și probabil că ar trebui să fii familiarizat cu ghicirea numerelor și să cauți o modalitate de a le crea folosind Python.

Să învățăm să creăm un joc de ghicire a numărului de la zero.

Joc de ghicire a numerelor

Jocul este simplu. Utilizatorul trebuie să ghicească numărul generat aleatoriu care se află între intervalul de la 1 la 100. Asta este.

Este jocul atât de simplu?

Da este.

Dar, există un lucru pe care trebuie să le oferim utilizatorilor pentru a ghici numărul. Sunt indicii. Trebuie să furnizăm un mesaj utilizatorului care să spună că numărul ghicit curent este mai mic decât numărul corect sau numărul ghicit actual este mai mare decât numărul corect. Pentru ca utilizatorii să știe în ce direcție trebuie să meargă.

Îl putem face mai interesant prin adăugarea de funcții suplimentare, cum ar fi numărul maxim de șanse de a ghici, creșterea intervalului, setarea unui cronometru etc.,

Crearea jocului de lucru de bază este obligatorie. După aceasta, putem adăuga mai multe caracteristici așa cum am discutat. Deci, vom crea versiunea de bază a jocului în această secțiune. Și apoi vom trece la adăugarea de noi funcții.

Vreau să încerci să creezi jocul fără a copia orbește codul. Deci, voi explica mai întâi algoritmul. Vă va ajuta să vă codificați sau să înțelegeți codul rapid.

Să vedem algoritmul pentru a crea jocul de ghicire a numărului.

Algoritm

Asigurați-vă că înțelegeți algoritmul înainte de a trece la partea de codificare.

  • Definiți intervalul de numere. În mod implicit, este 1-100, dar îl puteți schimba după cum doriți.
  • Generați un număr întreg aleatoriu din intervalul de mai sus (1-100).
  • Începeți jocul afișând utilizatorului un mesaj care spune „Ghicește numărul de la X la Y”. Puteți actualiza mesajul după cum doriți.
  • Inițializați o variabilă la 0 pentru a număra numărul total de șanse pe care utilizatorul le-a luat pentru a ghici numărul corect.
  • Scrieți o buclă infinită.
    • Cereți utilizatorului să ghicească numărul.
    • Dacă numărul curent ghicit este egal cu numărul generat aleatoriu, atunci felicitați utilizatorul cu un mesaj după cum doriți. Un exemplu ar fi „-> Ura! L-ai prins în 5 pași!”.
    • Rupe bucla după felicitarea utilizatorului.
    • Dacă numărul curent ghicit este mai mic decât numărul generat aleatoriu, atunci trimiteți un mesaj utilizatorului spunând „-> Numărul dvs. este mai mic decât numărul aleatoriu” sau un mesaj personalizat având același sens.
    • Dacă numărul curent ghicit este mai mare decât numărul generat aleatoriu, atunci dați un mesaj utilizatorului spunând „-> Numărul dvs. este mai mare decât numărul aleatoriu” sau un obicei cu același sens.
    • În cele din urmă, creșteți șansele pe care utilizatorul le-a luat să le ghicească.
  11 platforme pentru a găsi subiecte în tendințe în 2023

Ai fi avut cod în minte după ce ai văzut algoritmul. Nu vă faceți griji chiar dacă nu primiți codul complet. Dar, asigurați-vă că înțelegeți algoritmul de mai sus.

Este timpul să ne punem mâna să lucreze cu codul. Intrați în cod fără alte prelungiri.

Cod

Ai încercat să scrii codul?

Dacă da și completat-o. E minunat. Consultați codul și înțelegeți-l pentru a adăuga mai multe perspective cunoștințelor dvs.

Nu vă faceți griji chiar dacă nu ați scris codul. Vedeți codul de mai jos și înțelegeți-l. Încercați să modificați și să scrieți în felul dumneavoastră pentru o mai bună înțelegere.

Deci, să vedem codul.

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

Există câteva lucruri pe care le înțelegeți din cod.

  • Intervalul este definit în cadrul metodei __init__, astfel încât să poată fi utilizat în toate metodele clasei.
  • Îl putem schimba cu ușurință într-un singur loc, care se schimbă în mod corespunzător în aplicație.
  • Există o metodă separată de generare a numărului aleatoriu care urmează principiul „separați preocupările”. Aici, metoda noastră are puțin cod, dar ar putea crește în viitor.
  • În cele din urmă, am folosit clasa, astfel încât fiecare metodă care are legătură cu jocul să se afle în interiorul acesteia. Și poate fi reutilizat cu ușurință în alte aplicații.
  Cum se creează efecte 3D în CapCut

Toate punctele care sunt discutate mai sus sunt legate de scrierea codului curat. Ar trebui să încercăm să scriem codul curat pe care îl înțelegeți chiar și după câțiva X ani.

Exemplul de ieșire a jocului arată după cum urmează.

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

Presupun că aveți instalat Python pentru a încerca codul de mai sus.

Caracteristică suplimentară

Vom adăuga numărul maxim de șanse ca un utilizator să ghicească numărul. Dacă utilizatorul nu ghicește numărul din numărul de șanse, atunci utilizatorul pierde.

Cum îl adăugăm?

Este un proces simplu în doi pași. Să vedem pașii.

  • Definiți numărul maxim de șanse ca utilizatorul să ghicească numărul.
  • Verificați dacă utilizatorul are șanse sau nu înainte de a cere intrarea. Și încheiați jocul dacă utilizatorul nu are șansele date.

Următorul cod suplimentar va completa caracteristica.

  • Adăugați următorul cod în cadrul metodei __init__.
self.MAX_CHANCES = 10
  • Adăugați următoarea condiție înainte ca utilizatorul să introducă următoarea estimare.
if chances == self.MAX_CHANCES:
                print("-> Phew! You lost the game. You are out of chances")

Acum, încercați jocul fără a ghici numărul corect. Ar trebui să vedeți o ieșire similară după cum urmează.

$ 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

Ura! am adăugat o funcție suplimentară jocului nostru. Nu este totuși sfârșitul. Puteți adăuga câteva funcții suplimentare pentru a-l face mai captivant pentru utilizatori. E timpul tău acum. Haide și fă-l mai frumos :).

  Diferențele dintre raport și tabloul de bord

Concluzie

Am creat un joc simplu de ghicire a numerelor. Acum, este rândul tău să te gândești la jocurile pe care le jucai când erai tânăr. Faceți-le folosind limbajul de programare și împărtășiți-le cu prietenii tăi. Putem digitaliza majoritatea jocurilor noastre din copilărie.

Apoi, explorați IDE-ul Python și compilatorul online pentru a rula codul Python.

Codare fericită 🙂

Dacă nu te poți sătura de jocurile virale de cuvinte, iată cum să faci mai bine la Wordle.

Ți-a plăcut să citești articolul? Ce zici de împărtășirea cu lumea?