from otree.api import * c = Currency doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'preference' players_per_group = 2 num_rounds = 2 Const1 = 8,33 Const2 = 16,66 Const3 = 25 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): ###loterie je dois les mettre en Subssesion pour le garder pendant tous les rounds r1 =models.IntegerField(initial=25) r2 =models.IntegerField(initial=50) r3 =models.IntegerField(initial=75) r4 =models.IntegerField(initial=100) #loterie1 lot1choix1=models.IntegerField(label="",choices=[["certitude",1],["loteri",2]],widget=widgets.RadioSelect) lot1choix2=models.IntegerField(label="",choices=[["certitude",1],["loteri",2]],widget=widgets.RadioSelect) lot1choix3=models.IntegerField(label="",choices=[["certitude",1],["loteri",2]],widget=widgets.RadioSelect) lot1choix4=models.IntegerField(label="",choices=[["certitude",1],["loteri",2]],widget=widgets.RadioSelect) #loterie2 lot2choix1=models.IntegerField(label="",choices=[["certitude",1],["loteri",2]],widget=widgets.RadioSelect) lot2choix2=models.IntegerField(label="",choices=[["certitude",1],["loteri",2]],widget=widgets.RadioSelect) lot2choix3=models.IntegerField(label="",choices=[["certitude",1],["loteri",2]],widget=widgets.RadioSelect) lot2choix4=models.IntegerField(label="",choices=[["certitude",1],["loteri",2]],widget=widgets.RadioSelect) #loterie3 lot3choix1=models.IntegerField(label="",choices=[["certitude",1],["loteri",2]],widget=widgets.RadioSelect) lot3choix2=models.IntegerField(label="",choices=[["certitude",1],["loteri",2]],widget=widgets.RadioSelect) lot3choix3=models.IntegerField(label="",choices=[["certitude",1],["loteri",2]],widget=widgets.RadioSelect) lot3choix4=models.IntegerField(label="",choices=[["certitude",1],["loteri",2]],widget=widgets.RadioSelect) # utiliser les 4 constantes puis ajouter 0,25 dans le roind suivante pour mieux encadrer le choix #utiliser le randoms pour 3 page avec 3 LOTTRIE DIFFERENTE ET Deux round pour chaaque page pour mieux endarer le choix #fonction def intel1 (player :Player): if(player.round_number == 1): if(player.lot1choix1 == 2): player.r2 = player.r1 + Constants.Const1 player.r3 = player.r1 + Constants.Const2 player.r4 = player.r1 + Constants.Const3 else: if(player.lot1choix2 ==2): player.r1 = player.r2 player.r2 = player.r1 + Constants.Const1 player.r3 = player.r1 + Constants.Const2 player.r4 =player.r1 + Constants.Const3 else: if(player.lot1choix3 ==2): player.r1 = player.r3 player.r2 = player.r1 + Constants.Const1 player.r3 = player.r1 + Constants.Const2 player.r4 = player.r1 + Constants.Const3 else: player.r1 = player.r4 player.r2 = player.r1 + Constants.Const1 player.r3 = player.r1 + Constants.Const2 player.r4 = player.r1 + Constants.Const3 def intel2 (player :Player): if(player.round_number == 1): if(player.lot2choix1 == 2): player.r2 = player.r1 + Constants.Const1 player.r3 = player.r1 + Constants.Const2 player.r4 = player.r1 + Constants.Const3 else: if(player.lot2choix2 ==2): player.r1 = player.r2 player.r2 = player.r1 + Constants.Const1 player.r3 = player.r1 + Constants.Const2 player.r4 =player.r1 + Constants.Const3 else: if(player.lot2choix3 ==2): player.r1 = player.r3 player.r2 = player.r1 + Constants.Const1 player.r3 = player.r1 + Constants.Const2 player.r4 = player.r1 + Constants.Const3 else: player.r1 = player.r4 player.r2 = player.r1 + Constants.Const1 player.r3 = player.r1 + Constants.Const2 player.r4 = player.r1 + Constants.Const3 def intel3 (player :Player): if(player.round_number == 1): if(player.lot3choix1 == 2): player.r2 = player.r1 + Constants.Const1 player.r3 = player.r1 + Constants.Const2 player.r4 = player.r1 + Constants.Const3 else: if(player.lot3choix2 ==2): player.r1 = player.r2 player.r2 = player.r1 + Constants.Const1 player.r3 = player.r1 + Constants.Const2 player.r4 =player.r1 + Constants.Const3 else: if(player.lot3choix3 ==2): player.r1 = player.r3 player.r2 = player.r1 + Constants.Const1 player.r3 = player.r1 + Constants.Const2 player.r4 = player.r1 + Constants.Const3 else: player.r1 = player.r4 player.r2 = player.r1 + Constants.Const1 player.r3 = player.r1 + Constants.Const2 player.r4 = player.r1 + Constants.Const3 #autre idee: round 1/2 puis 3/4 puis 5/6 # PAGES class Lot1(Page): form_model= "player" form_fields = ["lot1choix1","lot1choix2","lot1choix3","lot1choix4","r1","r2","r3","r4"] def before_next_pages(player : Player): intel1(player) class Lot2(Page): form_model= "player" form_fields = ["lot2choix1","lot2choix2","lot2choix3","lot2choix4","r1","r2","r3","r4"] def before_next_pages(player : Player): intel2(player) class Lot3(Page): form_model= "player" form_fields = ["lot3choix1","lot3choix2","lot3choix3","lot3choix4","r1","r2","r3","r4"] def before_next_pages(player : Player): intel3(player) class ResultsWaitPage(WaitPage): pass class Results(Page): pass page_sequence = [Lot1,Lot2,Lot3]