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 Page1(Page): pass class Page2(Page): pass class Page3(Page): pass class Page4(Page): pass class Page5(Page): pass class Page6(Page): pass class Page7(Page): pass class Page8(Page): pass class Page9(Page): pass class Page10(Page): pass class Page11(Page): pass class Page12(Page): pass class Page13(Page): pass class Page14(Page): pass class Page15(Page): pass class Page16(Page): pass class Page17(Page): pass class Page18(Page): pass class Page19(Page): pass class Page20(Page): pass class Page21(Page): pass class Page22(Page): pass class Page23(Page): pass class Page24(Page): pass class Page25(Page): pass class Page26(Page): pass class Page27(Page): pass class Page28(Page): pass class Page29(Page): pass class Page30(Page): pass class Page31(Page): pass class Page32(Page): pass class Page33(Page): pass class Page34(Page): pass class Page35(Page): pass class Page36(Page): pass class Page37(Page): pass class Page38(Page): pass class Page39(Page): pass class Page40(Page): pass class FinalDecision(Page): form_model = 'player' form_fields = ['choices'] class Results(Page): def vars_for_template(self): p = self.player lottery2 = [0, 2, 2, 2, 2] if p.choices == 2: p.lottery_outcome = 1.5 else: p.lottery_outcome = random.choice(lottery2) return dict( what_is_the_answer_to_choices=self.player.choices, x=p.lottery_outcome, y=p.lottery_outcome + 1, ) def before_next_page(self): self.player.payoff = self.player.lottery_outcome class AfterR(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( w=self.player.cumulative_payoff + 1.72, ) page_sequence = [ Instructions, Page1, Page2, Page3, Page4, Page5, Page6, Page7, Page8, Page9, Page10, Page11, Page12, Page13, Page14, Page15, Page16, Page17, Page18, Page19, Page20, Page21, Page22, Page23, Page24, Page25, Page26, Page27, Page28, Page29, Page30, Page31, Page32, Page33, Page34, Page35, Page36, Page37, Page38, Page39, Page40, FinalDecision, Results, AfterR, ]