Brauchen Sie Hilfe mit diesem Code. Ich habe keine Ahnung, warum es diesen Fehler ist zu werfen, wenn ich es laufen -Weiß nicht, welcher Fehler ist __init__ Anruffehler
Traceback (most recent call last):
File "python", line 130, in <module>
File "python", line 111, in encounterModule
File "python", line 100, in CombatModule
TypeError: 'int' object is not callable
#Combat/exp system test of concept
import time
print("Welcome to the Combat Concept Testing Module!")
print("What would you like your Hero to be called?")
nameHero = input(">")
class Hero:
'Hero class'
def __init__(self):
#Constructor to build object
self.name = "Placeholder" #Must Declare name after creation of object
self.maxhitpoints = 150
self.hitpoints = self.maxhitpoints
self.defPower = 20
self.AD = 30
self.exp = 0
self.lvl = 1
self.threshold = 5 ** self.lvl
self.isAlive = True
self.maxenergy = 50
self.energy = self.maxenergy
def basicattack(self,target):
#First level attack function
self.attack = self.AD
target.hitpoints = target.hitpoints - self.attack
print("Target striked!")
def heavyattack(self,target):
if self.lvl == 2:
#Second level attack function
self.attack = self.AD * 1.2
target.hitpoints = target.hitpoints - self.attack
print("Target heavily striked!")
else:
#If level isn't high enough, attack will not occur.
pass
def printStats(self):
#This module prints our hero's stats.
print("HP: %d" % (self.maxhitpoints))
print("DefPower: %d" % (self.defPower))
print("Attack Damage: %d" % (self.AD))
print("XP: %d" % (self.exp))
print("LVL: %d" % (self.lvl))
print("Current HP: %d" % (self.hitpoints))
class badguy1:
'Jokes on you'
def __init__(self):
self.hitpoints = 80
self.AD = 20
self.expworth = 10
self.isAlive = True
def attack(self,target):
self.attack = self.AD
target.hitpoints = target.hitpoints - self.attack
def printStat(self):
print(self.hitpoints)
def counterattack(self,target):
target.hitpoints = target.hitpoints - self.AD
def expgain(recp,givE): #recp = recipient; givE = person donating experience after demise
recp.exp = recp.exp + givE.expworth
print(recp.exp)
def lvlUp(in1):
if in1.exp >= in1.threshold:
in1.lvl = in1.lvl + 1
else:
pass
def isAliveTest(testin):
if testin.hitpoints > 0:
testin.isAlive = True
else:
testin.isAlive = False
def CombatModule(fighter,fightee): #Fighter initiates fight
print("What is your first strike?")
choice = input("X for a basic strike, Y for a advanced strike")
if choice == "X" or "x":
fighter.basicattack(fightee)
print("Target HP: %d" % fightee.hitpoints)
elif choice == "Y" or "y":
fighter.heavyattack(fightee)
print("Target HP: %d" % fightee.hitpoints)
else:
print("Sorry you aren't able to do that")
if fightee.isAlive == True:
fightee.attack(fighter)
print("You've been struck")
print("Current HP: %d" % fighter.hitpoints)
else:
pass
def encounterModule(attacker,attackee):
while True:
if attacker.isAlive == True:
if attackee.isAlive == True:
CombatModule(attacker,attackee)
else:
print("The target is dead!")
break
else:
print("You have died!")
break
print("The hero's name will be %s" % nameHero)
me = Hero()
me.name = nameHero
en = badguy1()
encounterModule(me,en)
ja so verstehe ich nicht, warum es diesen Fehler zu werfen. Der Code läuft nach 2 Durchläufen durch die CombatModule-Funktion gut, dann wirft er beim zweiten Durchlauf diesen Fehler.
Bitte geben Sie eine [mcve] ein und erwägen Sie, sich an https://www.python.org/dev/peps/pep-0008/ zu halten (oder zumindest Konsistenz). – jonrsharpe
Ja, versucht, in einem kleineren Maßstab zu reproduzieren, tut mir leid, es ist ein großer Block von Code, aber das ist nur die Möglichkeit, das Problem zu reproduzieren. Hier ist eine repl.it-Shell zum Reproduzieren. https://repl.it/CNRk/34 –