You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.0 KiB
36 lines
1.0 KiB
#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)
|