from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, Page, WaitPage ) doc = '' class Constants(BaseConstants): name_in_url = 'roll_y_exp2' players_per_group = None num_rounds = 24 resulting_payoff1 = (0.08, 0.01, 0.09, 0.15, 0.6, 0.36, 0.7, 0.7, 0.05, 0, 0.54, 0.2, 0.4, 0, 0.48, 0, 0, 0.2, 0.23, 0, 0, 0.25, 0, 0.5) resulting_payoff2 = (0, 0.05, 0.06, 0, 0.6, 0.12, 0.56, 0, 0, 0, 0.36, 0.5, 1, 1.2, 0.24, 0.1, 0.3, 0, 1.15, 0, 1, 0, 1.15, 0.5) resulting_payoff3 = (0.12, 0.04, 0, 0, 0, 0.48, 0.14, 0, 0, 0, 0.9, 0, 0.8, 0, 0.96, 0.05, 0.6, 0.2, 0, 0.9, 1, 0.25, 0, 0.5) resulting_payoff4 = (0.2, 0.03, 0.12, 0.15, 0.6, 0.6, 0, 0.7, 0.05, 0.75, 0, 0.3, 0.6, 1.2, 0.72, 0.2, 0.15, 0, 0.46, 0, 0, 0, 1.15, 0) resulting_payoff5 = (0.16, 0, 0.03, 0.15, 0, 0.24, 0.4, 0, 0.05, 0.75, 0.18, 0.1, 0.2, 1.2, 0, 0.15, 0.75, 0, 0.92, 0.9, 1, 0, 1.15, 0) resulting_payoff6 = (0.04, 0.02, 0.15, 0, 0, 0, 0.28, 0.7, 0, 0.75, 0.72, 0.4, 0, 0, 1.2, 0.25, 0.45, 0.2, 0.69, 0.9, 0, 0.25, 0, 0) def creating_session(subsession): session = subsession.session subsession.a1 = Constants.resulting_payoff1[subsession.round_number-1] subsession.a2 = Constants.resulting_payoff2[subsession.round_number-1] subsession.a3 = Constants.resulting_payoff3[subsession.round_number-1] subsession.a4 = Constants.resulting_payoff4[subsession.round_number-1] subsession.a5 = Constants.resulting_payoff5[subsession.round_number-1] subsession.a6 = Constants.resulting_payoff6[subsession.round_number-1] class Subsession(BaseSubsession): a1 = models.FloatField() a2 = models.FloatField() a3 = models.FloatField() a4 = models.FloatField() a5 = models.FloatField() a6 = models.FloatField() creating_session = creating_session class Group(BaseGroup): pass def my_method(player): import random s=[] while (len(s)<6): x=random.randint(1,24) if x not in s: s.append(x) player.s1=s[0] player.s2=s[1] player.s3=s[2] player.s4=s[3] player.s5=s[4] player.s6=s[5] class Player(BasePlayer): report_num = models.IntegerField(label='What is the number on the face of your first dice roll? Please enter the number in the space below', max=6, min=1) final_die = models.IntegerField() all_dice = models.StringField() worker_id = models.StringField(label='1.your student ID') assignment_id = models.StringField(label='2.your assignment ID') income = models.StringField(label='3.Your family income per year?') seven11 = models.StringField(initial='English') seven12 = models.IntegerField(max=100, min=0) seven13 = models.IntegerField(max=100, min=0) seven14 = models.IntegerField(max=100, min=0) seven15 = models.IntegerField(max=100, min=0) seven16 = models.IntegerField(max=100, min=0) seven21 = models.StringField(initial='Chinese') seven22 = models.IntegerField(max=100, min=0) seven23 = models.IntegerField(max=100, min=0) seven24 = models.IntegerField(max=100, min=0) seven25 = models.IntegerField(max=100, min=0) seven26 = models.IntegerField(max=100, min=0) seven31 = models.StringField(blank=True, initial='Optional') seven32 = models.StringField(blank=True) seven33 = models.StringField(blank=True) seven34 = models.StringField(blank=True) seven35 = models.StringField(blank=True) seven36 = models.StringField(blank=True) seven41 = models.StringField(blank=True, initial='option') seven42 = models.StringField(blank=True) seven43 = models.StringField(blank=True) seven44 = models.StringField(blank=True) seven45 = models.StringField(blank=True) seven46 = models.StringField(blank=True) nine11 = models.StringField(blank=True) nine12 = models.StringField(blank=True) nine13 = models.StringField(blank=True) nine14 = models.StringField(blank=True, choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) nine21 = models.StringField(blank=True) nine22 = models.StringField(blank=True) nine23 = models.StringField(blank=True) nine24 = models.StringField(blank=True, choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) nine31 = models.StringField(blank=True) nine32 = models.StringField(blank=True) nine33 = models.StringField(blank=True) nine34 = models.StringField(blank=True, choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) ten11 = models.StringField(initial='English') ten12 = models.StringField(choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) ten13 = models.StringField(choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) ten14 = models.StringField(choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) ten15 = models.StringField(choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) ten21 = models.StringField(initial='Chinese') ten22 = models.StringField(choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) ten23 = models.StringField(choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) ten24 = models.StringField(choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) ten25 = models.StringField(choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) ten31 = models.StringField(blank=True, initial='Optional') ten32 = models.StringField(blank=True, choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) ten33 = models.StringField(blank=True, choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) ten34 = models.StringField(blank=True, choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) ten35 = models.StringField(blank=True, choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) ten41 = models.StringField(blank=True, initial='Optional') ten42 = models.StringField(blank=True, choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) ten43 = models.StringField(blank=True, choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) ten44 = models.StringField(blank=True, choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) ten45 = models.StringField(blank=True, choices=[['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], widget=widgets.RadioSelectHorizontal) eleven11 = models.StringField(initial='English') eleven12 = models.IntegerField(max=24, min=0) eleven13 = models.IntegerField(max=24, min=0) eleven14 = models.IntegerField(max=24, min=0) eleven15 = models.IntegerField(max=24, min=0) eleven16 = models.IntegerField(max=24, min=0) eleven17 = models.IntegerField(max=24, min=0) eleven21 = models.StringField(initial='Chinese') eleven22 = models.IntegerField(max=24, min=0) eleven23 = models.IntegerField(max=24, min=0) eleven24 = models.IntegerField(max=24, min=0) eleven25 = models.IntegerField(max=24, min=0) eleven26 = models.IntegerField(max=24, min=0) eleven27 = models.IntegerField(max=24, min=0) eleven31 = models.StringField(blank=True, initial='Optional') eleven32 = models.StringField(blank=True) eleven33 = models.StringField(blank=True) eleven34 = models.StringField(blank=True) eleven35 = models.StringField(blank=True) eleven36 = models.StringField(blank=True) eleven37 = models.StringField(blank=True) eleven41 = models.StringField(blank=True, initial='Optional') eleven42 = models.StringField(blank=True) eleven43 = models.StringField(blank=True) eleven44 = models.StringField(blank=True) eleven45 = models.StringField(blank=True) eleven46 = models.StringField(blank=True) eleven47 = models.StringField(blank=True) twelve11 = models.StringField(initial='English') twelve12 = models.IntegerField(max=24, min=0) twelve13 = models.IntegerField(max=24, min=0) twelve14 = models.IntegerField(max=24, min=0) twelve15 = models.IntegerField(max=24, min=0) twelve21 = models.StringField(initial='Chinese') twelve22 = models.IntegerField(max=24, min=0) twelve23 = models.IntegerField(max=24, min=0) twelve24 = models.IntegerField(max=24, min=0) twelve25 = models.IntegerField(max=24, min=0) twelve31 = models.StringField(blank=True, initial='Optional') twelve32 = models.StringField(blank=True) twelve33 = models.StringField(blank=True) twelve34 = models.StringField(blank=True) twelve35 = models.StringField(blank=True) twelve41 = models.StringField(blank=True, initial='Optional') twelve42 = models.StringField(blank=True) twelve43 = models.StringField(blank=True) twelve44 = models.StringField(blank=True) twelve45 = models.StringField(blank=True) s1 = models.IntegerField() s2 = models.IntegerField() s3 = models.IntegerField() s4 = models.IntegerField() s5 = models.IntegerField() s6 = models.IntegerField() total_payoff = models.CurrencyField() total_payoff_dollar = models.CurrencyField() test_lie1 = models.StringField(blank=True, label='4. Please leave this item blank.') my_method = my_method