from otree.api import * c = cu doc = 'z instrukcjami, 20 obrazków z timeoutem + 1 próbny, podział 2-2-5, dają 0-6, nie trzeba 12' class Constants(BaseConstants): name_in_url = 'Kw_6free2_2_5' players_per_group = None num_rounds = 1 podzial = 2 showupfee = 25 przelicznik = 10 factor = 3 num_players = 9 class Subsession(BaseSubsession): pass def przydziel(group): for p in group.get_players(): p.Kscore_calculate() p.participant.vars['Zarobki1']= Constants.showupfee for p in group.get_players(): p.Rank_calculate() for p in group.get_players(): if p.Rank > 4: p.participant.vars['Kategoria'] = 3 else: if p.Rank > 2: p.participant.vars['Kategoria'] = 2 else: p.participant.vars['Kategoria'] = 1 class Group(BaseGroup): przydziel = przydziel def Kscore_calculate(player): import random player.Kscore=player.pref1+player.pref2+player.pref3+player.pref4+player.pref5+player.pref6+player.pref7+player.pref8+player.pref9+player.pref10+player.pref11+player.pref12+player.pref13+player.pref14+player.pref15+player.pref16+player.pref17+player.pref18+player.pref19+player.pref20+random.random() def Rank_calculate(player): group = player.group player.Rank = sum (1 for p in player.get_others_in_group() if player.Kscore > p.Kscore) + 1 class Player(BasePlayer): pref1 = models.IntegerField(choices=[[0, 'jasnej'], [1, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref2 = models.IntegerField(choices=[[1, 'jasnej'], [0, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref3 = models.IntegerField(choices=[[0, 'jasnej'], [1, 'ciemnej']], widget=widgets.RadioSelectHorizontal) Kscore = models.FloatField() Rank = models.IntegerField() pref7 = models.IntegerField(choices=[[0, 'jasnej'], [1, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref4 = models.IntegerField(choices=[[0, 'jasnej'], [1, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref5 = models.IntegerField(choices=[[1, 'jasnej'], [0, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref6 = models.IntegerField(choices=[[0, 'jasnej'], [1, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref0 = models.IntegerField(choices=[[0, 'jasnej'], [1, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref8 = models.IntegerField(choices=[[1, 'jasnej'], [0, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref9 = models.IntegerField(choices=[[1, 'jasnej'], [0, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref10 = models.IntegerField(choices=[[1, 'jasnej'], [0, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref11 = models.IntegerField(choices=[[0, 'jasnej'], [1, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref12 = models.IntegerField(choices=[[0, 'jasnej'], [1, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref13 = models.IntegerField(choices=[[1, 'jasnej'], [0, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref14 = models.IntegerField(choices=[[0, 'jasnej'], [1, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref15 = models.IntegerField(choices=[[0, 'jasnej'], [1, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref16 = models.IntegerField(choices=[[1, 'jasnej'], [0, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref17 = models.IntegerField(choices=[[1, 'jasnej'], [0, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref18 = models.IntegerField(choices=[[0, 'jasnej'], [1, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref19 = models.IntegerField(choices=[[1, 'jasnej'], [0, 'ciemnej']], widget=widgets.RadioSelectHorizontal) pref20 = models.IntegerField(choices=[[1, 'jasnej'], [0, 'ciemnej']], widget=widgets.RadioSelectHorizontal) Kscore_calculate = Kscore_calculate Rank_calculate = Rank_calculate class Powitanie(Page): form_model = 'player' class Poczekalnia(WaitPage): body_text = 'Proszę czekać na pozostałych uczestników.' class Consent(Page): form_model = 'player' class Instrukcje1(Page): form_model = 'player' @staticmethod def vars_for_template(player): return dict( podzial2= Constants.num_players - Constants.podzial, ) class Instrukcje2(Page): form_model = 'player' class Odp0(Page): form_model = 'player' form_fields = ['pref0'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Poprobie(Page): form_model = 'player' class Obrazki1(Page): form_model = 'player' form_fields = ['pref1'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź' class Obrazki2(Page): form_model = 'player' form_fields = ['pref2'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki3(Page): form_model = 'player' form_fields = ['pref3'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki4(Page): form_model = 'player' form_fields = ['pref4'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki5(Page): form_model = 'player' form_fields = ['pref5'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki6(Page): form_model = 'player' form_fields = ['pref6'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki7(Page): form_model = 'player' form_fields = ['pref7'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki8(Page): form_model = 'player' form_fields = ['pref8'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki9(Page): form_model = 'player' form_fields = ['pref9'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki10(Page): form_model = 'player' form_fields = ['pref10'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki11(Page): form_model = 'player' form_fields = ['pref11'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki12(Page): form_model = 'player' form_fields = ['pref12'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki13(Page): form_model = 'player' form_fields = ['pref13'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki14(Page): form_model = 'player' form_fields = ['pref14'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki15(Page): form_model = 'player' form_fields = ['pref15'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki16(Page): form_model = 'player' form_fields = ['pref16'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki17(Page): form_model = 'player' form_fields = ['pref17'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki18(Page): form_model = 'player' form_fields = ['pref18'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki19(Page): form_model = 'player' form_fields = ['pref19'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class Obrazki20(Page): form_model = 'player' form_fields = ['pref20'] timeout_seconds = 10 timer_text = 'Czas pozostały na odpowiedź:' class PrzydzialWait(WaitPage): after_all_players_arrive = przydziel body_text = 'Proszę czekać na pozostałych uczestników.' class Po_ankiecie_1(Page): form_model = 'player' class Po_ankiecie_2(Page): form_model = 'player' class Po_ankiecie3(Page): form_model = 'player' class Instrukcje_do_etapu2_1(Page): form_model = 'player' class Instrukcje_do_etapu2_2(Page): form_model = 'player' @staticmethod def vars_for_template(player): return dict( factor6 = Constants.factor*6 ) class Instrukcje_do_etapu2_3(Page): form_model = 'player' class Instrukcje_do_etapu2_4(Page): form_model = 'player' page_sequence = [Powitanie, Poczekalnia, Consent, Instrukcje1, Instrukcje2, Odp0, Poprobie, Obrazki1, Obrazki2, Obrazki3, Obrazki4, Obrazki5, Obrazki6, Obrazki7, Obrazki8, Obrazki9, Obrazki10, Obrazki11, Obrazki12, Obrazki13, Obrazki14, Obrazki15, Obrazki16, Obrazki17, Obrazki18, Obrazki19, Obrazki20, PrzydzialWait, Po_ankiecie_1, Po_ankiecie_2, Po_ankiecie3, Instrukcje_do_etapu2_1, Instrukcje_do_etapu2_2, Instrukcje_do_etapu2_3, Instrukcje_do_etapu2_4]