from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) import random author = 'Claudia Marangon' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'risk_elicitation' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): def creating_session(self): players = [] for p in self.get_players(): p.succ=random.randint(0,1) players.append(p) p.participant.vars['chosen']=0 n_p = len(players)-1 n = random.randint(0, n_p) ch =players[n] ch.chosen=1 ch.participant.vars['chosen']=1 pass class Group(BaseGroup): pass class Player(BasePlayer): chosen = models.IntegerField() risk_elic=models.FloatField( min=0, max=5 ) succ = models.IntegerField() def set_payoff(self): if self.chosen==1 and self.succ==1: self.participant.vars['succ']=1 self.payoff=2.5*self.risk_elic+10-self.risk_elic self.participant.vars['risk_pay'] = self.payoff elif self.chosen==1 and self.succ==0: self.participant.vars['succ'] = 0 self.payoff = 10 - self.risk_elic self.participant.vars['risk_pay'] = self.payoff else: self.payoff=0 self.participant.vars['succ'] = 0 self.participant.vars['risk_pay']=self.payoff+10 pass