from otree.api import * doc = """ Your app description """ class C(BaseConstants): NAME_IN_URL = 'PRSvsPerson' PLAYERS_PER_GROUP = 2 NUM_ROUNDS = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): Choice=models.IntegerField( choices=[ [1,'グー'], [2,'チョキ'], [3,'パー'], ], widget=widgets.RadioSelectHorizontal, label="" ) Choice_Other=models.IntegerField() Win=models.IntegerField() #後で消す Choice_PC=models.IntegerField() # FUNCTIONS def creating_session(subsession: Subsession): for p in subsession.get_players(): import random p.Choice_PC = random.choice([1,2,3]) def set_payoffs(group: Group): for p in group.get_players(): p.Choice_Other = p.get_others_in_group()[0].Choice if p.Choice == p.Choice_Other: p.Win = 0 elif p.Choice == p.Choice_Other -1 or (p.Choice == 3 and p.Choice_Other == 1): p.Win = 1 else: p.Win = -1 # PAGES class Decision(Page): form_model='player' form_fields=['Choice'] class ResultsWaitPage(WaitPage): after_all_players_arrive=set_payoffs class Results(Page): pass page_sequence = [Decision, ResultsWaitPage, Results]