from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants from random import * # ---------------------------------------- jeu 1 : beauty contest (contre tout le monde) class P10Task3Instructions(Page): form_model = 'player' form_fields = [] def is_displayed(self): return self.player.participant.vars['nextq0'] != 1 and self.player.participant.vars['treatment'] == 1 and self.player.participant.vars['b5'] == 1 def before_next_page(self): self.player.treatment = self.player.participant.vars['treatment'] class P11Task3_qc(Page): form_model = 'player' form_fields = ['qc_2_a'] def is_displayed(self): return self.player.participant.vars['nextq0'] != 1 and self.player.participant.vars['treatment'] == 1 and self.player.participant.vars['b5'] == 1 def error_message(self, values): print('values is', values) if values['qc_2_a'] != 600: return 'Please correct your answer !!' class P11BisTask3(Page): form_model = 'player' form_fields = ['survey1bis'] def is_displayed(self): return self.player.participant.vars['nextq0'] != 1 and self.player.participant.vars['treatment'] == 1 and self.player.participant.vars['b5'] == 1 class P12Task3(Page): form_model = 'player' form_fields = ['number1'] def is_displayed(self): return self.player.participant.vars['nextq0'] != 1 and self.player.participant.vars['treatment'] == 1 and self.player.participant.vars['b5'] == 1 class P12_ResultsWaitPage(Page): timeout_seconds = 8 def is_displayed(self): return self.player.participant.vars['nextq0'] != 1 and self.player.participant.vars['treatment'] == 1 and self.player.participant.vars['b5'] == 1 def before_next_page(self): self.player.number_j1 = Constants.t3[0] self.player.number_j2 = Constants.t3[1] self.player.number_j3 = Constants.t3[2] self.player.number_j4 = Constants.t3[3] self.player.number_j5 = Constants.t3[4] self.player.average_number = round((self.player.number_j1 + self.player.number_j2 + self.player.number_j3 + self.player.number_j4 + self.player.number_j5) / 5, 1) self.player.target = round(self.player.average_number * 2 / 3) self.player.distance = abs(self.player.number1 - self.player.target) self.player.gain_task3 = round(1000 - (20 * self.player.distance), 1) # -------------------------------------------# new oct 2022 self.player.participant.vars['gain_jeu4'] = self.player.gain_task3 # -------------------------------------------# page_sequence = [ P10Task3Instructions, P11Task3_qc, P11BisTask3, # P12Task3, # P12_ResultsWaitPage, ]