from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range from .models import Constants import random class Introduction(Page): def is_displayed(self): return self.round_number == 1 class Instruction(Page): def is_displayed(self): return self.round_number == 1 form_model = 'player' form_fields = ['quiz1'] class Matching(Page): def is_displayed(self): return self.round_number == 1 timeout_seconds = 10 class Matching_result(Page): def is_displayed(self): return self.round_number == 1 class Practice_proposing(Page): def is_displayed(self): return self.round_number == 1 timeout_seconds = 14 class Practice_responding(Page): def is_displayed(self): return self.round_number == 1 def vars_for_template(self): # does_bot_cooperate = random.randint(0, 1) % 2 == 0 me = self.player me.condition() # me.bot_decision = 'Cooperate' if does_bot_cooperate else 'Defect' me.bot_decision = 'Cooperate' return dict( bot_decision=me.bot_decision ) form_model = 'player' form_fields = ['decision'] class Practice_result(Page): def is_displayed(self): return self.round_number == 1 class Game_instruction(Page): def is_displayed(self): return self.round_number == 1 class Game_proposing0(Page): def is_displayed(self): return self.round_number == 1 timeout_seconds = 10 class Game_proposing1(Page): def is_displayed(self): return self.round_number == 1 timeout_seconds = 13 class Game_proposing2(Page): def is_displayed(self): return self.round_number == 1 timeout_seconds = 15 class Game_proposing3(Page): def is_displayed(self): return self.round_number == 1 timeout_seconds = 11 class Game_proposing4(Page): def is_displayed(self): return self.round_number == 1 timeout_seconds = 5 class Game_responding(Page): def vars_for_template(self): me = self.player x = self.round_number - 1 verybad = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] maybebad = [0, 0, 0, 1, 0, 0, 0, 1, 0, 0] me.condition() if me.treatment == 'certain': does_bot_cooperate = verybad[x] else: does_bot_cooperate = maybebad[x] me.bot_decision = 'Cooperate' if does_bot_cooperate else 'Defect' return dict( round_number=self.round_number, bot_decision=me.bot_decision ) form_model = 'player' form_fields = ['decision'] class Game_result(Page): def vars_for_template(self): me = self.player me.set_payoff() me.totalpayoff = sum([me.payoff for me in me.in_all_rounds()]) return dict( round_number=self.round_number, payoff=me.payoff ) form_model = 'player' form_fields = ['nice_or_nasty', 'certainty'] class Survey(Page): def is_displayed(self): return self.round_number == 10 form_model = 'player' form_fields = ['quiz3', 'quiz4', 'quiz5', 'motivation1', 'motivation2', 'motivation3', 'motivation4', 'concentration1', 'concentration2', 'comment', 'sex', 'age'] class End(Page): def is_displayed(self): return self.round_number == 10 def vars_for_template(self): me = self.player me.set_payoff() me.totalpayoff = sum([me.payoff for me in me.in_all_rounds()]) return dict( totalpayoff=me.totalpayoff ) page_sequence = [Introduction, Instruction, Matching, Matching_result, Practice_proposing, Practice_responding, Practice_result, Game_instruction, Game_proposing0, Game_proposing1, Game_proposing2, Game_proposing3, Game_proposing4, Game_responding, Game_result, Survey, End]