from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) import random from datetime import date from django import forms class Constants(BaseConstants): name_in_url = 'WorldCup_Survey_Part4' players_per_group = None # tasks = ['A', 'B', 'C', 'D'] # num_rounds = len(tasks) num_rounds = 1 class Subsession(BaseSubsession): def creating_session(self): # randomize wedge # if self.round_number == 1: # for player in self.get_players(): # player.wedge1 = random.choice([-2.5, -1.5, -0.5, 0, 0.5, 1.5, 2.5]) # player.wedge2 = random.choice([-2.5, -1.5, -0.5, 0, 0.5, 1.5, 2.5]) # player.wedge3 = random.choice([-2.5, -1.5, -0.5, 0, 0.5, 1.5, 2.5]) # player.wedge4 = random.choice([-2.5, -1.5, -0.5, 0, 0.5, 1.5, 2.5]) # player.participant.vars['wedge1'] = player.wedge1 # player.participant.vars['wedge2'] = player.wedge2 # player.participant.vars['wedge3'] = player.wedge3 # player.participant.vars['wedge4'] = player.wedge4 for player in self.get_players(): wedge_list = [-2.5, -1.5, -0.5, 0, 0.5, 1.5, 2.5] player.wedge1 = random.choice(wedge_list) player.wedge2 = random.choice(wedge_list) player.wedge3 = random.choice(wedge_list) player.wedge4 = random.choice(wedge_list) player.participant.vars['part2_wedge1'] = player.wedge1 player.participant.vars['part2_wedge2'] = player.wedge2 player.participant.vars['part2_wedge3'] = player.wedge3 player.participant.vars['part2_wedge4'] = player.wedge4 pass class Group(BaseGroup): pass class Player(BasePlayer): wedge1 = models.FloatField() wedge2 = models.FloatField() wedge3 = models.FloatField() wedge4 = models.FloatField() matchbet_1_win = models.IntegerField(min=0, max=100, initial=0) matchbet_1_lose = models.IntegerField(min=0, max=100, initial=0) matchbet_1_winodds = models.FloatField() matchbet_1_loseodds = models.FloatField() matchbet_1_sum = models.IntegerField() def matchbet_1_sum_error_message(player, value): print('value is', value) if value != 100: return 'Tokens need to sum to 100' matchbet_2_win = models.IntegerField(min=0, max=100, initial=0) matchbet_2_lose = models.IntegerField(min=0, max=100, initial=0) matchbet_2_winodds = models.FloatField() matchbet_2_loseodds = models.FloatField() matchbet_2_sum = models.IntegerField() def matchbet_2_sum_error_message(player, value): print('value is', value) if value != 100: return 'Tokens need to sum to 100' matchbet_3_win = models.IntegerField(min=0, max=100, initial=0) matchbet_3_lose = models.IntegerField(min=0, max=100, initial=0) matchbet_3_winodds = models.FloatField() matchbet_3_loseodds = models.FloatField() matchbet_3_sum = models.IntegerField() def matchbet_3_sum_error_message(player, value): print('value is', value) if value != 100: return 'Tokens need to sum to 100' matchbet_4_win = models.IntegerField(min=0, max=100, initial=0) matchbet_4_lose = models.IntegerField(min=0, max=100, initial=0) matchbet_4_winodds = models.FloatField() matchbet_4_loseodds = models.FloatField() matchbet_4_sum = models.IntegerField() def matchbet_4_sum_error_message(player, value): print('value is', value) if value != 100: return 'Tokens need to sum to 100' MatchBet_a_time = models.FloatField() MatchBet_b_time = models.FloatField() MatchBet_c_time = models.FloatField() MatchBet_d_time = models.FloatField()