from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) import math class Constants(BaseConstants): name_in_url = 'survey' players_per_group = None num_rounds = 1 treatment = 0 score_param=4000 correct_answer=132000 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): # age = models.IntegerField(label='What is your age?', min=13, max=125) def set_fin_payoff(self): self.abserror=abs(self.Answer-Constants.correct_answer) self.check=(1 - self.abserror / Constants.score_param) self.payoff = 400* 0.6 * max(0, (1 - self.abserror / Constants.score_param)) self.payoff2 = math.ceil(100*0.6 * max(0, (1 - self.abserror / Constants.score_param)))/100 abserror = models.FloatField(min=0, initial=None) payoff2 = models.FloatField(min=0, initial=None) Answer = models.IntegerField() check = models.FloatField() prolific_id = models.StringField(default=str(" ")) consent = models.BooleanField(widget=widgets.CheckboxInput(), initial=False )