from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range from .models import Constants import statistics import math #1周目 class NextRound1(Page): pass class GroupWaiting1(WaitPage): wait_for_all_groups = True class VictimQ1(Page): form_model = 'player' form_fields = ['feelings1_1'] def is_displayed(self): return self.player.id_in_group == 1 class VictimQ2(Page): form_model = 'player' form_fields = ['feelings1_1'] def is_displayed(self): return self.player.id_in_group == 2 class VictimQ3(Page): form_model = 'player' form_fields = ['feelings1_1'] def is_displayed(self): return self.player.id_in_group == 3 class IncomeDivisionQ1(Page): form_model = 'group' form_fields = ['divisionQ1'] def is_displayed(self): return self.player.id_in_group == 1 class IncomeDivisionQ2(Page): form_model = 'group' form_fields = ['divisionQ2'] def is_displayed(self): return self.player.id_in_group == 2 class IncomeDivisionQ3(Page): form_model = 'group' form_fields = ['divisionQ3'] def is_displayed(self): return self.player.id_in_group == 3 class IncomeDivisionWaiting1(WaitPage): pass class IncomeDivisionR1(Page): form_model = 'player' form_fields = ['feelings1_2'] def vars_for_template(self): divisionVR1 = round (((self.group.divisionQ1 + self.group.divisionQ2 + self.group.divisionQ3)/3),0) divisionOR1 = (10 - divisionVR1)/2 return dict( divisionVR1 = divisionVR1, divisionOR1 = divisionOR1) class Game1Info(Page): pass class Game1(Page): timeout_seconds = 20 form_model = 'player' form_fields = ['ans1A', 'ans1B', 'ans1C', 'ans1D', 'ans1E', 'ans1F', 'ans1G', 'ans1H', 'ans1I', 'ans1J', 'ans1K', 'ans1L', 'ans1M', 'ans1N', 'ans1O', 'ans1P', 'ans1Q', 'ans1R', 'ans1S', 'ans1T', 'ans1U', 'ans1V', 'ans1W', 'ans1X', 'ans1Y', 'ans1Z' ] def vars_for_template(self): return dict( ans1A_label = '{}を打ってください。'.format(self.player.que1A), ans1B_label = '{}を打ってください。'.format(self.player.que1B), ans1C_label = '{}を打ってください。'.format(self.player.que1C), ans1D_label = '{}を打ってください。'.format(self.player.que1D), ans1E_label = '{}を打ってください。'.format(self.player.que1E), ans1F_label = '{}を打ってください。'.format(self.player.que1F), ans1G_label = '{}を打ってください。'.format(self.player.que1G), ans1H_label = '{}を打ってください。'.format(self.player.que1H), ans1I_label = '{}を打ってください。'.format(self.player.que1I), ans1J_label = '{}を打ってください。'.format(self.player.que1J), ans1K_label = '{}を打ってください。'.format(self.player.que1K), ans1L_label = '{}を打ってください。'.format(self.player.que1L), ans1M_label = '{}を打ってください。'.format(self.player.que1M), ans1N_label = '{}を打ってください。'.format(self.player.que1N), ans1O_label = '{}を打ってください。'.format(self.player.que1O), ans1P_label = '{}を打ってください。'.format(self.player.que1P), ans1Q_label = '{}を打ってください。'.format(self.player.que1Q), ans1R_label = '{}を打ってください。'.format(self.player.que1R), ans1S_label = '{}を打ってください。'.format(self.player.que1S), ans1T_label = '{}を打ってください。'.format(self.player.que1T), ans1U_label = '{}を打ってください。'.format(self.player.que1U), ans1V_label = '{}を打ってください。'.format(self.player.que1V), ans1W_label = '{}を打ってください。'.format(self.player.que1W), ans1X_label = '{}を打ってください。'.format(self.player.que1X), ans1Y_label = '{}を打ってください。'.format(self.player.que1Y), ans1Z_label = '{}を打ってください。'.format(self.player.que1Z), ) class ResultsWaitPage1(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs() class Results1(Page): def vars_for_template(self): return dict(payoff=self.player.payoff) page_sequence = [NextRound1, GroupWaiting1, VictimQ1, VictimQ2, VictimQ3, IncomeDivisionQ1, IncomeDivisionQ2, IncomeDivisionQ3, IncomeDivisionWaiting1, IncomeDivisionR1, Game1Info, Game1, ResultsWaitPage1, Results1]