from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) import random author = 'Your name here' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'Slider_Task' players_per_group = None num_rounds = 10 fixed_costs = c(8) basic_income = social_security = c(10) class Subsession(BaseSubsession): def creating_session(self): for p in self.get_players(): p.treatment = self.session.config['treatment'] p.number1 = random.randint(0, 100) p.number2 = random.randint(0, 100) p.number3 = random.randint(0, 100) p.number4 = random.randint(0, 100) p.number5 = random.randint(0, 100) p.number6 = random.randint(0, 100) p.number7 = random.randint(0, 100) p.number8 = random.randint(0, 100) p.number9 = random.randint(0, 100) p.number10 = random.randint(0, 100) p.number11 = random.randint(0, 100) p.number12 = random.randint(0, 100) p.number13 = random.randint(0, 100) p.number14 = random.randint(0, 100) p.number15 = random.randint(0, 100) p.number16 = random.randint(0, 100) p.number17 = random.randint(0, 100) p.number18 = random.randint(0, 100) p.number19 = random.randint(0, 100) p.number20 = random.randint(0, 100) p.number21 = random.randint(0, 100) p.number22 = random.randint(0, 100) p.number23 = random.randint(0, 100) p.number24 = random.randint(0, 100) p.number25 = random.randint(0, 100) p.number26 = random.randint(0, 100) p.number27 = random.randint(0, 100) p.number28 = random.randint(0, 100) p.number29 = random.randint(0, 100) p.number30 = random.randint(0, 100) p.number31 = random.randint(0, 100) p.number32 = random.randint(0, 100) class Group(BaseGroup): def set_payoffs(self): players = self.get_players() for p in players: p.correct = 0 if p.s1 == p.number1: p.correct = p.correct + 1 if p.s2 == p.number2: p.correct = p.correct + 1 if p.s3 == p.number3: p.correct = p.correct + 1 if p.s4 == p.number4: p.correct = p.correct + 1 if p.s5 == p.number5: p.correct = p.correct + 1 if p.s6 == p.number6: p.correct = p.correct + 1 if p.s7 == p.number7: p.correct = p.correct + 1 if p.s8 == p.number8: p.correct = p.correct + 1 if p.s9 == p.number9: p.correct = p.correct + 1 if p.s10 == p.number10: p.correct = p.correct + 1 if p.s11 == p.number11: p.correct = p.correct + 1 if p.s12 == p.number12: p.correct = p.correct + 1 if p.s13 == p.number13: p.correct = p.correct + 1 if p.s14 == p.number14: p.correct = p.correct + 1 if p.s15 == p.number15: p.correct = p.correct + 1 if p.s16 == p.number16: p.correct = p.correct + 1 if p.s17 == p.number17: p.correct = p.correct + 1 if p.s18 == p.number18: p.correct = p.correct + 1 if p.s19 == p.number19: p.correct = p.correct + 1 if p.s20 == p.number20: p.correct = p.correct + 1 if p.s21 == p.number21: p.correct = p.correct + 1 if p.s22 == p.number22: p.correct = p.correct + 1 if p.s23 == p.number23: p.correct = p.correct + 1 if p.s24 == p.number24: p.correct = p.correct + 1 if p.s25 == p.number25: p.correct = p.correct + 1 if p.s26 == p.number26: p.correct = p.correct + 1 if p.s27 == p.number27: p.correct = p.correct + 1 if p.s28 == p.number28: p.correct = p.correct + 1 if p.s29 == p.number29: p.correct = p.correct + 1 if p.s30 == p.number30: p.correct = p.correct + 1 if p.s31 == p.number31: p.correct = p.correct + 1 if p.s32 == p.number32: p.correct = p.correct + 1 if p.treatment == 1: p.treatment_name = "control" p.payoff = c(p.correct) - Constants.fixed_costs if p.treatment == 2: p.treatment_name = "basic_income" p.payoff = c(p.correct) + Constants.basic_income - Constants.fixed_costs if p.treatment == 3: p.treatment_name = "social_security" if p.choosetowork == True: p.payoff = c(p.correct) - Constants.fixed_costs if p.choosetowork == False: p.payoff = Constants.social_security - Constants.fixed_costs if p.payoff < c(0): p.payoff = c(0) class Player(BasePlayer): number1 = models.IntegerField() number2 = models.IntegerField() number3 = models.IntegerField() number4 = models.IntegerField() number5 = models.IntegerField() number6 = models.IntegerField() number7 = models.IntegerField() number8 = models.IntegerField() number9 = models.IntegerField() number10 = models.IntegerField() number11 = models.IntegerField() number12 = models.IntegerField() number13 = models.IntegerField() number14 = models.IntegerField() number15 = models.IntegerField() number16 = models.IntegerField() number17 = models.IntegerField() number18 = models.IntegerField() number19 = models.IntegerField() number20 = models.IntegerField() number21 = models.IntegerField() number22 = models.IntegerField() number23 = models.IntegerField() number24 = models.IntegerField() number25 = models.IntegerField() number26 = models.IntegerField() number27 = models.IntegerField() number28 = models.IntegerField() number29 = models.IntegerField() number30 = models.IntegerField() number31 = models.IntegerField() number32 = models.IntegerField() s1 = models.IntegerField() s2 = models.IntegerField() s3 = models.IntegerField() s4 = models.IntegerField() s5 = models.IntegerField() s6 = models.IntegerField() s7 = models.IntegerField() s8 = models.IntegerField() s9 = models.IntegerField() s10 = models.IntegerField() s11 = models.IntegerField() s12 = models.IntegerField() s13 = models.IntegerField() s14 = models.IntegerField() s15 = models.IntegerField() s16 = models.IntegerField() s17 = models.IntegerField() s18 = models.IntegerField() s19 = models.IntegerField() s20 = models.IntegerField() s21 = models.IntegerField() s22 = models.IntegerField() s23 = models.IntegerField() s24 = models.IntegerField() s25 = models.IntegerField() s26 = models.IntegerField() s27 = models.IntegerField() s28 = models.IntegerField() s29 = models.IntegerField() s30 = models.IntegerField() s31 = models.IntegerField() s32 = models.IntegerField() correct = models.IntegerField() treatment = models.IntegerField() treatment_name = models.StringField() choosetowork = models.BooleanField()