NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 5. diel - Hracia kocka v Pythone - Prekrývanie metód a random

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Pavel Vavruša:13.4.2025 16:06

Neustálé vkládání odkazu na IT network při kopírování kódu do PyCharmu je neskutečně otravné.

Avatar
Libuše Dvořáková:26.4.2025 21:32

Kód je zbytečně na přeskáčku vysvětlován a kdybych si nestáhla finální výsledek nevěděla bych kam co zadat. Nechápu proč se kód zpětně dopisuje, dělá to člověku zbytečný zmatek...

Avatar
Milan Pavlíček:23.6.2025 7:13

proč je v řádku '\n'?
A co udělá sep=" "?
Trochu mě chybí rozbor kódu.
I když se jedná o opakování.
Opakování = matka, moudrosti.

Avatar
Pavel Buřič :19.7.2025 21:04

vubec sem nepochopil princip tohoto __str__ musel jsem čerpat z jinych serverů tato lekce není úplně dobře zpracovaná pro začátečníky

Avatar
DarkCoder
Člen
Avatar
DarkCoder:19.7.2025 21:53

Pokud se vysvětluje __str__, měla by se vysvětlovat zároveň i __repr__. Tyto dvě metody spolu úzce souvisí..

Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
DarkCoder
Člen
Avatar
DarkCoder:13.11.2025 12:00

Proboha, proč instancujete třídu Kostka, když její vnitřní stav se nijak nemění a hodnota hodu závisí pouze na předaném argumentu?

Přeci nebudeme vytvářet více objektů lišících se jen počtem stěn – hodnota pocet_sten se řídí určitými pravidly, která jsou někde definovaná, a stačí ji předávat statické metodě hod zvenčí.

Příklad:

import random

# Statická třída Kostka
class Kostka:
    @staticmethod
    def hod(pocet_sten):
        return random.randint(1, pocet_sten)

# jednoduchá třída Bojovnik jen pro útok
class Bojovnik:
    def __init__(self, jmeno, utok, modifikator_hodu=6):
        self._jmeno = jmeno
        self._utok = utok
        self._modifikator_hodu = modifikator_hodu

    def utoc(self, souper):
        uder = self._utok + Kostka.hod(self._modifikator_hodu)
        print(f"{self._jmeno} útočí s úderem za {uder} hp.")
        if hasattr(souper, 'bran_se'):
            souper.bran_se(uder)

# Ilustrativní soupeř s metodou bran_se
class Dummy:
    def bran_se(self, uder):
        print(f"Dummy utrpěl {uder} hp.")

# Příklad použití
zalgoren = Bojovnik("Zalgoren", 20, 10)
shadow = Bojovnik("Shadow", 18, 6)
dummy = Dummy()

# Útoky
zalgoren.utoc(dummy)  # hod D10 + útok
shadow.utoc(dummy)    # hod D6 + útok
Odpovedať
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Jan Kupčík
Člen
Avatar
Jan Kupčík:24.11.2025 10:46

V kódu je málá chyba.

print("\n", desetistenna, sep = " ") - vratí na začátku textu mezeru

print("\n", desetistenna, sep = "") - na začátku textu nebude mezera

Editované
Avatar
Hana Součková:6. januára 11:22

dlouho jsem hledala, proč mi program podle vzoru neběží. Určitě mi nefunguje print(sestistenna), ale print(sestisten­na._str_())

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 8 správy z 18.