SHOW:
|
|
- or go back to the newest paste.
| 1 | from random import randint, choice | |
| 2 | ||
| 3 | class Postac: | |
| 4 | def __init__(self): | |
| 5 | self.nazwa = "" | |
| 6 | self.zycie = 1 | |
| 7 | self.max_zycie = 1 | |
| 8 | ||
| 9 | def atakuj(self, przeciwnik): | |
| 10 | ||
| 11 | atak = randint(0, 3) | |
| 12 | ||
| 13 | if atak == 0: | |
| 14 | print(f"{przeciwnik.nazwa} unika ataku {self.nazwa}.")
| |
| 15 | else: | |
| 16 | print (f"{self.nazwa} atakuje {przeciwnik.nazwa}, zadając {atak} obrazen")
| |
| 17 | przeciwnik.zycie -= atak | |
| 18 | ||
| 19 | ||
| 20 | class Przeciwnik(Postac): | |
| 21 | def __init__(self, gracz): | |
| 22 | super().__init__() | |
| 23 | self.nazwa = choice(['goblin', 'szkielet', 'zombie']) | |
| 24 | self.zycie = randint(1, gracz.zycie) | |
| 25 | ||
| 26 | class Gracz(Postac): | |
| 27 | def __init__(self): | |
| 28 | super().__init__() | |
| 29 | self.zycie = 10 | |
| 30 | self.max_zycie = 10 | |
| 31 | self.nazwa = input('Podaj imie gracza: ')
| |
| 32 | ||
| 33 | def odpoczynek(self): | |
| 34 | self.zycie += 1 | |
| 35 | if self.zycie > self.max_zycie: | |
| 36 | self.zycie = self.max_zycie | |
| 37 | print(f'{self.nazwa} odpoczywa, zycie: {self.zycie}/{self.max_zycie}')
| |
| 38 | ||
| 39 | def walka(self, przeciwnik): | |
| 40 | walka = True | |
| 41 | while walka: | |
| 42 | print(f'zycie gracza: {self.zycie}')
| |
| 43 | print(f'zycie {przeciwnik.nazwa}: {przeciwnik.zycie}')
| |
| 44 | akcja_walki = input('Akcja (atak, uciekaj): ')
| |
| 45 | if akcja_walki == 'atak': | |
| 46 | self.atakuj(przeciwnik) | |
| 47 | if przeciwnik.zycie <= 0: | |
| 48 | print(f'{self.nazwa} zabija {przeciwnik.nazwa}')
| |
| 49 | return True | |
| 50 | przeciwnik.atakuj(self) | |
| 51 | elif akcja_walki == 'uciekaj': | |
| 52 | print(f'{self.nazwa} ucieka')
| |
| 53 | przeciwnik.atakuj(self) | |
| 54 | walka = False | |
| 55 | else: | |
| 56 | print('Nieznana akcja')
| |
| 57 | ||
| 58 | if self.zycie <= 0: | |
| 59 | print(f'{self.nazwa} ginie')
| |
| 60 | return False | |
| 61 | return True | |
| 62 | ||
| 63 | gracz = Gracz() | |
| 64 | gra = True | |
| 65 | while gra: | |
| 66 | akcja = input('akcja (zwiedzaj, odpocznij): ')
| |
| 67 | ||
| 68 | if akcja == 'zwiedzaj': | |
| 69 | if randint(0, 1) == 0: | |
| 70 | print(f'{gracz.nazwa} znalazl jaskinie')
| |
| 71 | else: | |
| 72 | przeciwnik = Przeciwnik(gracz) | |
| 73 | print(f'{gracz.nazwa} natrafił na {przeciwnik.nazwa}')
| |
| 74 | gra = gracz.walka(przeciwnik) | |
| 75 | elif akcja == 'odpocznij': | |
| 76 | gracz.odpoczynek() | |
| 77 | else: | |
| 78 | print('Nieznana akcja')
| |
| 79 | ||
| 80 |