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 = 'Instruction_1' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): q1 = models.StringField(choices=[ '實驗者', '這個屋子裡的所有人,隨機抽取,每回合不同', '這個屋子裡的其他兩位受試者,固定不變', '電腦從過去的實驗記錄中抽取'], widget=widgets.RadioSelect, label='在第一階段的實驗中,你看到的訊息來自') q2 = models.StringField(choices=['你本回合的訊息', '你計畫傳送的訊息', '你對其他組員圖片的猜測', '你本回合的圖片'], widget=widgets.RadioSelect, label='每回合你都需要做出一些選擇,下列選項中你不需要決定的是') q3 = models.StringField(choices=['CCCC', 'AACC', ' CBDA', 'DEDE'], widget=widgets.RadioSelect, label='經過翻譯後,你發送的訊息「AABB」在其他組員的螢幕上有可能顯示為') q4 = models.StringField(choices=[ '我對他人訊息的解讀是否正確,即我的猜測與其他組員圖片是否一致。', '他人對我訊息的解讀是否正確,即其他組員的猜測與我的圖片是否一致。', '我與組員們「計畫傳送的訊息」是否一致。', '以上皆是。'], widget=widgets.RadioSelect, label='以下會影響你本回合的報酬的是') q5 = models.StringField(choices=[ '訊息中的符號可以重複使用。', '在實驗結果頁面中,我可以看到我的兩位組員之間互相傳送的訊息內容。', '每一回合我可以得到的最高報酬為 4x2 + 8 = 16法幣。', '每一回合,我和組員之間翻譯的方式都是固定的。'], widget=widgets.RadioSelect, label='下列說法錯誤的是') def set_error_message(self, value): correct_answers = { "q1": '這個屋子裡的其他兩位受試者,固定不變', "q2": '你本回合的圖片', "q3": 'AACC', "q4": '以上皆是。', "q5": '在實驗結果頁面中,我可以看到我的兩位組員之間互相傳送的訊息內容。', } list_answers = list(value.items())[0:] list_correct_answers = list(correct_answers.items()) if list_answers != list_correct_answers: Text = '小測驗答案未全對。請重新閱讀實驗說明,改正你的答案。' return Text