main.py
· 751 B · Python
Raw
import moje_klasy
# import importlib
# importlib.reload(moje_klasy)
# ^^^ jeśli używamy jupyter notebook
def walka(kto, kogo):
# isinstance(kto, moje_klasy.Bohater)
# tutaj jest problem!
if type(kto) == type(kogo):
return
elif type(kto) == moje_klasy.Bohater:
pass
mlot = moje_klasy.Bron(nazwa="Młot", ile_kosci=1, sukces_od=4, obrazenia=2)
miecz = moje_klasy.Bron(nazwa="Miecz dwuręczny", ile_kosci=5, sukces_od=5, obrazenia=1)
mlot.opis()
moje_klasy.Bron.opis(mlot)
print(mlot)
nelly = moje_klasy.Bohater(imie="Nelly")
nelly.podnies(mlot)
nelly.podnies(miecz)
nelly.pokaz_co_masz()
szwendacz = moje_klasy.Szwendacz()
szwendacz.przedstaw_sie()
spaslak = moje_klasy.Spaslak()
spaslak.przedstaw_sie()
1 | import moje_klasy |
2 | |
3 | # import importlib |
4 | # importlib.reload(moje_klasy) |
5 | # ^^^ jeśli używamy jupyter notebook |
6 | |
7 | |
8 | def walka(kto, kogo): |
9 | # isinstance(kto, moje_klasy.Bohater) |
10 | |
11 | # tutaj jest problem! |
12 | if type(kto) == type(kogo): |
13 | return |
14 | elif type(kto) == moje_klasy.Bohater: |
15 | pass |
16 | |
17 | |
18 | mlot = moje_klasy.Bron(nazwa="Młot", ile_kosci=1, sukces_od=4, obrazenia=2) |
19 | miecz = moje_klasy.Bron(nazwa="Miecz dwuręczny", ile_kosci=5, sukces_od=5, obrazenia=1) |
20 | |
21 | mlot.opis() |
22 | moje_klasy.Bron.opis(mlot) |
23 | |
24 | print(mlot) |
25 | |
26 | |
27 | nelly = moje_klasy.Bohater(imie="Nelly") |
28 | |
29 | nelly.podnies(mlot) |
30 | nelly.podnies(miecz) |
31 | |
32 | nelly.pokaz_co_masz() |
33 | |
34 | |
35 | szwendacz = moje_klasy.Szwendacz() |
36 | szwendacz.przedstaw_sie() |
37 | |
38 | spaslak = moje_klasy.Spaslak() |
39 | spaslak.przedstaw_sie() |
40 |
moje_klasy.py
· 2.4 KiB · Python
Raw
import random
def rzut_k6(ile_razy):
return [random.randint(1, 6) for nr_rzutu in range(ile_razy)]
class Bron:
def __init__(self, nazwa, ile_kosci, sukces_od, obrazenia):
self.nazwa = nazwa
self.ile_kosci = ile_kosci
self.sukces_od = sukces_od
self.obrazenia = obrazenia
def opis(self):
print(self)
def __str__(self):
tekst = ""
tekst += f"Jestem obiektem klasy {self.__class__.__name__}\n"
tekst += f"Nazywam się {self.nazwa}\n"
tekst += f"Aby trafić, wyrzuć co najmniej {self.sukces_od} oczek\n"
tekst += f"Zadaję {self.obrazenia} obrażeń\n"
return tekst
class Bohater:
# tutaj mamy blad!
def __init__(self, imie, zycie=3, doswiadczenie=0, ekwipunek=[]):
self.imie = imie
self.zycie = zycie
self.doswiadczenie = doswiadczenie
self.ekwipunek = ekwipunek
def okrzyk_bojowy(self):
print("Jesień średniowiecza!")
def podnies(self, przedmiot):
self.ekwipunek.append(przedmiot)
print(f"Oho, mam {przedmiot.nazwa}.")
def pokaz_co_masz(self):
print(f"Ekwipunek {self.imie}:")
for i, przedmiot in enumerate(self.ekwipunek):
print(f" {i+1}. {przedmiot.nazwa}")
def atak(self):
if len(self.ekwipunek) == 0:
return 0
wybrana_bron = self.ekwipunek[0]
rzuty_ataku = rzut_k6(ile_razy=wybrana_bron.ile_kosci)
udane = [rzut > wybrana_bron.sukces_od for rzut in rzuty_ataku]
return udane
class Zombie:
def __init__(self):
self.zycie = None
self.zadawane_obrazenia = 1
self.doswiadczenie_za_zabicie = None
def przedstaw_sie(self):
print(f"Jestem {self.__class__.__name__}")
print(f"Mam {self.zycie} punktow zycia.")
print(f"Jak cie dorwe, zadam {self.zadawane_obrazenia} obrazen.")
print(
f"Jak mnie dorwiesz, zyskasz {self.doswiadczenie_za_zabicie} doswiadczenia."
)
def atak(self):
pass
class Szwendacz(Zombie):
def __init__(self):
super().__init__()
self.zycie = 1
self.doswiadczenie_za_zabicie = 1
class Spaslak(Zombie):
def __init__(self):
super().__init__()
self.zycie = 2
self.doswiadczenie_za_zabicie = 1
class Abominacja(Zombie):
def __init__(self):
super().__init__()
self.zycie = 3
self.doswiadczenie_za_zabicie = 5
1 | import random |
2 | |
3 | |
4 | def rzut_k6(ile_razy): |
5 | return [random.randint(1, 6) for nr_rzutu in range(ile_razy)] |
6 | |
7 | |
8 | class Bron: |
9 | def __init__(self, nazwa, ile_kosci, sukces_od, obrazenia): |
10 | self.nazwa = nazwa |
11 | self.ile_kosci = ile_kosci |
12 | self.sukces_od = sukces_od |
13 | self.obrazenia = obrazenia |
14 | |
15 | def opis(self): |
16 | print(self) |
17 | |
18 | def __str__(self): |
19 | tekst = "" |
20 | tekst += f"Jestem obiektem klasy {self.__class__.__name__}\n" |
21 | tekst += f"Nazywam się {self.nazwa}\n" |
22 | tekst += f"Aby trafić, wyrzuć co najmniej {self.sukces_od} oczek\n" |
23 | tekst += f"Zadaję {self.obrazenia} obrażeń\n" |
24 | return tekst |
25 | |
26 | |
27 | class Bohater: |
28 | # tutaj mamy blad! |
29 | def __init__(self, imie, zycie=3, doswiadczenie=0, ekwipunek=[]): |
30 | self.imie = imie |
31 | self.zycie = zycie |
32 | self.doswiadczenie = doswiadczenie |
33 | self.ekwipunek = ekwipunek |
34 | |
35 | def okrzyk_bojowy(self): |
36 | print("Jesień średniowiecza!") |
37 | |
38 | def podnies(self, przedmiot): |
39 | self.ekwipunek.append(przedmiot) |
40 | print(f"Oho, mam {przedmiot.nazwa}.") |
41 | |
42 | def pokaz_co_masz(self): |
43 | print(f"Ekwipunek {self.imie}:") |
44 | for i, przedmiot in enumerate(self.ekwipunek): |
45 | print(f" {i+1}. {przedmiot.nazwa}") |
46 | |
47 | def atak(self): |
48 | if len(self.ekwipunek) == 0: |
49 | return 0 |
50 | |
51 | wybrana_bron = self.ekwipunek[0] |
52 | rzuty_ataku = rzut_k6(ile_razy=wybrana_bron.ile_kosci) |
53 | udane = [rzut > wybrana_bron.sukces_od for rzut in rzuty_ataku] |
54 | return udane |
55 | |
56 | |
57 | class Zombie: |
58 | def __init__(self): |
59 | self.zycie = None |
60 | self.zadawane_obrazenia = 1 |
61 | self.doswiadczenie_za_zabicie = None |
62 | |
63 | def przedstaw_sie(self): |
64 | print(f"Jestem {self.__class__.__name__}") |
65 | print(f"Mam {self.zycie} punktow zycia.") |
66 | print(f"Jak cie dorwe, zadam {self.zadawane_obrazenia} obrazen.") |
67 | print( |
68 | f"Jak mnie dorwiesz, zyskasz {self.doswiadczenie_za_zabicie} doswiadczenia." |
69 | ) |
70 | |
71 | def atak(self): |
72 | pass |
73 | |
74 | |
75 | class Szwendacz(Zombie): |
76 | def __init__(self): |
77 | super().__init__() |
78 | self.zycie = 1 |
79 | self.doswiadczenie_za_zabicie = 1 |
80 | |
81 | |
82 | class Spaslak(Zombie): |
83 | def __init__(self): |
84 | super().__init__() |
85 | self.zycie = 2 |
86 | self.doswiadczenie_za_zabicie = 1 |
87 | |
88 | |
89 | class Abominacja(Zombie): |
90 | def __init__(self): |
91 | super().__init__() |
92 | self.zycie = 3 |
93 | self.doswiadczenie_za_zabicie = 5 |
94 |