from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) import random import pdb author = 'Avineil Jain' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'game4' players_per_group = 4 num_rounds = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): def set_payoff(self): crra_dict = {0: (-1000.0,-1.71), 1:(-1.71,-0.95), 2: (-0.95,-0.49), 3: (-0.49,-0.14), 4: (-0.14,0.15), 5: (0.15,0.41), 6: (0.41,0.68), 7: (0.68,0.97), 8: (0.97,1.37), 9: (1.37,1000.0)} self.round_selected = random.randint(1,10) field_items = list(self.__dict__.items()) field_dict = {} for item in field_items: if 'choice' in item[0]: field_dict[item[0]] = item[1] self.lower_r, self.upper_r = crra_dict[9] for i in range(1,10): if(field_dict['choice%d'%(i)]=='B'): self.switching_round = i self.lower_r, self.upper_r = crra_dict[i-1] break frac = self.round_selected/10. self.random_toss = int(random.random()