from otree.api import ( models, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, ) import random class Constants(BaseConstants): name_in_url = 'Partial_2' players_per_group = None num_rounds = 10 # Payoff values Row_Payoff = [[10, 5, 0], [6, 4, 2], [18, 12, 6]] Column_Payoff = [[10, 7, 4], [2, 8, 5], [0, 3, 6]] class Subsession(BaseSubsession): pass class Group(BaseGroup): # Player decision variables player1_decision_ori = models.StringField(choices=['U', 'M','D'],label="") player1_decision_re = models.StringField(choices=['U', 'M'], label="") player2_decision = models.StringField(choices=['L', 'N','R'],label="") task = models.IntegerField() class Player(BasePlayer): round_payoff = models.CurrencyField() other_payoff = models.CurrencyField() def role(self): if self.id_in_group == 1: return 'Row Player' else: return 'Column Player'