from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import random class Wait(WaitPage): def after_all_players_arrive(self): self.group.order1 = random.randint(1, 6) self.group.order2 = random.randint(1, 6) class Choice_Order1(Page): def is_displayed(self): if self.player.id_in_group == 1: return self.group.order1 == 1 if self.player.id_in_group == 2: return self.group.order2 == 1 form_model = "player" form_fields = ['color'] class Choice_Order2(Page): def is_displayed(self): if self.player.id_in_group == 1: return self.group.order1 == 2 if self.player.id_in_group == 2: return self.group.order2 == 2 form_model = "player" form_fields = ['color'] class Choice_Order3(Page): def is_displayed(self): if self.player.id_in_group == 1: return self.group.order1 == 3 if self.player.id_in_group == 2: return self.group.order2 == 3 form_model = "player" form_fields = ['color'] class Choice_Order4(Page): def is_displayed(self): if self.player.id_in_group == 1: return self.group.order1 == 4 if self.player.id_in_group == 2: return self.group.order2 == 4 form_model = "player" form_fields = ['color'] class Choice_Order5(Page): def is_displayed(self): if self.player.id_in_group == 1: return self.group.order1 == 5 if self.player.id_in_group == 2: return self.group.order2 == 5 form_model = "player" form_fields = ['color'] class Choice_Order6(Page): def is_displayed(self): if self.player.id_in_group == 1: return self.group.order1 == 6 if self.player.id_in_group == 2: return self.group.order2 == 6 form_model = "player" form_fields = ['color'] class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs() class Results(Page): def vars_for_template(self): p1 = self.group.get_player_by_id(1) p2 = self.group.get_player_by_id(2) p1_color = p1.color p2_color = p2.color payoff = p1.payoff if p1.match == True: outcome = "match" else: outcome = "mismatch" if self.player.id_in_group == 1: return {'own_choice': p1_color, 'others_choice': p2_color, 'payoff': payoff, 'outcome': outcome} if self.player.id_in_group == 2: return {'own_choice': p2_color, 'others_choice': p1_color, 'payoff': payoff, 'outcome': outcome} page_sequence = [ Wait, Choice_Order1, Choice_Order2, Choice_Order3, Choice_Order4, Choice_Order5, Choice_Order6, ResultsWaitPage, Results ]