[Tutor] Objects & Classes...
Jack Cruzan
jcruzan at gmail.com
Mon Jan 17 21:51:04 CET 2005
Ok, so each character has his name, race, his stats, his skills, and his
gear.
since the name and character is unique there is no need for a class
these things.
hmmm maybe I am conceptualizing this wrong.
would each new character then be a dictonary? Made up of different
elements or would the character be a list? Since each character is
basically just a list of stats... the stats get modified up and down by
race and certain gear... am I conceptulizing this correctly?
On Mon, 2005-01-17 at 10:59 -0800, Chad Crabtree wrote:
> Jack Cruzan wrote:
>
> >class Character:
> >
> > def __init__(self, name = ' ', race = 'Human', magic = 'None'):
> >
> > self.name=name
> >
> > self.race=race
> >
> > self.magic=magic
> >
> >
> I know your going to need some other stuff.
>
> class NewCharacter(Character):
> def __init__(self,stats,*args,**kwds):
> super(Character,self).__init__(*args,**kwds)
> self.stats=stats
>
> super is a function that calls a specific function from a parent
> class.
> This way you can still use the previous __init__ code and then extend
>
> it. *args represents a tuple of arguments of unspecified length or
> type, **kwds is a dictionary of named arguments, like name='' like
> above. That way you capture the keywords needed to pass to the
> parent
> class so that name race magic is still updated at class
> instantiation.
>
> This way you can extend classes. So you *could* subclass Character
> as a
> Dwarf, a Troll etc so that each class already knows about being a
> Dwarf,
> eg special abilities skill bonuses and such. If you don't understand
>
> this, that's ok it took me quite a while. However once I got this it
>
> made certain tasks much easier. I could figure out how to do
> something,
> then never need to think about how it works later in the project.
>
> >def createChar(book):
> >
> > name = raw_input("Enter your character's name. ")
> >
> > race = int(raw_input("What race? (1: Human, 2: Elf, 3: Ork, 4:
> Troll,
> >
> >5: Dwarf,)"))
> >
> > book[name] = race
> >
> >
> >
> try this (untested)
>
> races={1:'Human',2:'Elf',3:'Ork',4:'Troll',5:'Dwarf'} #this is a
> dictionary
> book[name]=races[race]
> print "The Name is " + name
> print "The Race is " + book[name]
>
> >def loadChar(book):
> >
> > import os
> >
> > filename = 'SRchargen.dat'
> >
> > if os.path.exists(filename):
> >
> > store = open(filename,'r')
> >
> > while store:
> >
> > name = store.readline().strip()
> >
> > race = store.readline().strip()
> >
> > book[name] = race
> >
> > else:
> >
> > store = open(filename, 'w')
> >
> > store.close
> >
> >
> I'm not sure why this doesn't work, perhaps you should post what is
> in
> 'SRchargen.dat'. You do know that this format will only work with
> one
> character? Do you get an error? If so post that traceback message.
>
> Anyway good luck.
>
>
>
> __________________________________
> Do you Yahoo!?
> Yahoo! Mail - now with 250MB free storage. Learn more.
> http://info.mail.yahoo.com/mail_250
More information about the Tutor
mailing list