import statistics import random import math from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) author = 'Your name here' doc = """ Task - Test Çözme """ class Constants(BaseConstants): name_in_url = 'TASK' players_per_group = None num_rounds = 1 soru_1 = 'Sesin hızı yaklaşık olarak 740 metre/saattir. Sireni çalan bir itfaiye aracı saatte 80 metre hızla ' \ 'ilerlemektedir. Sirenin hızı bize kaç metre/saat hızla ulaşır ?' s1_choices = ['820 metre/saat', '740 metre/saat', '660 metre/saat', '9.25 metre/saat'] s3_choices = ['A', 'B', 'C', 'D', 'E'] s4_choices = ['A', 'B', 'C', 'D', 'E'] s5_choices = ['A', 'B', 'C', 'D', 'E'] s6_choices = ['A', 'B', 'C', 'D', 'E'] s8_choices = ['A', 'B', 'C', 'D', 'E'] class Subsession(BaseSubsession): def creating_session(self): self.group_randomly() class Group(BaseGroup): def ranking(self): players = self.get_players() players.sort(key=lambda p: p.questions_correct, reverse=True) k = 0 e = 0 for i in range(len(players)): if players[i].genn == 1: players[i].rank = e e = e + 1 if players[i].rank < len(players) / 4: players[i].status = "High" else: players[i].status = "Low" else: players[i].rank = k k = k + 1 if players[i].rank < len(players) / 4: players[i].status = "High" else: players[i].status = "Low" class Player(BasePlayer): rank = models.FloatField() gender = models.StringField() genn = models.FloatField() status = models.StringField() constant_payoff = models.CurrencyField(initial=30) a1 = models.CharField(initial='740 metre/saat') pyf_1 = models.FloatField() soru_bir = models.StringField( choices=Constants.s1_choices, label=Constants.soru_1, widget=widgets.RadioSelectHorizontal, ) soru_bir_is_correct = models.BooleanField() def soru_check_correct_bir(self): self.soru_bir_is_correct = (self.soru_bir == self.a1) if self.soru_bir_is_correct: self.pyf_1 = 100 else: self.pyf_1 = 0 a2 = models.CharField(initial='Kasım') pyf_2 = models.FloatField() soru_iki = models.StringField(label="Lütfen ilk harfi büyük, diğer harfleri küçük yazınız.") soru_iki_is_correct = models.BooleanField() def soru_check_correct_iki(self): self.soru_iki_is_correct = (self.soru_iki == self.a2) if self.soru_iki_is_correct: self.pyf_2 = 100 else: self.pyf_2 = 0 a3 = models.CharField(initial='C') pyf_3 = models.FloatField() soru_uc = models.StringField( choices=Constants.s3_choices, label="", widget=widgets.RadioSelectHorizontal, ) soru_uc_is_correct = models.BooleanField() def soru_check_correct_uc(self): self.soru_uc_is_correct = (self.soru_uc == self.a3) if self.soru_uc_is_correct: self.pyf_3 = 100 else: self.pyf_3 = 0 a4 = models.CharField(initial='B') pyf_4 = models.FloatField() soru_dort = models.StringField( choices=Constants.s4_choices, label="", widget=widgets.RadioSelectHorizontal, ) soru_dort_is_correct = models.BooleanField() def soru_check_correct_dort(self): self.soru_dort_is_correct = (self.soru_dort == self.a4) if self.soru_dort_is_correct: self.pyf_4 = 100 else: self.pyf_4 = 0 a5 = models.CharField(initial='D') pyf_5 = models.FloatField() soru_bes = models.StringField( choices=Constants.s5_choices, label="", widget=widgets.RadioSelectHorizontal, ) soru_bes_is_correct = models.BooleanField() def soru_check_correct_bes(self): self.soru_bes_is_correct = (self.soru_bes == self.a5) if self.soru_bes_is_correct: self.pyf_5 = 100 else: self.pyf_5 = 0 a6 = models.CharField(initial='A') pyf_6 = models.FloatField() soru_alti = models.StringField( choices=Constants.s6_choices, label="", widget=widgets.RadioSelectHorizontal, ) soru_alti_is_correct = models.BooleanField() def soru_check_correct_alti(self): self.soru_alti_is_correct = (self.soru_alti == self.a6) if self.soru_alti_is_correct: self.pyf_6 = 100 else: self.pyf_6 = 0 a7 = models.CharField(initial='G') pyf_7 = models.FloatField() soru_yedi = models.StringField(label="Lütfen büyük harfle yazınız.") soru_yedi_is_correct = models.BooleanField() def soru_check_correct_yedi(self): self.soru_yedi_is_correct = (self.soru_yedi == self.a7) if self.soru_yedi_is_correct: self.pyf_7 = 100 else: self.pyf_7 = 0 a8 = models.CharField(initial='B') pyf_8 = models.FloatField() soru_sekiz = models.StringField( choices=Constants.s8_choices, label="", widget=widgets.RadioSelectHorizontal, ) soru_sekiz_is_correct = models.BooleanField() def soru_check_correct_sekiz(self): self.soru_sekiz_is_correct = (self.soru_sekiz == self.a8) if self.soru_sekiz_is_correct: self.pyf_8 = 100 else: self.pyf_8 = 0 a9 = models.CharField(initial='6') pyf_9 = models.FloatField() soru_dokuz = models.StringField(label="") soru_dokuz_is_correct = models.BooleanField() def soru_check_correct_dokuz(self): self.soru_dokuz_is_correct = (self.soru_dokuz == self.a9) if self.soru_dokuz_is_correct: self.pyf_9 = 100 else: self.pyf_9 = 0 a10 = models.CharField(initial='74') pyf_10 = models.FloatField() soru_on = models.StringField(label="") soru_on_is_correct = models.BooleanField() def soru_check_correct_on(self): self.soru_on_is_correct = (self.soru_on == self.a10) if self.soru_on_is_correct: self.pyf_10 = 100 else: self.pyf_10 = 0 questions_correct = models.FloatField() def q_correct(self): self.questions_correct = (self.pyf_1 + self.pyf_2 + self.pyf_3 + self.pyf_4 + self.pyf_5 + self.pyf_6 + self.pyf_7 + self.pyf_8 + self.pyf_9 + self.pyf_10)