from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) import random author = 'Sunduz Divle' doc = """ Remote associates test (Turkish) & selection into teams """ class Constants(BaseConstants): name_in_url = 'rat_choices' players_per_group = 2 minutes_given = 8 payment_per_question = 4 num_rounds = 1 num_questions = 20 answer_keys = ["KÖR", "BÖREĞI", "YILDIZI", "KUŞU", "TAKMA", "YEDEK", "DÖRT", "KUVVET", "HAZIR", "OYU", "ANA", "DIL", "MANEVI", "MADDE", "ESKİ", "SU", "NÜKLEER", "BEZI", "DEĞER", "YAN"] class Subsession(BaseSubsession): pass class Group(BaseGroup): assigned_team = models.IntegerField() # team_performance = models.FloatField() def assign_team(self): players = self.get_players() possibilities = [0, 1] random_number = random.random() if random_number < 0.1: p_implement= random.choice(players) self.assigned_team = p_implement.team_selection for p in players: p.assigned_team = p_implement.team_selection elif random_number < 0.4: self.assigned_team = 0 for p in players: p.assigned_team = 0 else: self.assigned_team = 1 for p in players: p.assigned_team = 1 for p in players: p.participant.vars['assigned_team'] = p.assigned_team class Player(BasePlayer): assigned_team = models.IntegerField() team_selection = models.IntegerField(label='Şimdi sizden hangi senaryoda oynamak istediğinize karar vermenizi istiyoruz. Ya sizin kararınız uygulanacak ya da bilgisayarın sizin için seçtiği senaryoda oynayacaksınız. Kelime bulma oyununu bireysel olarak mı takım olarak mı oynamak istersiniz?', choices=[ [0, 'Bireysel olarak oynamak istiyorum.'], [1, 'Rastgele atanan bir katılımcı ile takım olarak oynamak istiyorum.'], ], widget=widgets.RadioSelectHorizontal) social_confidence = models.IntegerField(label='Deney sonunda örnek 3 soruyu kameranızı ve mikrofonunuzu açarak katılımcılar önünde çözmek ister misiniz?', choices=[ [1, 'Evet'], [0, 'Hayır'], ], widget=widgets.RadioSelectHorizontal) self_confidence = models.IntegerField(label='Tahmininizin doğru olması durumunda kazancınıza ek 2 TL kazanacaksınız.', max=20) guess_others = models.IntegerField(label='Tahmininizin doğru olması durumunda kazancınıza ek 2 TL kazanacaksınız.', max=20) guess_team = models.IntegerField(label='Tahmininizin doğru olması durumunda kazancınıza ek 2 TL kazanacaksınız.', max=20) comp_checkA = models.IntegerField(label='A. Oyunu takım olarak oynarsam ilk 3 dakika sorulara kendi başıma yanıt vermeye çalışacağım. Son 5 dakika ise takım arkadaşımla beraber çalışacağım.', choices=[ [1, 'Doğru'], [0, 'Yanlış'], ], widget=widgets.RadioSelectHorizontal) comp_checkB = models.IntegerField(label='B. Oyunu takım olarak oynarsam kameramı ve mikrofonumu açmadan da oyunu oynayabilirim.', choices=[ [1, 'Doğru'], [0, 'Yanlış'], ], widget=widgets.RadioSelectHorizontal) comp_checkC = models.IntegerField(label='C. Oyunu bireysel olarak oynarsam kameram ve mikrofonumu açmama, başka biriyle iletişim kurmama gerek olmayacak.', choices=[ [1, 'Doğru'], [0, 'Yanlış'], ], widget=widgets.RadioSelectHorizontal) comp_checkD = models.IntegerField(label='D. Bireysel olarak oynamayı seçsem de takım çalışmasına atanabilirim ve bu durumda kameram ve mikrofonumu açarak son 5 dakika takım arkadaşımla beraber çalışmam gerekir.', choices=[ [1, 'Doğru'], [0, 'Yanlış'], ], widget=widgets.RadioSelectHorizontal) comp_checkE = models.IntegerField(label='E. Takım olarak çalışırken cevapları bir kişinin yazması yeterli olmayacaktır, her bir oyuncu soruları ekranındaki cevap formuna geçirmelidir.', choices=[ [1, 'Doğru'], [0, 'Yanlış'], ], widget=widgets.RadioSelectHorizontal) name = models.StringField(label='Çalışmaya katılmak için lütfen ismizi ve soyisminizi giriniz:') def set_names(self): self.name = self.participant.vars['name']