class GameCharacter(object):
__name = ""
__health = 0
__experience = 0
def __init__(self, name, health, experience):
self.__name = name
self.__health = health
self.__experience = experience
def getName(self):
return self.__name
def adventure( e ):
self.__experience += e
def __str__(self):
return self.__name+ " is a " + str(type(self)) + " with: \n HEALTH: " \
+ str(self.__health) + " and EXPERIENCE: " + str(self.__experience)
gc = GameCharacter("gc", 10, 20)
print(gc)
class Wizard(GameCharacter):
__spells = {}
__knowledge = 0
def __init__(self, name, health, experience, spells, knowledge):
super().__init__(name, health, experience)
self.__spells = spells
self.__knowledge = knowledge
def __str__(self):
return (super().__str__() + "\n SPELLS: " + str(self.__spells) \
+ " and KNOWLEDGE: " + str(self.__knowledge))
def learn( k ):
self.__knowledge += k
# This method returns damage amount which is calculated as follows:
# select a random spell from the dictionary of spells using
# the knowledge value as the range, damage = potency of spell
def castSpell():
#?????
pass
class Warrior(GameCharacter):
__weapons = {}
__skill = 0
def __init__(self, name, health, experience, spells, skill):
pass
def __str__(self):
return "This needs to be implemented..."
#this method updates the value of __skill by s
def train( s ):
pass
# This method returns damage amount which is calculated as follows:
# select a random weapon from the dictionary of weapons using
# the skill value as the range, damage = strength of weapon
def useWeapon():
pass
wiz1 = Wizard("Wizzy", 100, 50, {}, 5 )
print(wiz1)
warr1 = Warrior("Warry", 100, 75, {}, 10)
print (warr1)
class AdventureGame():
#initializes the game characters
def __init__(self, wizard, warrior):
pass
#returns a string representing information about the game characters
def __str__(self):
pass
#generates a random number in range 0-5 for wizard: wizard gains knowledge by this much
#generates a random number in range 0-5 for warrior: warrior gains strength by this much
def adventure(self):
pass
#generates a random number in range 0-5 for wizard: wizard loses knowledge by this much
#generates a random number in range 0-5 for warrior: warrior loses strength by this much
def peril(self):
pass
#wizard casts a spell
#warrior draws a weapon
#return the winner - who has more health, or tie --> wizard|warrior|tie
def battle(self):
pass
I tried to compile this code to the py 2.7.11 but it is giving this output
gc is a <class '__main__.GameCharacter'> with:
HEALTH: 10 and EXPERIENCE: 20
Traceback (most recent call last):
File "C:/Users/Muhammad Danial/Desktop/sample.py", line 76, in <module>
wiz1 = Wizard("Wizzy", 100, 50, {}, 5 )
File "C:/Users/Muhammad Danial/Desktop/sample.py", line 34, in __init__
super().__init__(name, health, experience)
TypeError: super() takes at least 1 argument (0 given)
Anybody here to point out my mistake. I think there is a missing part in the code. May be it is written in latest version which caused this error. I tried to pass the arguments in the super but every time faced a new kind of error.