from otree.api import * import random doc = """ Random Generator Game """ class C(BaseConstants): NAME_IN_URL = 'Random_Generator' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): User_number = models.IntegerField() Random_numRound1 = models.IntegerField() Random_numRound2 = models.IntegerField(initial=0) Small_values = models.StringField(blank=True, initial=0) Greater_values = models.StringField(blank=True, initial=0) class IntroPart1(Page): form_model = 'player' form_fields = ['User_number' ] class IntroPart2(Page): @staticmethod def js_vars(player: Player): player.Random_numRound1 = random.randint(1, 10) class Loading(Page): pass class RandomNumber(Page): pass class IntroRound2(Page): @staticmethod def js_vars(player: Player): player.Random_numRound2 = random.randint(1,player.Random_numRound1) def before_next_page(player: Player, timeout_happened): smaller_list = [i for i in range(1, player.Random_numRound2)] greater_list = [i for i in range(player.Random_numRound2, player.User_number+1)] player.Small_values = ",".join(str(num) for num in smaller_list) player.Greater_values = ",".join(str(num) for num in greater_list) def is_displayed(player: Player): return player.User_number >= player.Random_numRound1 class RandomNumber2(Page): def is_displayed(player: Player): return player.User_number >= player.Random_numRound1 class Result(Page): pass class Finish(Page): pass page_sequence = [IntroPart1, IntroPart2,Loading,RandomNumber,IntroRound2,Loading,RandomNumber2, Result,Finish]