from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) author = 'Yang Zhong' doc = """ Nonogram """ class Constants(BaseConstants): name_in_url = 'nonogram_forced' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): interruption_time = models.LongStringField() time_spent_total1 = models.FloatField() time_spent_nono1 = models.FloatField() points1 = models.IntegerField(min=-1000) #is the points for current game score_on_display1 = models.IntegerField(min=-1000) #is the total points for all games if a game 2 or 3 is present total_green1 = models.IntegerField() total_gray1 = models.IntegerField() total_wrong1 = models.IntegerField() total_right1 = models.IntegerField() wrong_green1 = models.IntegerField() #correct should be green wrong_gray1 = models.IntegerField() #correct should be gray right_green1 = models.IntegerField() right_gray1 = models.IntegerField() board_history1 = models.LongStringField() #if each cell is correct or not (1 for correct color, 0 for wrong color) time_between_moves1 = models.LongStringField() solve_order1 = models.LongStringField() #number of the tile indicates the order of it being filled (if the 5th tile is filled in the last, it has a number of 100) interruption_time1 = models.LongStringField() gap_history1 = models.LongStringField() #gap history is the time taken to solve each adding numbers task game1_finished = models.IntegerField() time_spent_total2 = models.FloatField() time_spent_nono2 = models.FloatField() points2 = models.IntegerField(min=-1000) #is the points for current game score_on_display2 = models.IntegerField(min=-1000) #is the total points for all games if a game 2 or 3 is present total_green2 = models.IntegerField() total_gray2 = models.IntegerField() total_wrong2 = models.IntegerField() total_right2 = models.IntegerField() wrong_green2 = models.IntegerField() #correct should be green wrong_gray2 = models.IntegerField() #correct should be gray right_green2 = models.IntegerField() right_gray2 = models.IntegerField() board_history2 = models.LongStringField() #if each cell is correct or not (1 for correct color, 0 for wrong color) time_between_moves2 = models.LongStringField() solve_order2 = models.LongStringField() #number of the tile indicates the order of it being filled (if the 5th tile is filled in the last, it has a number of 100) interruption_time2 = models.LongStringField() gap_history2 = models.LongStringField() #gap history is the time taken to solve each adding numbers task game2_finished = models.IntegerField() time_spent_total3 = models.FloatField() time_spent_nono3 = models.FloatField() points3 = models.IntegerField(min=-1000) #is the points for current game score_on_display3 = models.IntegerField(min=-1000) #is the total points for all games if a game 2 or 3 is present total_green3 = models.IntegerField() total_gray3 = models.IntegerField() total_wrong3 = models.IntegerField() total_right3 = models.IntegerField() wrong_green3 = models.IntegerField() #correct should be green wrong_gray3 = models.IntegerField() #correct should be gray right_green3 = models.IntegerField() right_gray3 = models.IntegerField() board_history3 = models.LongStringField() #if each cell is correct or not (1 for correct color, 0 for wrong color) time_between_moves3 = models.LongStringField() solve_order3 = models.LongStringField() #number of the tile indicates the order of it being filled (if the 5th tile is filled in the last, it has a number of 100) interruption_time3 = models.LongStringField() gap_history3 = models.LongStringField() #gap history is the time taken to solve each adding numbers task game3_finished = models.IntegerField() gap_history = models.LongStringField() total_wrong_adding_forced = models.IntegerField() final_points_forced = models.FloatField(max=30, min=0) final_payoff_forced = models.FloatField(max=30, min=0) q1 = models.StringField( choices=["Strongly Disagree", "Disagree", "Slightly Disagree", "Neutral", "Slightly Agree", "Agree", "Strongly Agree"], label= "I felt stressed while playing Nonogram.", widget=widgets.RadioSelectHorizontal ) q2 = models.StringField( choices=["Strongly Disagree", "Disagree", "Slightly Disagree", "Neutral", "Slightly Agree", "Agree", "Strongly Agree"], label="I felt happy while playing Nonogram.", widget=widgets.RadioSelectHorizontal ) q3 = models.StringField( choices=["Strongly Disagree", "Disagree", "Slightly Disagree", "Neutral", "Slightly Agree", "Agree", "Strongly Agree"], label= "I felt angry while playing Nonogram.", widget=widgets.RadioSelectHorizontal ) q4 = models.StringField( choices=["Strongly Disagree", "Disagree", "Slightly Disagree", "Neutral", "Slightly Agree", "Agree", "Strongly Agree"], label= "I felt stressed while playing the adding-numbers game.", widget=widgets.RadioSelectHorizontal ) q5 = models.StringField( choices=["Strongly Disagree", "Disagree", "Slightly Disagree", "Neutral", "Slightly Agree", "Agree", "Strongly Agree"], label= "I felt happy while playing the adding-numbers game.", widget=widgets.RadioSelectHorizontal ) q6 = models.StringField( choices=["Strongly Disagree", "Disagree", "Slightly Disagree", "Neutral", "Slightly Agree", "Agree", "Strongly Agree"], label= "I felt angry while playing the adding-numbers game.", widget=widgets.RadioSelectHorizontal )