View difference between Paste ID: sXwqdr4g and 7936Wp9a
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