from otree.api import * doc = """ Your app description """ class C(BaseConstants): NAME_IN_URL = 'prisoners_dilemma_simple' PLAYERS_PER_GROUP = 2 NUM_ROUNDS = 1 payoff_both_cooperate = -1 payoff_both_defect = -3 payoff_cooperate_defect_high = 0 payoff_cooperate_defect_low = -4 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): defect = models.BooleanField( label="Please Choose if you want to cooperate or defect", choices=[ [True, "Defect"], [False, "Cooperate"], ], ) # PAGES class MyPage(Page): form_model = 'player' # names must correspond to fields in models.py form_fields = ['defect'] class ResultsWaitPage(WaitPage): @staticmethod def after_all_players_arrive(group: Group): player_list = group.get_players() player1 = player_list[0] player2 = player_list[1] if player1.defect: if player2.defect: player1.payoff = C.payoff_both_defect player2.payoff = C.payoff_both_defect else: player1.payoff = C.payoff_cooperate_defect_high player2.payoff = C.payoff_cooperate_defect_low else: if player2.defect: player1.payoff = C.payoff_cooperate_defect_low player2.payoff = C.payoff_cooperate_defect_high else: player1.payoff = C.payoff_both_cooperate player2.payoff = C.payoff_both_cooperate class Results(Page): pass page_sequence = [MyPage, ResultsWaitPage, Results]