from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import random class Instructions(Page): def is_displayed(self): return self.round_number == 1 class TheChoice(Page): form_model = 'player' form_fields = ['choices'] class Results4(Page): def vars_for_template(self): import numpy as np outcomes = [0, 0.04] weights = [0.2, 0.8] p = self.player if p.choices == 2: p.lottery_outcome = 0.03 else: p.lottery_outcome = np.random.choice(outcomes, p=weights) return dict( what_is_the_answer_to_choices=self.player.choices, x=p.lottery_outcome, ) def before_next_page(self): self.player.payoff = self.player.lottery_outcome class AfterResults(Page): def vars_for_template(self): cumul = sum([p.payoff for p in self.player.in_all_rounds()]) self.player.cumulative_payoff = cumul return dict( y=self.player.cumulative_payoff + 0.5, ) page_sequence = [ Instructions, TheChoice, Results4, AfterResults, ]