from otree.api import * """ Sim for 11-20 game """ class Constants(BaseConstants): name_in_url = 'eleven' players_per_group = 2 num_rounds = 1 instructions_template = 'eleven/instructions.html' class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): request = models.CurrencyField(min=11, max=20, label='Please enter an amount from 11 to 20.') # FUNCTIONS def other_player(player: Player): return player.get_others_in_group()[0] def set_payoff(player: Player): if player.request == other_player(player).request - 1: player.payoff = player.request + cu(20) else: player.payoff = player.request # PAGES class Introduction(Page): pass class Main(Page): form_model = 'player' form_fields = ['request'] class ResultsWaitPage(WaitPage): @staticmethod def after_all_players_arrive(group: Group): for p in group.get_players(): set_payoff(p) class Results(Page): @staticmethod def vars_for_template(player: Player): return {'opponent': other_player(player)} page_sequence = [Introduction, Main, ResultsWaitPage, Results]