from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) author = 'sou watamura' doc = """ 独裁者ゲーム """ class Constants(BaseConstants): name_in_url = 'dictator_trial_a' players_per_group = 2 num_rounds = 6 endowment = c(10) # 提案者の初期保有額は10ポイント A_List=(1,2,2,1,1,2) B_List=(2,1,1,2,2,1) class Subsession(BaseSubsession): def creating_session(self): self.group_randomly(fixed_id_in_group=True) class Group(BaseGroup): # プレイヤーの選択を定義する. ## プレイヤー1の選択は提案額を決める. proposal = models.CurrencyField( choices=currency_range(c(0), c(Constants.endowment), c(1)), label="あなたはいくら相手に渡しますか?", ) proposer_point = models.CurrencyField() # プレイヤー1の利得 accepter_point = models.CurrencyField() # プレイヤー2の利得 # 計算を実行する def compute(self): self.proposer_point = Constants.endowment - self.proposal #プレイヤー1の初期保有額-プレイヤー2への提案額 self.accepter_point = self.proposal #プレイヤー2への提案額 class Player(BasePlayer): def role(self): return {1: 'A', 2: 'B'}[self.id_in_group]