from otree.api import (BaseConstants, models, BaseSubsession, BaseGroup, BasePlayer) class Constants(BaseConstants): name_in_url = 'two_players_1_period_pair' players_per_group = 2 num_rounds = 1 higher_pay = 20 lower_pay = 10 class Subsession(BaseSubsession): pass class Group(BaseGroup): def set_payoffs(self): p1, p2 = self.get_players() p1.total_score = p1.participant.vars["total_score"] p2.total_score = p2.participant.vars["total_score"] if p1.total_score > p2.total_score: p1.payoff = Constants.higher_pay p1.place = "ראשון" p2.payoff = Constants.lower_pay p2.place = "שני" elif p2.total_score > p1.total_score: p2.payoff = Constants.higher_pay p2.place = "ראשון" p1.payoff = Constants.lower_pay p1.place = "שני" else: p1.payoff = (Constants.higher_pay + Constants.lower_pay) / 2 p1.place = "תיקו" p2.payoff = (Constants.higher_pay + Constants.lower_pay) / 2 p2.place = "תיקו" p1.participant.vars['total_payout'] = p1.payoff p2.participant.vars['total_payout'] = p2.payoff class Player(BasePlayer): total_score = models.FloatField() place = models.StringField()