This code, put into a Python console, returns an expected value of 67.2:
Code: Select all
class bplayer(object):
def __init__(self, name, stats, tags={}):
self.name = name
self.stat = stats
self.tags = tags
def playvalue(self, game):
v = 0
for i in range(len(self.stat)):
v += game.stat[i] * self.stat[i]
s = 0
for i in range(len(game.stat)):
s += game.stat[i]
v = v / (s*5) * 100
for i in game.tags:
if i in self.tags:
v += self.tags[i]
return(v)
class bgame(object):
def __init__(self, name, stats, info, tags):
self.name = name
self.stat = stats
self.tags = tags
tim = bplayer('Tim', [4,4,2,4,3,4,5,1])
halma = bgame('Halma', [3,3,4,2,4,5,2,2], [(2,7),(30,30),3,7,7], ['nodice'])
print(tim.playvalue(halma))
Code: Select all
init python:
class bplayer(object):
def __init__(self, name, stats, tags={}):
self.name = name
self.stat = stats
self.tags = tags
def playvalue(self, game):
v = 0
for i in range(len(self.stat)):
v += game.stat[i] * self.stat[i]
s = 0
for i in range(len(game.stat)):
s += game.stat[i]
v = v / (s*5) * 100
for i in game.tags:
if i in self.tags:
v += self.tags[i]
return(v)
class bgame(object):
def __init__(self, name, stats, info, tags):
self.name = name
self.stat = stats
self.tags = tags
tim = bplayer('Tim', [4,4,2,4,3,4,5,1])
halma= bgame('Halma', [3,3,4,2,4,5,2,2], [(2,7),(30,30),3,7,7], ['nodice'])
label start:
$ pv = tim.playvalue(halma)
"Tim has [pv]\%."
I even get an error if I don't calculate pv first and instead put the function call itself in the say statement, being told that the attribute "playvalue" does not exist for "tim".