main.py
· 847 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)
if type(kto) == type(kogo):
pass
elif issubclass(type(kto), moje_klasy.Zombie) == issubclass(
type(kogo), moje_klasy.Bohater
):
pass
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 | if type(kto) == type(kogo): |
| 12 | pass |
| 13 | elif issubclass(type(kto), moje_klasy.Zombie) == issubclass( |
| 14 | type(kogo), moje_klasy.Bohater |
| 15 | ): |
| 16 | pass |
| 17 | elif type(kto) == moje_klasy.Bohater: |
| 18 | pass |
| 19 | |
| 20 | |
| 21 | mlot = moje_klasy.Bron(nazwa="Młot", ile_kosci=1, sukces_od=4, obrazenia=2) |
| 22 | miecz = moje_klasy.Bron(nazwa="Miecz dwuręczny", ile_kosci=5, sukces_od=5, obrazenia=1) |
| 23 | |
| 24 | mlot.opis() |
| 25 | moje_klasy.Bron.opis(mlot) |
| 26 | |
| 27 | print(mlot) |
| 28 | |
| 29 | |
| 30 | nelly = moje_klasy.Bohater(imie="Nelly") |
| 31 | |
| 32 | nelly.podnies(mlot) |
| 33 | nelly.podnies(miecz) |
| 34 | |
| 35 | nelly.pokaz_co_masz() |
| 36 | |
| 37 | |
| 38 | szwendacz = moje_klasy.Szwendacz() |
| 39 | szwendacz.przedstaw_sie() |
| 40 | |
| 41 | spaslak = moje_klasy.Spaslak() |
| 42 | spaslak.przedstaw_sie() |
| 43 |
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 |