from otree.api import * doc = """ Your app description """ # models class C(BaseConstants): NAME_IN_URL = 'PRSvsPC' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): Choice = models.IntegerField( choices=[ [1, 'グー'], [2, 'チョキ'], [3, 'パー'], ], label= "", widget=widgets.RadioSelectHorizontal, ) Choice_PC = models.IntegerField() Win = 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 win_lose(player: Player): if player.Choice == player.Choice_PC: player.Win = 0 elif player.Choice == player.Choice_PC - 1 or (player.Choice == 3 and player.Choice_PC == 1): player.Win = 1 else: player.Win = -1 # PAGES class Decision(Page): form_model = 'player' form_fields = ['Choice'] @staticmethod def before_next_page(player, timeout_happened): win_lose(player) class Results(Page): pass page_sequence = [Decision, Results]