From 8a9553cf0532041029aa364f61bcf13fc3e1e3e1 Mon Sep 17 00:00:00 2001 From: KubMakCZ Date: Mon, 27 Apr 2026 15:39:05 +0200 Subject: [PATCH] OOP INTRO --- 32_oop_uvod/rpg.py | 34 ++++++++++++++++++++++++++++++++++ 32_oop_uvod/zviratko.py | 27 +++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 32_oop_uvod/rpg.py create mode 100644 32_oop_uvod/zviratko.py diff --git a/32_oop_uvod/rpg.py b/32_oop_uvod/rpg.py new file mode 100644 index 0000000..476377a --- /dev/null +++ b/32_oop_uvod/rpg.py @@ -0,0 +1,34 @@ +# varianta bez třídy + +print("---Způsob přes slovníky---") + +hrdina_1 = {"jmeno":"Aragorn","hp":100,"utok":20} +hrdina_2 = {"jmeno":"skřet","hp":50,"utok":10} + +def zautoc(utocnik,obet): + obet["hp"] -= utocnik["utok"] + print(f"{utocnik['jmeno']} útočí na {obet['jmeno']}") + print(f"{obet['jmeno']} má nyní {obet['hp']}HP.\n") + +zautoc(hrdina_1,hrdina_2) + +# NOVÝ ZPŮSOB (OOP - Objektově Orientované Programování) +class Hrdina: + def __init__(self,jmeno,hp,sila): + #self = "ja"/"muj" -> ukazovátko na konkretního hrdinu + #bez SELF by python nevěděl, kterému hrdinovi nastavuje hodnoty + self.jmeno = jmeno + self.hp = hp + self.sila = sila + self.mana = 100 + print(f"Objevil se RPG Hrdina: {self.jmeno}!!!") + + def utoc(self,nepritel): + nepritel.hp -= self.sila + print(f"{self.jmeno} útočí na {nepritel.jmeno}") + print(f"{nepritel.jmeno} má nyní {nepritel.hp}HP.\n") + +aragorn = Hrdina("Aragorn",100,20) +skret = Hrdina("Sktřet", 50, 10) +aragorn.utoc(skret) + \ No newline at end of file diff --git a/32_oop_uvod/zviratko.py b/32_oop_uvod/zviratko.py new file mode 100644 index 0000000..0ae916a --- /dev/null +++ b/32_oop_uvod/zviratko.py @@ -0,0 +1,27 @@ +class Zviratko: + def __init__(self, jmeno, druh): + self.jmeno = jmeno + self.druh = druh + self.hlad = 50 #0 = hladové, 100 = najezené + self.stesti = 50 + + def nakrmit(self): + self.hlad += 20 + if self.hlad > 100: self.hlad = 100 + print(f"Krmíš {self.jmeno}. Hlad je nyní {self.hlad}") + + def pohladit(self): + self.stesti += 10 + print(f"Pohladil jsi {self.jmeno}. Štěstí je nyní {self.stesti}") + + def status(self): + print(f"--- Stav zvířatka: {self.jmeno}") + print(f"Druh: {self.druh}") + print(f"Hlad: {self.hlad}/100") + print(f"Štěstí: {self.stesti} \n") + +mazlicek = Zviratko("Alík","pes") +mazlicek.status() +mazlicek.nakrmit() +mazlicek.pohladit() +mazlicek.status() \ No newline at end of file