import random from random import uniform from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) author = 'Your name here' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'Difference' players_per_group = 2 num_rounds = 1 instructions_template = 'Difference/instructions.html' belief_1 = 'Deneyin Birinci Aşama’sında, proje değerinin %25 azalması durumunda Orantılılık ' \ 'paylaşım kuralı geçerliyken, bir başkasıyla eşleştiğinde (300,300) başlangıç puanlarının olduğu durumda ' \ '\"X\" kadar yatırım yapmış bir katılımcı, sizinle eşleştiğinde sizin başlangıç puanınız 300, onunki 600 ' \ 'olduğu durumda sizce ne kadar yatırım yapmıştır?' b1_choices = ['\"X\"ten fazla', '\"X\" kadar', '\"X\"ten az'] belief_2 = 'Deneyin Birinci Aşama’sında, proje değerinin %25 azalması durumunda Eşit Ödüller ' \ 'paylaşım kuralı geçerliyken, bir başkasıyla eşleştiğinde (300,300) başlangıç puanlarının olduğu durumda ' \ '\"X\" kadar yatırım yapmış bir katılımcı, sizinle eşleştiğinde sizin başlangıç puanınız 300, onunki 600 ' \ 'olduğu durumda sizce ne kadar yatırım yapmıştır?' b2_choices = ['\"X\"ten fazla', '\"X\" kadar', '\"X\"ten az'] belief_3 = 'Deneyin Birinci Aşama’sında, proje değerinin %25 azalması durumunda Eşit Kayıplar ' \ 'paylaşım kuralı geçerliyken, bir başkasıyla eşleştiğinde (300,300) başlangıç puanlarının olduğu durumda ' \ '\"X\" kadar yatırım yapmış bir katılımcı, sizinle eşleştiğinde sizin başlangıç puanınız 300, onunki 600 ' \ 'olduğu durumda sizce ne kadar yatırım yapmıştır?' b3_choices = ['\"X\"ten fazla', '\"X\" kadar', '\"X\"ten az'] belief_to_pay = random.randint(1, 3) class Subsession(BaseSubsession): def creating_session(self): self.group_randomly(fixed_id_in_group=True) print(" Matching: ", self.get_group_matrix()) matrix = self.get_group_matrix() class Group(BaseGroup): pass class Player(BasePlayer): b11 = models.StringField() b12 = models.StringField() fark_PRO = models.IntegerField() b21 = models.StringField() b22 = models.StringField() fark_EA = models.IntegerField() b31 = models.StringField() b32 = models.StringField() fark_EL = models.IntegerField() # b11: 1. soru 1. tip için doğru cevap rounds_to_pay = models.IntegerField(initial= Constants.belief_to_pay) ### PRO pyf_1 = models.IntegerField() belief_bir = models.StringField( choices=Constants.b1_choices, label=Constants.belief_1, widget=widgets.RadioSelectHorizontal, ) belief_bir_is_correct = models.BooleanField() # sb11: belief sonucu 1. tip için sb11 = models.StringField() sb12 = models.StringField() def answer_1(self): if self.id_in_group == 1: if self.fark_PRO > 0: self.b11 = '\"X\"ten fazla' if self.fark_PRO == 0: self.b11 = '\"X\" kadar' if self.fark_PRO < 0: self.b11 = '\"X\"ten az' if self.id_in_group == 2: if self.fark_PRO > 0: self.b12 = '\"X\"ten fazla' if self.fark_PRO == 0: self.b12 = '\"X\" kadar' if self.fark_PRO < 0: self.b12 = '\"X\"ten az' def belief_check_correct_bir(self): if self.id_in_group == 1: self.belief_bir_is_correct = (self.belief_bir == self.b11) if self.belief_bir_is_correct: self.sb11 = "Doğru" self.pyf_1 = 200 else: self.sb11 = "Yanlış" self.pyf_1 = 0 if self.id_in_group == 2: self.belief_bir_is_correct = (self.belief_bir == self.b12) if self.belief_bir_is_correct: self.sb12 = "Doğru" self.pyf_1 = 200 else: self.sb12 = "Yanlış" self.pyf_1 = 0 ### EA pyf_2 = models.IntegerField() belief_iki = models.StringField( choices=Constants.b2_choices, label=Constants.belief_2, widget=widgets.RadioSelectHorizontal, ) belief_iki_is_correct = models.BooleanField() sb21 = models.StringField() sb22 = models.StringField() def answer_2(self): if self.id_in_group == 1: if self.fark_EA > 0: self.b21 = '\"X\"ten fazla' if self.fark_EA == 0: self.b21 = '\"X\" kadar' if self.fark_EA < 0: self.b21 = '\"X\"ten az' if self.id_in_group == 2: if self.fark_EA > 0: self.b22 = '\"X\"ten fazla' if self.fark_EA == 0: self.b22 = '\"X\" kadar' if self.fark_EA < 0: self.b22 = '\"X\"ten az' def belief_check_correct_iki(self): if self.id_in_group == 1: self.belief_iki_is_correct = (self.belief_iki == self.b21) if self.belief_iki_is_correct: self.sb21 = "Doğru" self.pyf_2 = 200 else: self.sb21 = "Yanlış" self.pyf_2 = 0 if self.id_in_group == 2: self.belief_iki_is_correct = (self.belief_iki == self.b22) if self.belief_iki_is_correct: self.sb22 = "Doğru" self.pyf_2 = 200 else: self.sb22 = "Yanlış" self.pyf_2 = 0 ### EA pyf_3 = models.IntegerField() belief_uc = models.StringField( choices=Constants.b3_choices, label=Constants.belief_3, widget=widgets.RadioSelectHorizontal, ) belief_uc_is_correct = models.BooleanField() sb31 = models.StringField() sb32 = models.StringField() def answer_3(self): if self.id_in_group == 1: if self.fark_EL > 0: self.b31 = '\"X\"ten fazla' if self.fark_EL == 0: self.b31 = '\"X\" kadar' if self.fark_EL < 0: self.b31 = '\"X\"ten az' if self.id_in_group == 2: if self.fark_EL > 0: self.b32 = '\"X\"ten fazla' if self.fark_EL == 0: self.b32 = '\"X\" kadar' if self.fark_EL < 0: self.b32 = '\"X\"ten az' def belief_check_correct_uc(self): if self.id_in_group == 1: self.belief_uc_is_correct = (self.belief_uc == self.b31) if self.belief_uc_is_correct: self.sb31 = "Doğru" self.pyf_3 = 200 else: self.sb31 = "Yanlış" self.pyf_3 = 0 if self.id_in_group == 2: self.belief_uc_is_correct = (self.belief_uc == self.b32) if self.belief_uc_is_correct: self.sb32 = "Doğru" self.pyf_3 = 200 else: self.sb32 = "Yanlış" self.pyf_3 = 0