from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) author = 'Salim Nuhu' doc = """ This is the CoP Experiment """ import random class Constants(BaseConstants): name_in_url = 'COP_Study_6' players_per_group = 2 num_rounds = 3 endowment = c(100) multiplication_factor = 3 shocks = [0, 3] random_return = random.choice(shocks) complist = [0.1, 0.3, 0.5] computer_selects = random.choice(complist) #instructions_template = 'COP_Experiment/instructions.html' class Subsession(BaseSubsession): def creating_session(self): #self.group_randomly(fixed_id_in_group=True) for group in self.get_groups(): players = group.get_players() players.reverse() group.set_players(players) #for group in self.get_groups(): # players = group.get_players() # players.reverse() # group.set_players(players) class Group(BaseGroup): sent_amount = models.CurrencyField( min=0, max=Constants.endowment, label=''' I would like to send P2 (the computer) ''', ) #tripled = models.CurrencyField(c(3) * c(sent_amount) #) sent_back_amount = models.CurrencyField( min=c(0), max= Constants.endowment*Constants.multiplication_factor, label=''' I would like to send P1 ''', ) amount_demanded = models.CurrencyField( min=0, label=''' And I would like to request back from P2 (the computer) ''', ) class Player(BasePlayer): def role(self): if self.id_in_group == 1: return 'Sender' if self.id_in_group == 2: return 'Computer'