from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) import random import csv import numpy doc = """ Results - Main Play: Part 1 Results and Payments for Part 1 (10 Rounds) """ class Constants(BaseConstants): name_in_url = 'code:code_SS_results_part1' players_per_group = 2 # players_per_supergroup = 4 # --> only relevant for Players B - Part 2 # basically the group brings together all Players A from the same batch/session num_rounds = 1 randomly_selected_round_part1 = random.randint(1, 10) print(randomly_selected_round_part1) # randomly_selected_round1_part2 = random.randint(1, 20) # randomly_selected_round2_part2 = random.randint(1, 20) # randomly_selected_round2_tie1_part2 = random.randint(1, 20) # randomly_selected_round2_tie2_part2 = random.randint(1, 20) # randomly_selected_round2_tie3_part2 = random.randint(1, 20) # print(randomly_selected_round_part1, randomly_selected_round1_part2, randomly_selected_round2_part2, # randomly_selected_round2_tie1_part2, randomly_selected_round2_tie2_part2, randomly_selected_round2_tie3_part2) class Subsession(BaseSubsession): n_tokens_equal_to_1_eur = models.IntegerField() def creating_session(self): self.n_tokens_equal_to_1_eur = self.session.config['n_tokens_equal_to_1_eur'] for p in self.get_players(): p.n_tokens_equal_to_1_eur = self.session.config['n_tokens_equal_to_1_eur'] # Conversion rate: number of tokens equal to 1 Euro class Group(BaseGroup): pass class Player(BasePlayer): n_tokens_equal_to_1_eur = models.IntegerField() # cq1_n1 = models.IntegerField() cq1_n2 = models.IntegerField() cq1_n3 = models.IntegerField() cq1_n4 = models.IntegerField() cq1_n5 = models.IntegerField() cq1_n6 = models.IntegerField() # cq2_n1 = models.IntegerField() cq2_n2 = models.IntegerField() # part1_payoff = models.IntegerField() part1_payoff_eur = models.FloatField() part1_payoff_eur_to_show = models.FloatField() # part1_relevant_round = models.IntegerField() # part1_relevant_round_first_box = models.StringField() part1_relevant_round_content_purple = models.IntegerField() part1_relevant_round_content_orange = models.IntegerField() part1_relevant_round_search_cost = models.IntegerField() part1_relevant_round_choice = models.IntegerField() part1_relevant_round_payoff_int = models.IntegerField() part1_relevant_round_payoff_eur = models.FloatField() #