Hogyan adhatok hozzá plusz tényezőt?
Egy oldal segítségével sikerült létrehoznom egy harc folyamatot.
Szeretném, hogy a Playernek legyen egy strengthje, ami egy szintlépés után lehet több is.
pl.:
lv. 1: strength = 3
lv. 2: strength = 5
De úgy, hogy a játékosnak kell megadnia, hogy mennyivel legyen nagyobb, mert költheti másra is a szintlépési pontokat.
import random, time
class Character:
def __init__(self, health):
self.health = 100
def attack(self, other):
raise NotImplementedError
class Player(Character):
def __init__(self, health=100):
super().__init__(health)
def attack(self, other):
tamadas = input("Hogyan szeretnél támadni? ütés/rúgás/fejelés ")
if tamadas.lower() in ("ütés", "rúgás", "fejelés"):
other.health -= int(random.randint(1,100)/(random.uniform(0,1)*other.defense))
else:
print("Megbotlottál.")
class Enemy(Character):
def __init__(self, name, strength, defense, health):
super().__init__(health)
self.name = name
self.strength = strength
self.defense = defense
def attack(self, other):
print("A " + self.name + " támad.")
other.health -= int(self.strength * random.uniform(0.1,1.4))
def battle(player, enemy):
print("Egy {0.name} jön feléd.".format(enemy))
# harc
while player.health > 0 and enemy.health > 0:
player.attack(enemy)
print("A(z) {0.name} élete: {0.health}".format(enemy))
if enemy.health <= 0:
break
enemy.attack(player)
print("Az életed: {0.health}".format(player))
# vége
if player.health > 0:
print("Legyőzted az ellenfeled: {0.name}".format(enemy))
elif enemy.health > 0:
print("A(z) {0.name} legyőzőtt.".format(enemy))
if __name__ == '__main__':
enemies = [Enemy("Vaddisznó", 10, 10,100), Enemy("Farkas", 20, 15, 100)]
battle(Player(), random.choice(enemies))
Az elcsúszásokért bocsi, nem engedett linket tenni.
Link a pastebin-re vinne, a per jel után: /u5eiquyc
Vedd fel a strength tulajdonságot, vedd fel a növekedést, és:
Ha karakteralkotáskor kell beállítani a növekedést, akkor a konstruktorban adja lehetőséget a beállításra.
Ha szintenként lehet adni, akkor legyen egy addStrength metódusod, amit szintenként lehet hívni.
Ez a kódban hogy nézne ki? :)
Annyira nem vagyok egy hiperszuper profi.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!