from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) import random from random import randint author = 'Castagnetti_Sharma' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'Ex_mainexperiment_welcome' players_per_group = None num_rounds = 1 showupfee = c(3) class Subsession (BaseSubsession): pass #def set_rand_agent(self): # players = self.get_players() # return [p.participant.id_in_session for p in players if p.id_in_group==2] #def set_rand_agent_new(self): #players = self.set_rand_agent() # p2 = self.get_player_by_id(2) #return [p for p in players if not p == self.p2.participant.id_in_session] # def creating_session(self): #for g in self.get_groups(): # p2 = g.get_player_by_id(2) # others = [x for x in self.set_rand_agent() if p2.participant.id_in_session!=x] # g.rand_agent = random.choice(others) # def rand_payoff_agent1(self): # p2 = [p for p in self.get_players() if p.id_in_group == 2 ] # for x in p2: # all_groups = self.get_groups() # match = [g for g in all_groups if x.participant.id_in_session==g.rand_agent] # x.final_pay_ran = sum([g.random_payoff for g in match]) or 0 class Group(BaseGroup): pass #def set_payoff(self): # if self.round_number == 1: # p1 = self.get_player_by_id(1) # p2 = self.get_player_by_id(2) #p1.payoff = p2.profitP # p2.payoff = p1.Decider_pay1 # def set_beliefs(self): #if self.round_number == 1: # p1 = self.get_player_by_id(1) # p2 = self.get_player_by_id(2) # p1.correctQ = p2.total # def ran_pay(self): # p1 = self.get_player_by_id(1) # return p1.Decider_pay2 # def ran_pay_final(self): # if self.round_number == 1: # self.random_payoff=self.ran_pay() class Player (BasePlayer): ComputerTerminal = models.IntegerField (min=1, max=20) Gender1 = models.IntegerField ( choices=[ [1, 'Male'], [2, 'Female'],] ) def set_gender(self): self.participant.vars['gender1'] = self.Gender1 Age = models.IntegerField (min=18, max=99) def set_age(self): self.participant.vars['age'] = self.Age Education1 = models.IntegerField ( choices=[ [1, 'Sociology'], [2, 'Commerce'], [3, 'Geography'], [4, 'Economics'], [5, 'Other'],] ) Education2 = models.IntegerField ( choices=[ [1, 'MA year 1'], [2, 'MA year 2'], [3, 'Mphil'], [4, 'PhD'], [5, 'Other'],] ) Country = models.TextField ( widget=widgets.Textarea (attrs={'rows': 1, 'cols': 8}) ) State = models.TextField ( widget=widgets.Textarea (attrs={'rows': 1, 'cols': 8}) ) Language = models.IntegerField ( choices=[ [1, 'Yes'], [2, 'No'], ] ) Religion = models.IntegerField( choices=[ [1, 'Muslim'], [2, 'Hindu'], [3, 'Sikh'], [4, 'Christian'], [5, 'Buddhist'], [6, 'Parsi'], [7, 'Other'], [8, 'Prefer not say'], ] ) Caste = models.IntegerField( choices=[ [1, 'Scheduled Caste'], [2, 'Scheduled Tribe'], [3, 'Other backward castes'], [4, 'General'], [5, 'Other'], [6, 'Prefer not to say'], ] ) #def role(self): # if self.id_in_group == 1: # return 'Decider' # if self.id_in_group == 2: # return 'Performer'