Compare a variable for two players in a group

55 views
Skip to first unread message

sahar sangi

unread,
May 21, 2022, 10:09:21 AM5/21/22
to oTree help & discussion
Hello Chris and all,
I have managed to determine my player's time spent in each round and sum of them in total rounds. Now I want to get the total time spent of the other player in the group and compare them to set the winner. I did as following but it does not work. Can you tell where I did wrong? 


class Player(BasePlayer):
num_failed_attempts = models.IntegerField(initial=0)
correct = models.IntegerField()
timeSpent = models.FloatField(initial=0)
Total_timeSpent = models.FloatField(initial=0)
cumul = models.FloatField(initial=0)
payoff1 = models.IntegerField(min=0, max=50)
Time1 =models.FloatField(initial=0)
Time2 = models.FloatField(initial=0)
payoff11 = models.IntegerField(min=0, max=50)
payoff12 = models.IntegerField(min=0, max=50)



def set_winner(player: Player):
p1 = player.get_players_by_id(1)
p2 = player.get_players_by_id(2)
for p in player.get_players():
p.Total_timeSpent = p.session.vars['Total_timeSpent']
if p == p1:
p.Total_timeSpent = p1.Total_timeSpent
p.payoff1 = p1.payoff1
if p == p2:
p.Total_timeSpent = p2.Total_timeSpent
p.payoff1 = p2.payoff1

if p1.Total_timeSpent > p2.Total_timeSpent:
return dict(
payoff1=p1.payoff1 == 0 and p2.payoff1 == 10
)
if p1.Total_timeSpent < p2.Total_timeSpent:
return dict(
payoff1=p1.payoff1 == 10 and p2.payoff1 == 0
)
if p1.Total_timeSpent == p2.Total_timeSpent:
return dict(
payoff1=p1.payoff1 == p2.payoff1 == 5
)

And in page.py: 

class Final_Result1(Page):
form_model = 'player'
form_fields = [ "Total_timeSpent","payoff1"]

@staticmethod
def is_displayed(player):
return player.round_number % 10 == 0

def vars_for_template(player):

if player.round_number % 10 == 0:
player.Time1 = p1.Total_timeSpent
player.Time2 = p2.Total_timeSpent
player.payoff11 = p1.payoff1
player.payoff12 = p2.payoff1

The error is p1 is not defined. 

Could you help me with this?
Best regards,
Sahar

Reply all
Reply to author
Forward
0 new messages