Mini-projekt – Gra Zgadnij Liczbę
Pierwsza prawdziwa gra w książce polega na tym, że komputer zgaduje liczbę, a ty próbujesz zgadnąć.
Pierwsza prawdziwa gra w tej książce! Komputer zgaduje liczbę, ty wpisujesz jedną Alternatywnie, program pokazuje, czy dobrze zgadłeś, czy nie.
Najpierw — jak to wygląda dla gracza
Я загадал число от 1 до 10.
Ваш вариант: 7
Слишком большое!
Я загадал: 4
Albo, jeśli zgadliście za pierwszym razem:
Я загадал число от 1 до 10.
Ваш вариант: 4
🎉 Вы угадали!
Drzewo Decyzyjne w grze
if guess == secret:
print(„🎉 Zgadłeś dobrze!”)
elif guess < secret:
print(„Za mało!”)
else:
print(„Za dużo!”)
Budowanie gry krok po kroku
Krok 1 – Zrób liczbę
import random
secret = random.randint(1, 10)
Krok 2 – Przeczytaj odpowiedź gracza
guess_text = input(„Twoja opcja: ”)
Krok 3 – Przelicz na liczbę
guess = int(guess_text)
guess_text < secret bezpośrednio (łańcuch znaków z liczbą), Python da TypeError - Nie można porównywać łańcuch znaków i liczby. Konwersja int() koniecznie.Krok 4 – Sprawdź dokładne dopasowanie
if guess == secret:
print(„🎉 Zgadłeś dobrze!”)
Krok 5 – Dodaj „za mało”
if guess == secret:
print(„🎉 Zgadłeś dobrze!”)
elif guess < secret:
print(„Za mało!”)
Krok 6 — else oznacza „za dużo”
if guess == secret:
print(„🎉 Zgadłeś dobrze!”)
elif guess < secret:
print(„Za mało!”)
else:
print(„Za dużo!”)
Krok 7 - Wersja ostateczna
import random
secret = random.randint(1, 10)
guess = int(input(„Twoja opcja: ”))
if guess == secret:
print(„🎉 Zgadłeś dobrze!”)
elif guess < secret:
print(„Za mało!”)
else:
print(„Za dużo!”)
print(f"Wylosowana liczba była: {secret}")
random.randint(...)tak, by efekt był przewidywalny po pokazaniu. W prawdziwej grze nie jest to konieczne — to losowość czyni grę interesującą.Debug-laboratorium: pięć błędów
Błąd 1 — zapomniano int()
guess = input("Ваш вариант: ")
if guess < secret:
...
# TypeError: '<' not supported between instances of 'str' and 'int'
Poprawka: guess = int(input(...)).
Błąd 2 – Nieprawidłowa kolejność gałęzi
if guess < secret:
...
elif guess == secret:
...
Sam się nie zepsuje, ale kolejność „najpierw niedokładna, potem dokładna”
Błąd 3 — = zamiast ==
if guess = secret:
...
# SyntaxError: invalid syntax
Single = w tym warunku jest błąd składniowy, Python nawet
nie uruchomi programu (Rozdział 9.5).
Metoda
Błąd 4 - Zła granica
secret = random.randint(1, 10)
# но подсказка написана как "от 1 до 9" — граница не совпадает с кодом
Błąd 5 – Dwa niezależne if zamiast elif
if guess < secret:
print("Слишком мало!")
if guess > secret:
print("Слишком много!")
# при guess == secret НИ ОДНО сообщение не покажется — а if/elif/else это учитывает
Dodaj czwarte warunek: jeśli różnica między guess a secret jest mniejsza niż 3 (użyj abs()) — wyświetl „Bardzo blisko!” przed głównym komunikatem.