from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) import random author = 'Avineil Jain' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'game2' players_per_group = 4 num_rounds = 1 initial_endowment = 150 alpha = 0.5 class Subsession(BaseSubsession): pass class Group(BaseGroup): def set_payoffs(self): players = self.get_players() num_choices_A_round1 = sum([p.round1_choice=='Project A' for p in players]) payoff_dict = {'Project A': Constants.initial_endowment, 'Project B': 0} for p in players: p.round1_payoff = int(Constants.initial_endowment + num_choices_A_round1*Constants.alpha*Constants.initial_endowment - payoff_dict[p.round1_choice]) p.payoff = p.round1_payoff p.participant.vars['game2_payoff'] = p.payoff class Player(BasePlayer): round1_choice = models.StringField(choices = ['Project A', 'Project B'], widget = widgets.RadioSelect, label = "Indicate your investment choice") round1_payoff = models.IntegerField(initial=0)