Witam.
Przyswajam sobie wiedzę o pentlach i warunkach i piszę prostą grę tekstową. Zamieszczę kod źródłowy.
# Gra survivalowa Zombie Hunter
print(
"""
_ _
| | (_)
_______ _ __ ___ | |__ _ ___
|_ / _ \| '_ ` _ \| '_ \| |/ _ \
/ / (_) | | | | | | |_) | | __/
/___\___/|_| |_| |_|_.__/|_|\___|
""")
import random
print("\t\tWitaj w grze Zombie Hunter!")
imię = str(input("Wybierz imię dla twojej postaci: "))
print("Witaj", imię, " zaczynajmy!")
print("Jesteś w miasteczku oddalonym o 300 km od bezpiecznej strefy." \
"\nMusisz kierować się na zachód aby dotrzeć do obozu." \
"\nPo drodzę czekają na ciebie niebezpieczeństwa!" \
"\nŚmierć jest wszędzie, ale nie tylko martwych trzeba się bać."\
"\n Wychodzisz z domu i stoisz na ulicy.")
response = "na zachód"
x = str(input("Gdzie chcesz się udać? "))
while True:
if x == response:
print("Kierujesz się na zachód.")
break
elif x != response:
print("Spróbuj ponownie!")
else:
print("Ups. Coś się zepsuło!")
break
x = str(input("Gdzie chcesz się udać? "))
print("Po przejściu 2km na twojej drodze pojawia się opuszczony dom")
dom = str(input("Chesz do niego wejść?" ))
odpowiedź = "tak"
while True:
if odpowiedź == "tak":
print("Wchodzisz do środka!")
break
else:
print("Coś nie działa! Spróbuj ponownie")
break
dom = str(input("Chcesz do niego wejść? "))
zombie = random.randint(1, 3)
health= 10
damage = random.randint(1, 2)
while True:
print("Biegnie na ciebie", zombie, "żywych trupów")
if zombie == 0:
print("Zabiłeś wszystkie żywe trupy")
break
elif zombie != 0:
print("Pokonaj wszystkie trupy")
else:
print("Coś się zepsuło. Spróbuj ponownie")
zombie -= 1
health -= damage
print("Słychać odgłosy łamanych kości i trzaskających czaszek...")
input("\nNaciśnij enter aby kontynuować.")
print("Pokonałeś", zombie, "żywe trupy" + " twoje zdrowie wynosi ", health
Jak widzicie wygenerowałem losową liczbę żywych trupów , z którymi gracz musi się zmierzyć. Pętla działa dobrze, ale ostatnia instrukcja print()
nie wypisuje liczby pokonanych zombie. Zawsze zwraca wartość 0
a ja bym chciał, żeby zwracała liczbę pokonanych potworów.
Próbowałem z inną pętlą:
zombie = 0
health= 10
damage = random.randint(1, 2)
while health > 6:
zombie += 1
health -= damage
print("Słychać dźwięk łamania kości i trzaskających czaszek...")
print("Pokonałeś", zombie, " żywych trupów" + " a twoje zdrowie wynosi", health)
W tym kodzie nalicza mi pokonanych zombie i odejmuje losowo zadane obrażenia. Ale ja chciałbym, żeby gracz walczył z losową liczbą trupów a nie żeby ich pojawianie było uzależnione od punktów zdrowia. Co robię źle?