Jak stworzyć grę w odgadywanie liczb w Pythonie?

Powinieneś już odgadnąć treść tego artykułu. I prawdopodobnie powinieneś być zaznajomiony z zgadywaniem liczb i szukaniem sposobu na zbudowanie go za pomocą Pythona.

Nauczmy się tworzyć od podstaw grę w zgadywanie liczb.

Gra w zgadywanie liczb

Gra jest prosta. Użytkownik musi odgadnąć losowo wygenerowaną liczbę z zakresu od 1 do 100. To wszystko.

Czy gra jest taka prosta?

Tak jest.

Ale jest jedna rzecz, którą musimy zapewnić użytkownikom, aby odgadnąć liczbę. To są wskazówki. Musimy dostarczyć użytkownikowi wiadomość, że aktualna odgadnięta liczba jest mniejsza niż prawidłowa liczba lub aktualna odgadnięta liczba jest większa niż prawidłowa liczba. Aby użytkownicy wiedzieli, w jakim kierunku muszą iść.

Możemy uczynić go bardziej ekscytującym, dodając dodatkowe funkcje, takie jak maksymalna liczba szans na odgadnięcie, zwiększenie zasięgu, ustawienie timera itp.,

Stworzenie podstawowej gry roboczej jest obowiązkowe. Po tym możemy dodać więcej funkcji, jak omówiono. W tej sekcji stworzymy więc podstawową wersję gry. A potem przejdziemy do dodania nowych funkcji.

Chcę, abyś spróbował stworzyć grę bez kopiowania kodu na ślepo. Więc najpierw wyjaśnię algorytm. Pomoże Ci to sam kodować lub szybko zrozumieć kod.

Zobaczmy algorytm do stworzenia gry w zgadywanie liczb.

Algorytm

Upewnij się, że rozumiesz algorytm, zanim przejdziesz do części kodowania.

  • Zdefiniuj zakres liczb. Domyślnie jest to 1-100, ale możesz to zmienić według własnego uznania.
  • Wygeneruj losową liczbę całkowitą z powyższego zakresu (1-100).
  • Rozpocznij grę, wyświetlając użytkownikowi komunikat „Odgadnij liczbę od X do Y”. Możesz zaktualizować wiadomość, jak chcesz.
  • Zainicjuj zmienną na 0, aby policzyć całkowitą liczbę szans, jakie użytkownik podjął, aby poprawnie odgadnąć liczbę.
  • Napisz nieskończoną pętlę.
    • Poproś użytkownika, aby odgadł liczbę.
    • Jeśli aktualna odgadnięta liczba jest równa liczbie wygenerowanej losowo, pogratuluj użytkownikowi wiadomości, jak chcesz. Przykładem może być „-> Hurra! Masz to w 5 krokach!”.
    • Przerwij pętlę po pogratulowaniu użytkownikowi.
    • Jeśli aktualna odgadnięta liczba jest mniejsza niż liczba wygenerowana losowo, przekaż użytkownikowi wiadomość „-> Twoja liczba jest mniejsza niż liczba losowa” lub niestandardowa wiadomość o tym samym znaczeniu.
    • Jeśli aktualna odgadnięta liczba jest większa niż liczba wygenerowana losowo, przekaż użytkownikowi wiadomość „-> Twoja liczba jest większa niż liczba losowa” lub niestandardowy o tym samym znaczeniu.
    • Na koniec zwiększ szanse, że użytkownik zgadł.

Po obejrzeniu algorytmu miałbyś kod w swoim umyśle. Nie martw się, nawet jeśli nie otrzymasz pełnego kodu. Ale upewnij się, że rozumiesz powyższy algorytm.

Czas zająć się kodem. Wejdź do kodu bez zbędnych ceregieli.

Kod

Czy próbowałeś napisać kod?

Jeśli tak i wypełnij go. Wspaniale. Sprawdź kod i zrozum go, aby dodać więcej perspektyw do swojej wiedzy.

Nie martw się, nawet jeśli nie napisałeś kodu. Zobacz poniższy kod i zrozum go. Spróbuj poprawić i napisać to na swój własny sposób, aby lepiej zrozumieć.

Zobaczmy więc kod.

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

Jest kilka rzeczy, które można zrozumieć z kodu.

  • Zakres jest zdefiniowany wewnątrz metody __init__, dzięki czemu może być używany w metodach klasy.
  • Możemy to łatwo zmienić w jednym miejscu, które odpowiednio zmienia się w całej aplikacji.
  • Istnieje osobna metoda generowania liczby losowej, która działa zgodnie z zasadą „oddziel obawy”. Tutaj nasza metoda ma niewiele kodu, ale może się on zwiększyć w przyszłości.
  • Na koniec użyliśmy klasy, aby każda metoda związana z grą znajdowała się w niej. I można go łatwo ponownie wykorzystać w niektórych innych aplikacjach.

Wszystkie omówione powyżej punkty dotyczą pisania czystego kodu. Powinniśmy spróbować napisać czysty kod, który rozumiesz nawet po kilku X latach.

Przykładowy wynik gry wygląda następująco.

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

Zakładam, że masz zainstalowany Python, aby wypróbować powyższy kod.

Dodatkowa funkcja

Dodamy maksymalną liczbę szans na odgadnięcie liczby przez użytkownika. Jeśli użytkownik nie odgadnie liczby w ramach liczby szans, przegrywa.

Jak to dodamy?

To prosty dwuetapowy proces. Zobaczmy kroki.

  • Określ maksymalną liczbę szans na odgadnięcie liczby przez użytkownika.
  • Sprawdź, czy użytkownik ma szanse, czy nie, zanim poprosisz o dane wejściowe. I zakończ grę, jeśli użytkownik nie ma żadnych szans.

Poniższy kod dodatkowo zakończy tę funkcję.

  • Dodaj następujący kod wewnątrz metody __init__.
self.MAX_CHANCES = 10
  • Dodaj następujący warunek, zanim użytkownik wprowadzi kolejne przypuszczenie.
if chances == self.MAX_CHANCES:
                print("-> Phew! You lost the game. You are out of chances")

Teraz wypróbuj grę bez zgadywania poprawnej liczby. Powinieneś zobaczyć podobny wynik w następujący sposób.

$ 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! dodaliśmy dodatkową funkcję do naszej gry. To jednak nie koniec. Możesz dodać kilka dodatkowych funkcji, aby uczynić go bardziej atrakcyjnym dla użytkowników. Teraz nadszedł twój czas. Śmiało i zrób to piękniej :).

Wniosek

Stworzyliśmy prostą grę w zgadywanie liczb. Teraz twoja kolej, aby pomyśleć o grach, w które grałeś, gdy byłeś młody. Twórz je za pomocą języka programowania i udostępniaj znajomym. Możemy zdigitalizować większość naszych dziecięcych gier.

Następnie zapoznaj się z Python IDE i kompilatorem online, aby uruchomić kod Pythona.

Szczęśliwego kodowania 🙂

Jeśli nie masz dość wirusowych gier słownych, oto jak zrobić lepiej w Wordle.

Podobał Ci się artykuł? Co powiesz na dzielenie się ze światem?