Aktywne Wpisy
salcefrytki +264
potenżny Konfederata to nie jakaś #!$%@? jak te zniewieściałe lewaki
#bekazkonfederacji #konfederacja #polityka
#bekazkonfederacji #konfederacja #polityka
Treda +100
Skopiuj link
Skopiuj linkWykop.pl
Podróże
Gospodarka
Ukraina
Technologia
Motoryzacja
Sport
Rozrywka
Informacje
Ciekawostki
Czy da się stworzyć "dynamiczną" funkcje?
Mam np stworzoną funkcje def fight(warrior,goblin): i to pobiera tylko wartości z obiektów warrior i goblin, a chciałbym żeby funkcja reagowała na to, jaką klasę postaci wybierze gracz na początku i to jaki przeciwnik się wylosuje na danym etapie, bo przecież nie będę tworzył 80 tych samych funkcji ale tylko z innymi zmiennymi bo to robota głupiego i mało wydajna.
def warrior_fight(warrior,goblin):
core = 5 + (warrior.strenght * 2) + (warrior.magic * 2) + (warrior.agility * 1) - (warrior.defense * 2)
crit_chance = ri(0,1)
if crit_chance == 0:
print(goblin.health - core)
if crit_chance == 1:
core = core * 2
print(goblin.health - core)
warrior_fight(warrior,goblin)
def warriorfight(warrior,goblin)
konkretnie walczenie z goblinem a nie z dowolnym potworem? Czy te linijki będą inne jak będziesz walczył z wilkiem?
if critchance == 0:
print(goblin.health - core)
if crit_chance == 1:
core = core * 2
print(goblin.health - core)
bo jak będą takie same, to zrób zamiast tego jedną funkcję:
def fight(warrior, monster):
core = 5 + (warrior.strenght * 2) + (warrior.magic *
No i lepiej poczytać o https://en.wikipedia.org/wiki/Entity_component_system . Generalnie tworzenie klas do wszystkiego to słaby pomysł, bo tak źle modeluje się świat. Lepiej skupić się na tworzeniu klas pozwalających na osiągnięcie jakiegoś efektu (rysowanie na ekranie, zwracanie loota,
Tutaj wystarczy 2 klasy: Character i Monster.
Character by miał metodę
def fight(self, monster):
core = 5 + (self.strenght * 2) + (self.magic * 2) + (self.agility * 1) - (self.defense * 2)
critchance = ri(0,1)
monster.reactToCrir(critchance, core)
a Monster:
def reactToCrit(self, crit