from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Intro(Page): form_model = 'player' class NumberRacer(Page): form_model = 'player' form_fields = ['numbers'] timeout_seconds = 30 def before_next_page(self): #Hvor mange ord spilleren klarer å skrive user_input = self.player.numbers #Teksten som spiller skal matche #Gjør user_input om til listeform my_string = "279 74 29 831 78 846 38 70 278 88 799 783 16 352 23 831 35 857 99 594 77 447 20 37 842 372 22 25 710 59 596 11 907 96 24 879 49 349 27 281 426 44 129 387 86 855 43 696 94 67 925 44 91 31 135 318 49 202 51 38" my_list = my_string.split(" ") list_user_data = user_input.split(" ") #Antall poeng self.player.this_round_point = len(set(list_user_data).intersection(my_list)) #Generate random number self.player.posibility() class Deklarer_poeng(Page): form_model = 'player' form_fields = ['declare'] def before_next_page(self): #Regn ut skatt mengde_ikke_deklarert = self.player.this_round_point - self.player.declare self.player.score_after_taxes = self.player.this_round_point * 0.6 #størrelse fine self.player.fine = mengde_ikke_deklarert * 2 #Det man ikke deklarerer betaler man straff på #Score (Got audited) self.player.got_audited_score = (self.player.this_round_point * 0.6) - ((self.player.this_round_point - self.player.declare )*2) #Score (Did not get audited) self.player.not_audited_score = (self.player.declare * 0.6) + self.player.not_deklarert class Got_Audited(Page): form_model = 'player' def is_displayed(self): if self.player.random_num <= 20: if self.player.declare == self.player.this_round_point: self.player.payoff = (self.player.declare * 0.6) + (self.player.this_round_point -self.player.declare) self.player.got_audited_and_everything_declared = True return True self.player.payoff = (self.player.this_round_point * 0.6) - ((self.player.this_round_point - self.player.declare )*2) self.player.got_audited_and_everything_not_declared = True return True else: self.player.payoff = (self.player.declare * 0.6) + (self.player.this_round_point -self.player.declare) return False class Show_stats(Page): form_model = 'player' page_sequence = [Intro, NumberRacer, Deklarer_poeng, Got_Audited, Show_stats]