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_c' 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='你第一次掷出的点数是什么?请填在下方的空格中', max=6, min=1) final_die = models.IntegerField() all_dice = models.StringField() Alipay = models.StringField(label='你的支付宝账号') email = models.StringField(label='你的邮箱或手机号') income = models.StringField(label='4.你的家庭年收入') seven11 = models.StringField(initial='英语') 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='中文') 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='选填') 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(initial='选填') 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='英语') 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='中文') 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='选填') 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='选填') 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='英语') 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='中文') 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='选填') 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='选填') 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='英语') 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='中文') 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='选填') 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='选填') 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='5. 此题请留白') Choi_1 = models.IntegerField() Choi_2 = models.IntegerField() Choi_3 = models.IntegerField() Choi_4 = models.IntegerField() Choi_5 = models.IntegerField() Choi_6 = models.IntegerField() Choi_7 = models.IntegerField() Choi_8 = models.IntegerField() Choi_9 = models.IntegerField() Choi_10 = models.IntegerField() Choi_11 = models.IntegerField() Choi_12 = models.IntegerField() Choi_13 = models.IntegerField() Choi_14 = models.IntegerField() Choi_15 = models.IntegerField() Choi_16 = models.IntegerField() Choi_17 = models.IntegerField() Choi_18 = models.IntegerField() Choi_19 = models.IntegerField() Choi_20 = models.IntegerField() Choi_21 = models.IntegerField() Choi_22 = models.IntegerField() Choi_23 = models.IntegerField() Choi_24 = models.IntegerField() Choi_25 = models.IntegerField() Choi_26 = models.IntegerField() Choi_27 = models.IntegerField() age = models.IntegerField(label='1.年龄', max=60, min=18) gender = models.StringField(choices=[['Male', '男'], ['Female', '女']], label='2.性别', widget=widgets.RadioSelectHorizontal) education = models.StringField(choices=[['Graduate School (PHD/MD/JD)', '研究生(博士)'], ['Graduate School (Master)', '研究生(硕士)'], ['College (BA/BS)', '本科(学士)'], ['High School', '高中'], ['Middle School', '初中'], ['Other', '以上都不是(其他)']], label='3.教育水平', widget=widgets.RadioSelect) English_test_1 = models.StringField(blank=True, label='6.你四级成绩') English_test_2 = models.StringField(blank=True, label='7.你的六级成绩') English_test_3 = models.StringField(blank=True, label='7.你通过的其他的英语考试') last_name = models.StringField(label='你的姓氏') my_method = my_method