from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) author = 'Sunduz Divle' doc = """ Remote associates test (Turkish) """ class Constants(BaseConstants): name_in_url = 'rat_ind' players_per_group = 2 minutes_given = 4 payment_per_question = 3 # payment_in_points = 1.5 num_rounds = 1 num_questions = 10 answer_keys = ["ALTI", "ZIT", "DERIN", "ISIM", "GÖZ", "TÜRK", "GIZLI", "YARIM", "KURUSU", "BABASI", "ANA", "DIL", "MANEVI", "MADDE", "ESKI", "SU", "NÜKLEER", "BEZİ", "DEĞER", "YAN"] answer_keys0 = ["ALTI", "ZIT", "DERIN", "ISIM", "GOZ", "TURK", "GIZLI", "YARIM", "KURUSU", "BABASI", "ANA", "DIL", "MANEVI", "MADDE", "ESKI", "SU", "NÜKLEER", "BEZI", "DEGER", "YAN"] instructions_template = 'rat/Instructions.html' class Subsession(BaseSubsession): pass class Group(BaseGroup): def set_group_performances(self): player1 = self.get_player_by_id(1) player2 = self.get_player_by_id(2) player1.payoff_rat_ind = player1.payoff_rat1 player2.payoff_rat_ind = player2.payoff_rat1 player1.others_payoff_rat_ind = player2.payoff_rat1 player2.others_payoff_rat_ind = player1.payoff_rat1 player1.participant.vars['payoff_others_rat_ind'] = player1.others_payoff_rat_ind player2.participant.vars['payoff_others_rat_ind'] = player2.others_payoff_rat_ind print("Player 1 payoff:", player1.payoff_rat_ind) print("Player 1 --P2 payoff:", player1.others_payoff_rat_ind) print("Player 2 payoff:", player2.payoff_rat_ind) print("Player 2 --P1 payoff:", player2.others_payoff_rat_ind) class Player(BasePlayer): payoff_rat1 = models.IntegerField() payoff_rat_ind = models.IntegerField() others_payoff_rat_ind = models.IntegerField() socialization = models.IntegerField(label='Beklemeniz gerekirse, hangi odada beklemek istersiniz?', choices=[ [1, 'Sohbet odası'], [0, 'Sessiz oda'], ], widget=widgets.RadioSelectHorizontal) costless_info = models.IntegerField(label='Deney sonunda rastgele seçilen bir katılımcının bu bölümde kaç soruya doğru yanıt verdiğini görmek ister misiniz?', choices=[ [1, 'Evet, isterim.'], [0, 'Hayır, istemem.'], ], widget=widgets.RadioSelectHorizontal) comp_checkA = models.IntegerField(label='A. “doğal sayı/doğal gaz/doğal afet” cevabı yanlıştır, çünkü kelimeler anlamlı olsa dahi cevap formuna yalnızca ortak çözüm kelimesi yazılmalıdır.', choices=[ [1, 'Doğru'], [0, 'Yanlış'], ], widget=widgets.RadioSelectHorizontal) comp_checkB = models.IntegerField(label='B. “doğal başına” cevabı doğrudur çünkü ortak çözüm kelimesinin kelimelerin başına mı sonuna mı geleceği belirtilmelidir.', choices=[ [1, 'Doğru'], [0, 'Yanlış'], ], widget=widgets.RadioSelectHorizontal) comp_checkC = models.IntegerField(label='C. “kaçağı” cevabı doğrudur, çünkü gaz kelimesinin arkasına getirildiğinde anlamlı bir söz öbeği oluşturmaktadır.', choices=[ [1, 'Doğru'], [0, 'Yanlış'], ], widget=widgets.RadioSelectHorizontal) comp_checkD = models.IntegerField(label='D. “doğal” cevabı doğru, çünkü sorudaki bütün kelimelerin önüne getirildiğinde anlamlı söz öbekleri oluşturur ve cevap formunda yalnızca ortak çözüm kümesindeki sözcük yer almaktadır.', choices=[ [1, 'Doğru'], [0, 'Yanlış'], ], widget=widgets.RadioSelectHorizontal) q1 = models.StringField(label="Bilinç/Yer/Köprü") q2 = models.StringField(label="Kutup/Anlam/Karakter") q3 = models.StringField(label="Çukur/Devlet/Uyku") q4 = models.StringField(label="Özel/Kilit/Cins") q5 = models.StringField(label="Cin/Para/Tepe") q6 = models.StringField(label="Ata/Gök/Şen") q7 = models.StringField(label="Oturum/Ajan/Kamera") q8 = models.StringField(label="Ağız/Porsiyon/Ada") q9 = models.StringField(label="Kız/Tahta/Gül") q10 = models.StringField(label="Akıl/Mafya/Aile") # q11 = models.StringField(label="Cadde/Fikir/Kraliçe") # q12 = models.StringField(label="Yabancı/Küçük/Tatlı") # q13 = models.StringField(label="Destek/Tazminat/Evlat") # q14 = models.StringField(label="Atık/Ham/Saydam") # q15 = models.StringField(label="Türkçe/Kafa/Şehir") # q16 = models.StringField(label="Akar/Duru/Kaynar") # q17 = models.StringField(label="Santral/Enerji/Silah") # q18 = models.StringField(label="Sargı/Toz/Sofra") # q19 = models.StringField(label="Eş/Katma/Saygı") # q20 = models.StringField(label="Komşu/Dal/Hakem") q1_correct = models.IntegerField() q2_correct = models.IntegerField() q3_correct = models.IntegerField() q4_correct = models.IntegerField() q5_correct = models.IntegerField() q6_correct = models.IntegerField() q7_correct = models.IntegerField() q8_correct = models.IntegerField() q9_correct = models.IntegerField() q10_correct = models.IntegerField() # q11_correct = models.IntegerField() # q12_correct = models.IntegerField() # q13_correct = models.IntegerField() # q14_correct = models.IntegerField() # q15_correct = models.IntegerField() # q16_correct = models.IntegerField() # q17_correct = models.IntegerField() # q18_correct = models.IntegerField() # q19_correct = models.IntegerField() # q20_correct = models.IntegerField() rat_total_correct = models.IntegerField( initial=0, doc="total number of correct answers" ) def set_performances(self): self.q1=self.q1.upper() self.q2=self.q2.upper() self.q3=self.q3.upper() self.q4=self.q4.upper() self.q5=self.q5.upper() self.q6=self.q6.upper() self.q7=self.q7.upper() self.q8=self.q8.upper() self.q9=self.q9.upper() self.q10=self.q10.upper() # self.q11=self.q11.upper() # self.q12=self.q12.upper() # self.q13=self.q13.upper() # self.q14=self.q14.upper() # self.q15=self.q15.upper() # self.q16=self.q16.upper() # self.q17=self.q17.upper() # self.q18=self.q18.upper() # self.q19=self.q19.upper() # self.q20=self.q20.upper() if self.q1 == Constants.answer_keys[0] or self.q1 == Constants.answer_keys0[0]: self.q1_correct = 1 else: self.q1_correct = 0 if self.q2 == Constants.answer_keys[1] or self.q2 == Constants.answer_keys0[1]: self.q2_correct = 1 else: self.q2_correct = 0 if self.q3 == Constants.answer_keys[2] or self.q3 == Constants.answer_keys0[2]: self.q3_correct = 1 else: self.q3_correct = 0 if self.q4 == Constants.answer_keys[3] or self.q4 == Constants.answer_keys0[3]: self.q4_correct = 1 else: self.q4_correct = 0 if self.q5 == Constants.answer_keys[4] or self.q5 == Constants.answer_keys0[4]: self.q5_correct = 1 else: self.q5_correct = 0 if self.q6 == Constants.answer_keys[5] or self.q6 == Constants.answer_keys0[5]: self.q6_correct = 1 else: self.q6_correct = 0 if self.q7 == Constants.answer_keys[6] or self.q7 == Constants.answer_keys0[6]: self.q7_correct = 1 else: self.q7_correct = 0 if self.q8 == Constants.answer_keys[7] or self.q8 == Constants.answer_keys0[7]: self.q8_correct = 1 else: self.q8_correct = 0 if self.q9 == Constants.answer_keys[8] or self.q9 == Constants.answer_keys0[8]: self.q9_correct = 1 else: self.q9_correct = 0 if self.q10 == Constants.answer_keys[9] or self.q10 == Constants.answer_keys0[9]: self.q10_correct = 1 else: self.q10_correct = 0 # if self.q11 == Constants.answer_keys[10]: # self.q11_correct = 1 # else: # self.q11_correct = 0 # if self.q12 == Constants.answer_keys[11]: # self.q12_correct = 1 # else: # self.q12_correct = 0 # if self.q13 == Constants.answer_keys[12]: # self.q13_correct = 1 # else: # self.q13_correct = 0 # if self.q14 == Constants.answer_keys[13]: # self.q14_correct = 1 # else: # self.q14_correct = 0 # if self.q15 == Constants.answer_keys[14]: # self.q15_correct = 1 # else: # self.q15_correct = 0 # if self.q16 == Constants.answer_keys[15]: # self.q16_correct = 1 # else: # self.q16_correct = 0 # if self.q17 == Constants.answer_keys[16]: # self.q17_correct = 1 # else: # self.q17_correct = 0 # if self.q18 == Constants.answer_keys[17]: # self.q18_correct = 1 # else: # self.q18_correct = 0 # if self.q19 == Constants.answer_keys[18]: # self.q19_correct = 1 # else: # self.q19_correct = 0 # if self.q20 == Constants.answer_keys[19]: # self.q20_correct = 1 # else: # self.q20_correct = 0 self.rat_total_correct = self.q1_correct + \ self.q2_correct + \ self.q3_correct + \ self.q4_correct + \ self.q5_correct + \ self.q6_correct + \ self.q7_correct + \ self.q8_correct + \ self.q9_correct + \ self.q10_correct \ # self.q11_correct + \ # self.q12_correct + \ # self.q13_correct + \ # self.q14_correct + \ # self.q15_correct + \ # self.q16_correct + \ # self.q17_correct + \ # self.q18_correct + \ # self.q19_correct + \ # self.q20_correct self.payoff_rat1 = self.rat_total_correct * Constants.payment_per_question self.participant.vars['payoff_rat_ind'] = self.payoff_rat1 print("Total number of correct: rat_ind", self.rat_total_correct) print("Payoff: rat_ind", self.payoff_rat1) print("Payoff: rat_ind", self.participant.vars['payoff_rat_ind']) # # / 1 = "Bilinç/Yer/Köprü" # / 2 = "Kutup/Anlam/Karakter" # / 3 = "Çukur/Devlet/Uyku" # / 4 = "Özel/Kilit/Cins" # / 5 = "Cin/Para/Tepe" # / 6 = "Ata/Gök/Şen" # / 7 = "Oturum/Ajan/Kamera" # / 8 = "Ağız/Porsiyon/Ada" # / 9 = "Kız/Tahta/Gül" # / 10 = "Akıl/Mafya/Aile" # # / 11 = "Cadde/Fikir/Kraliçe" # / 12 = "Yabancı/Küçük/Tatlı" # / 13 = "Destek/Tazminat/Evlat" # / 14 = "Atık/Ham/Saydam" # / 15 = "Türkçe/Kafa/Şehir" # / 16 = "Akar/Duru/Kaynar" # / 17 = "Santral/Enerji/Silah" # / 18 = "Sargı/Toz/Sofra" # / 19 = "Eş/Katma/Saygı" # / 20 = "Komşu/Dal/Hakem"