from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) doc = '' class Constants(BaseConstants): name_in_url = 'Ultimatum_Game' players_per_group = 2 num_rounds = 2 endowment = c(100) class Subsession(BaseSubsession): pass class Group(BaseGroup): individual_share_b = models.CurrencyField(label='How much would you like to offer player B?', max=Constants.endowment, min=0) offer_accept = models.BooleanField(choices=[[True, 'Yes'], [False, 'No']], label='Do you accept this offer?') individual_share_a = models.CurrencyField() def Numbers(self): self.individual_share_a = Constants.endowment - self.individual_share_b def creating_session(self): self.group_randomly(fixed_id_in_group=True) class Player(BasePlayer): response_0 = models.BooleanField(choices=[[True, 'Yes'], [False, 'No']], label='Would you accept an offer of 0 points?') response_10 = models.BooleanField(choices=[[True, 'Yes'], [False, 'No']], label='Would you accept an offer of 10 points?') response_20 = models.BooleanField(label='Would you accept an offer of 20 points?') response_30 = models.BooleanField(label='Would you accept an offer of 30 points?') response_40 = models.BooleanField(choices=[[True, 'Yes'], [False, 'No']], label='Would you accept an offer of 40 points?') response_50 = models.BooleanField(label='Would you accept an offer of 50 points?') response_60 = models.BooleanField(choices=[[True, 'Yes'], [False, 'No']], label='Would you accept an offer of 60 points?') response_70 = models.BooleanField(choices=[[True, 'Yes'], [False, 'No']], label='Would you accept an offer of 70 points?') response_80 = models.BooleanField(choices=[[True, 'Yes'], [False, 'No']], label='Would you accept an offer of 80 points?') response_90 = models.BooleanField(choices=[[True, 'Yes'], [False, 'No']], label='Would you accept an offer of 90 points?') response_100 = models.BooleanField(choices=[[True, 'Yes'], [False, 'No']], label='Would you accept an offer of 100 points?') offer_amount = models.CurrencyField(label='How much would you like to offer player B?', max=Constants.endowment, min=0) accept_offer = models.BooleanField(choices=[[True, 'Yes'], [False, 'No']], label='Do you accept this offer?') s = models.CurrencyField() def my_method(self): pass