from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) import random author = 'Robizon' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'tipped_workers_customer' players_per_group = None part_0_length=2 #consent part_1_length=2 #instructions part_2_length=2 #quiz part_3_length=5 #counting task part_4_length=9 #risk task num_rounds = part_0_length+part_1_length+part_2_length+part_3_length+part_4_length box_length=100 chunks=10 class Subsession(BaseSubsession): def creating_session(self): if self.round_number==1: for p in self.get_players(): p.participant.vars['rounds']=[1, 100, 100, 100, 100, 100] p.participant.vars['number_of_smiles']=[random.randint(0, Constants.box_length) for x in range(Constants.part_3_length)] p.participant.vars['list_of_smiles']=[list(random.sample([0]*(Constants.box_length-x)+[1]*x, Constants.box_length)) for x in p.participant.vars['number_of_smiles']] p.participant.vars['answered_list_p1']=[] p.participant.vars['correct']=[[0]*Constants.box_length for i in range(0, Constants.part_3_length)] p.participant.vars['image_id']=[['image_{}'.format(i) for i in range(Constants.chunks*i, Constants.chunks*(i+1))] for i in range(Constants.chunks)] p.participant.vars['val_id']=[[i for i in range(Constants.chunks*i, Constants.chunks*(i+1))] for i in range(Constants.chunks)] p.participant.vars['risk_list']=list(range(10, 100, 10)) random.shuffle(p.participant.vars['risk_list']) class Group(BaseGroup): pass class Player(BasePlayer): fixed_amount=models.IntegerField() lottery=models.IntegerField() quiz_1=models.IntegerField(widget=widgets.RadioSelect) quiz_2=models.IntegerField(widget=widgets.RadioSelect)