import random from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) author = 'Your name here' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'n_comp_M3' players_per_group = None num_rounds = 3 class Subsession(BaseSubsession): def creating_session(self): if self.round_number == 1: for player in self.get_players(): ### [Money,Prob,[List of Certain amount]] player.participant.vars['amount'] = [[20,40,60],[20,40,80],[20,60,80],[40,60,80],[5,25,75],[5,25,95],[5,75,95],[25,75,95],[5,40,70],[5,40,90],[5,70,90],[40,70,90],[10,30,60],[10,30,95],[10,60,95],[30,60,95]] player.participant.vars['amount_2'] = random.shuffle(player.participant.vars['amount']) for player in self.get_players(): player.participant.vars['randomize'] = [1,0,1] player.participant.vars['list_M3']=player.participant.vars['amount'][0:3] player.participant.vars['list_M3_choice']=-1 player.participant.vars['list_M3_preferred']=[] player.participant.vars['list_M3_N_preferred']=[] player.participant.vars['choice_M3']=[] player.participant.vars['result_part1_cards']=[] player.participant.vars['result_part1_payoff']=-1 player.participant.vars['result_part1_random']= random.randint(1,20) player.participant.vars['result_part1_baseline']=0 player.participant.vars['result_part1_option1option2']=-1 player.participant.vars['result_part2_cards']=[] player.participant.vars['result_part2_random']= random.randint(1,20) player.participant.vars['result_part2_payoff']=-1 player.participant.vars['result_part2_option1option2']=-1 player.participant.vars['result_M3']= [] player.participant.vars['result_M3_choice']=-1 player.participant.vars['result_survey_M3']= [] player.participant.vars['dontcare_M3']= [] class Group(BaseGroup): pass class Player(BasePlayer): Choice = models.IntegerField(min=0) lotteryA = models.StringField(min=0) lotteryB = models.StringField(min=0) Choice2 = models.IntegerField(min=0) lotteryA2 = models.StringField(min=0) lotteryB2 = models.StringField(min=0) Choice3 = models.IntegerField(min=0) lotteryA3 = models.StringField(min=0) lotteryB3 = models.StringField(min=0) Dontcare1 = models.IntegerField(min=0) Dontcare2 = models.IntegerField(min=0) Dontcare3 = models.IntegerField(min=0)