2 changed files with 69 additions and 0 deletions
@ -0,0 +1,33 @@ |
|||||
|
class Postava: |
||||
|
def __init__(self,jmeno,hp): |
||||
|
self.jmeno = jmeno |
||||
|
self._hp = hp |
||||
|
self.max_hp = hp |
||||
|
|
||||
|
def __str__(self): |
||||
|
return f"Postava: {self.jmeno} | HP: {self._hp}/{self.max_hp}" |
||||
|
|
||||
|
#DĚDIČNOST: Kouzelník JE Postava, ale umí něco navíc |
||||
|
class Kouzelnik(Postava): |
||||
|
def __init__(self, jmeno, hp,mana): |
||||
|
super().__init__(jmeno, hp) |
||||
|
self.mana = mana |
||||
|
|
||||
|
def __str__(self): |
||||
|
zakladni_text = super().__str__() |
||||
|
return f"{zakladni_text} | Mana: {self.mana}" |
||||
|
|
||||
|
def sesli_kouzlo(self): |
||||
|
if self.mana > 10: |
||||
|
self.mana -= 10 |
||||
|
print(f"{self.jmeno} sesílá kouzlo (zbýva {self.mana} many)") |
||||
|
else: |
||||
|
print("X nedostatek many!") |
||||
|
|
||||
|
aragorn = Postava("Aragorn",100) |
||||
|
gandalf = Kouzelnik("Gandalf",200, 100) |
||||
|
print(gandalf) |
||||
|
print(aragorn) |
||||
|
|
||||
|
gandalf.sesli_kouzlo() |
||||
|
print(gandalf) |
||||
@ -0,0 +1,36 @@ |
|||||
|
#Zapozdření -> jak chranit data a jak učit objekty "mluvit" |
||||
|
|
||||
|
class Postava: |
||||
|
def __init__(self,jmeno,hp): |
||||
|
self.jmeno = jmeno |
||||
|
#Zapozdření -> podržítko na začátku je dohoda programátorů: |
||||
|
#"Tato hodnota je soukromá, neměn ji přímo zvenčí" |
||||
|
self._hp = hp |
||||
|
self.max_hp = hp |
||||
|
|
||||
|
#kouzelná metoda __str__ |
||||
|
#python ji zavolá automaticky, když napíšeme print(objekt) |
||||
|
def __str__(self): |
||||
|
return f"Postava: {self.jmeno} | HP: {self._hp}/{self.max_hp}" |
||||
|
|
||||
|
#bezpečná manipulace -> metody místo přímého zápisu do proměnné |
||||
|
def utrp_zraneni(self,sila): |
||||
|
self._hp -= sila |
||||
|
if self._hp < 0 : |
||||
|
self._hp = 0 |
||||
|
print(f"{self.jmeno} zraněn o {sila} bodů") |
||||
|
|
||||
|
def vylecit(self,body): |
||||
|
self._hp += body |
||||
|
if self._hp > self.max_hp: |
||||
|
self._hp = self.max_hp |
||||
|
print(f"{self.jmeno} výlečen o {body} bodů") |
||||
|
|
||||
|
hrdina = Postava("Aragorn",100) |
||||
|
print(hrdina) |
||||
|
|
||||
|
hrdina.utrp_zraneni(20) |
||||
|
print(hrdina) |
||||
|
|
||||
|
hrdina.vylecit(10000000) |
||||
|
print(hrdina) |
||||
Loading…
Reference in new issue