from otree.api import * c = cu doc = '\nGuess a number.' class Constants(BaseConstants): name_in_url = 'guess_my_number' players_per_group = None num_rounds = 1 guess_max = 100 my_number = 52 instructions_template = 'guess_my_number/instructions.html' class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): guess_1 = models.IntegerField(label='Please pick a number from 1 to 100', max=Constants.guess_max, min=1) guess_2 = models.IntegerField(label='Please pick a new number from 1 to 100', max=Constants.guess_max, min=1) guess_3 = models.IntegerField(label='Please pick a new number from 1 to 100', max=Constants.guess_max, min=1) guess_4 = models.IntegerField(label='Please pick a new number from 1 to 100', max=Constants.guess_max, min=1) guess_5 = models.IntegerField(label='Please pick a final number from 1 to 100.', max=Constants.guess_max, min=1) player_name = models.StringField(label='Please enter your name.') correct = models.BooleanField(initial=False) when_correct = models.IntegerField(initial=0, max=5, min=0) class Name_first_guess(Page): form_model = 'player' form_fields = ['player_name', 'guess_1'] @staticmethod def before_next_page(player, timeout_happened): if player.guess_1 == Constants.my_number: player.correct = True player.when_correct = 1 class Second_guess(Page): form_model = 'player' form_fields = ['guess_2'] @staticmethod def is_displayed(player): return player.correct == False @staticmethod def before_next_page(player, timeout_happened): if player.guess_2 == Constants.my_number: player.correct = True player.when_correct = 2 class Third_guess(Page): form_model = 'player' form_fields = ['guess_3'] @staticmethod def is_displayed(player): return player.correct == False @staticmethod def before_next_page(player, timeout_happened): if player.guess_3 == Constants.my_number: player.correct = True player.when_correct = 3 class Fourth_guess(Page): form_model = 'player' form_fields = ['guess_4'] @staticmethod def is_displayed(player): return player.correct == False @staticmethod def before_next_page(player, timeout_happened): if player.guess_4 == Constants.my_number: player.correct = True player.when_correct = 4 class Fifth_guess(Page): form_model = 'player' form_fields = ['guess_5', 'guess_1'] @staticmethod def is_displayed(player): return player.correct == False @staticmethod def before_next_page(player, timeout_happened): if player.guess_5 == Constants.my_number: player.correct = True player.when_correct = 5 class Results(Page): form_model = 'player' page_sequence = [Name_first_guess, Second_guess, Third_guess, Fourth_guess, Fifth_guess, Results]