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 = 'Mturk_D5_agent' players_per_group = None num_rounds = 1 roundnumber = 15 tasknumber = 2 pot = c(130) highpayoff = c(40) lowpayoff = c(0) outcome = '$0' probability_c0 = 3 probability_c0com = 97 probability_c1 = 50 probability_c1com = 50 probability_c2 = 70 probability_c2com = 30 probability_c3 = 80 probability_c3com = 20 probability_c4 = 90 probability_c4com = 10 probability_c5 = 97 probability_c5com = 3 grid1 = c(13) grid2 = c(12) grid3 = c(15) grid4 = c(11) grid5 = c(14) grid6 = c(13) grid7 = c(14) grid8 = c(11) grid9 = c(15) grid10 = c(8) randomnumber_lottery = random.randint(0, 100) nameperformer = 'Priya' pronounperformer = 'She' pronounperformer1 = 'she' Pronounperformer = 'her' ageperformer = '20' Pronounperformer1 = 'her' class Subsession(BaseSubsession): def creating_session(self): if self.round_number == 1: for p in self.get_players(): p.randomnumber_lottery = random.randint(0, 100) def set_gender(self): self.Gender = self.participant.vars['gender1'] def set_age(self): self.Age = self.participant.vars['age'] class Group(BaseGroup): pass class Player(BasePlayer): randomnumber_lottery = models.IntegerField() genderap = models.IntegerField() ageap = models.IntegerField() def genderapp(self): self.genderap = self.participant.vars['gender1'] def ageapp(self): self.ageap = self.participant.vars['age'] Q1_correct = models.BooleanField() Q2_correct = models.BooleanField() Q3_correct = models.BooleanField() Q4_correct = models.BooleanField() Q5_correct = models.BooleanField() Q6_correct = models.BooleanField() Q7_correct = models.BooleanField() Q8_correct = models.BooleanField() Q9_correct = models.BooleanField() Q10_correct = models.BooleanField() Grid1 = models.IntegerField() Grid2 = models.IntegerField() Grid3 = models.IntegerField() Grid4 = models.IntegerField() Grid5 = models.IntegerField() Grid6 = models.IntegerField() Grid7 = models.IntegerField() Grid8 = models.IntegerField() Grid9 = models.IntegerField() Grid10 = models.IntegerField() Belief1 = models.CurrencyField ( choices=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ) Belief2 = models.IntegerField ( choices = [ [1, 'Yes'], [2, 'No'], ] ) Belief3 = models.IntegerField ( choices=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ) # Decider_pay2 = models.FloatField (min=0, max=10) SelfBelief1 = models.IntegerField ( choices=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ) SelfBelief2 = models.IntegerField ( choices=[ [1, Constants.lowpayoff], [2, Constants.highpayoff], ], widget=widgets.RadioSelectHorizontal ) SelfBelief3 = models.FloatField (min=0, max=100) total = models.IntegerField() problottery = models.IntegerField() profitP = models.CurrencyField() correctQ = models.CurrencyField() final_pay_ran = models.CurrencyField() profitB = models.CurrencyField() final_payoff = models.CurrencyField() def set_payoff1(self): if self.Grid1 == Constants.grid1: self.Q1_correct = 1 * 1 if not self.Grid1 == Constants.grid1: self.Q1_correct = 0 * 0 def set_payoff2(self): if self.Grid2 == Constants.grid2: self.Q2_correct = 1 * 1 if not self.Grid2 == Constants.grid2: self.Q2_correct = 0 * 0 def set_payoff3(self): if self.Grid3 == Constants.grid3: self.Q3_correct = 1 * 1 if not self.Grid3 == Constants.grid3: self.Q3_correct = 0 * 0 def set_payoff4(self): if self.Grid4 == Constants.grid4: self.Q4_correct = 1 * 1 if not self.Grid4 == Constants.grid4: self.Q4_correct = 0 * 0 def set_payoff5(self): if self.Grid5 == Constants.grid5: self.Q5_correct = 1 * 1 if not self.Grid5 == Constants.grid5: self.Q5_correct = 0 * 0 def set_payoff6(self): if self.Grid6 == Constants.grid6: self.Q6_correct = 1 * 1 if not self.Grid6 == Constants.grid6: self.Q6_correct = 0 * 0 def set_payoff7(self): if self.Grid7 == Constants.grid7: self.Q7_correct = 1 * 1 if not self.Grid7 == Constants.grid7: self.Q7_correct = 0 * 0 def set_payoff8(self): if self.Grid8 == Constants.grid8: self.Q8_correct = 1 * 1 if not self.Grid8 == Constants.grid8: self.Q8_correct = 0 * 0 def set_payoff9(self): if self.Grid9 == Constants.grid9: self.Q9_correct = 1 * 1 if not self.Grid9 == Constants.grid9: self.Q9_correct = 0 * 0 def set_payoff10(self): if self.Grid10 == Constants.grid10: self.Q10_correct = 1 * 1 if not self.Grid10 == Constants.grid10: self.Q10_correct = 0 * 0 def set_payoff_total(self): if self.Q1_correct + self.Q2_correct + self.Q3_correct + self.Q4_correct + self.Q5_correct + self.Q6_correct + self.Q7_correct + self.Q8_correct + self.Q9_correct + self.Q10_correct == 10: self.total = 10 if self.Q1_correct + self.Q2_correct + self.Q3_correct + self.Q4_correct + self.Q5_correct + self.Q6_correct + self.Q7_correct + self.Q8_correct + self.Q9_correct + self.Q10_correct == 9: self.total = 9 if self.Q1_correct + self.Q2_correct + self.Q3_correct + self.Q4_correct + self.Q5_correct + self.Q6_correct + self.Q7_correct + self.Q8_correct + self.Q9_correct + self.Q10_correct == 8: self.total = 8 if self.Q1_correct + self.Q2_correct + self.Q3_correct + self.Q4_correct + self.Q5_correct + self.Q6_correct + self.Q7_correct + self.Q8_correct + self.Q9_correct + self.Q10_correct == 7: self.total = 7 if self.Q1_correct + self.Q2_correct + self.Q3_correct + self.Q4_correct + self.Q5_correct + self.Q6_correct + self.Q7_correct + self.Q8_correct + self.Q9_correct + self.Q10_correct == 6: self.total = 6 if self.Q1_correct + self.Q2_correct + self.Q3_correct + self.Q4_correct + self.Q5_correct + self.Q6_correct + self.Q7_correct + self.Q8_correct + self.Q9_correct + self.Q10_correct == 5: self.total = 5 if self.Q1_correct + self.Q2_correct + self.Q3_correct + self.Q4_correct + self.Q5_correct + self.Q6_correct + self.Q7_correct + self.Q8_correct + self.Q9_correct + self.Q10_correct == 4: self.total = 4 if self.Q1_correct + self.Q2_correct + self.Q3_correct + self.Q4_correct + self.Q5_correct + self.Q6_correct + self.Q7_correct + self.Q8_correct + self.Q9_correct + self.Q10_correct == 3: self.total = 3 if self.Q1_correct + self.Q2_correct + self.Q3_correct + self.Q4_correct + self.Q5_correct + self.Q6_correct + self.Q7_correct + self.Q8_correct + self.Q9_correct + self.Q10_correct == 2: self.total = 2 if self.Q1_correct + self.Q2_correct + self.Q3_correct + self.Q4_correct + self.Q5_correct + self.Q6_correct + self.Q7_correct + self.Q8_correct + self.Q9_correct + self.Q10_correct == 1: self.total = 1 if self.Q1_correct + self.Q2_correct + self.Q3_correct + self.Q4_correct + self.Q5_correct + self.Q6_correct + self.Q7_correct + self.Q8_correct + self.Q9_correct + self.Q10_correct == 0: self.total = 0 def set_lottery(self): if self.total == 10: self.problottery = Constants.probability_c5 if self.total == 9: self.problottery = Constants.probability_c5 if self.total == 8: self.problottery = Constants.probability_c4 if self.total == 7: self.problottery = Constants.probability_c4 if self.total == 6: self.problottery = Constants.probability_c3 if self.total == 5: self.problottery = Constants.probability_c3 if self.total == 4: self.problottery = Constants.probability_c2 if self.total == 3: self.problottery = Constants.probability_c2 if self.total == 2: self.problottery = Constants.probability_c1 if self.total == 1: self.problottery = Constants.probability_c1 if self.total == 0: self.problottery = Constants.probability_c0 if self.total == None: self.problottery = Constants.probability_c0 def set_profitp1(self): if self.problottery >= self.randomnumber_lottery: self.profitP = Constants.highpayoff if not self.problottery >= self.randomnumber_lottery: self.profitP = Constants.lowpayoff