from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) import random author = 'Your name here' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'lottery_T3' players_per_group = 4 num_rounds = 1 class Subsession(BaseSubsession): def update_grouping(self): # for groupings players = self.get_players() for player in players: player.slider_value = player.participant.vars['slider_value'] players.sort(key=lambda player: player.slider_value) yellowGroup = players[:Constants.players_per_group] redGroup = players[Constants.players_per_group:] self.set_group_matrix([yellowGroup, redGroup]) # for assigning a random dice number to each group for group in self.get_groups(): group.dice_number = random.randint(1, 6) for player in group.get_players(): player.participant.vars['dice_number'] = group.dice_number class Group(BaseGroup): dice_number = models.IntegerField() class Player(BasePlayer): slider_value = models.IntegerField()