from otree.api import * doc = """ Your app description """ contain_a = [] contain_b = [] selected_rounds = [] class Constants(BaseConstants): name_in_url = 'real_matching_pennies_A' players_per_group = 5 num_rounds = 1 endowment = 45 multiplier = 10 choices = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] class Subsession(BaseSubsession): pass class Group(BaseGroup): public_signal1 = models.StringField() public_signal2 = models.StringField() public_signal3 = models.StringField() public_signal4 = models.StringField() public_signal5 = models.StringField() public_signal6 = models.StringField() public_signal7 = models.StringField() public_signal8 = models.StringField() public_signal9 = models.StringField() public_signal10 = models.StringField() public_signal11 = models.StringField() public_signal12 = models.StringField() public_signal13 = models.StringField() public_signal14 = models.StringField() urn_type = models.IntegerField() urn_type_word = models.StringField() urn_group = models.IntegerField() selected_round_a = models.IntegerField() selected_round_b = models.IntegerField() cumulative_bet_on_even = models.CurrencyField() cumulative_bet_on_odd = models.CurrencyField() cumulative_red = models.IntegerField() cumulative_green = models.IntegerField() def select_urn(self): import random self.urn_type = random.choice((1,2,3,4)) if self.urn_type == 1: self.urn_type_word = 'A' self.urn_group = 1 contain_a.append('赤') contain_a.append('緑') contain_a.append('緑') contain_a.append('緑') contain_b.append('黒') contain_b.append('白') contain_b.append('白') contain_b.append('白') elif self.urn_type == 2: self.urn_type_word = 'B' self.urn_group = 1 contain_a.append('赤') contain_a.append('赤') contain_a.append('赤') contain_a.append('緑') contain_b.append('黒') contain_b.append('黒') contain_b.append('黒') contain_b.append('白') elif self.urn_type == 3: self.urn_type_word = 'C' self.urn_group = 2 contain_a.append('赤') contain_a.append('緑') contain_a.append('緑') contain_a.append('緑') contain_b.append('黒') contain_b.append('黒') contain_b.append('黒') contain_b.append('白') else: self.urn_type_word = 'D' self.urn_group = 2 contain_a.append('赤') contain_a.append('赤') contain_a.append('赤') contain_a.append('緑') contain_b.append('黒') contain_b.append('白') contain_b.append('白') contain_b.append('白') def cumulative_bet(self): self.cumulative_bet_on_even = (sum([p.round_1_even for p in self.get_players()])+ sum([p.round_2_even for p in self.get_players()])+ sum([p.round_3_even for p in self.get_players()])+ sum([p.round_4_even for p in self.get_players()])+ sum([p.round_5_even for p in self.get_players()])+ sum([p.round_6_even for p in self.get_players()])+ sum([p.round_7_even for p in self.get_players()])+ sum([p.round_8_even for p in self.get_players()])+ sum([p.round_9_even for p in self.get_players()])+ sum([p.round_10_even for p in self.get_players()])+ sum([p.round_11_even for p in self.get_players()])+ sum([p.round_12_even for p in self.get_players()])+ sum([p.round_13_even for p in self.get_players()])+ sum([p.round_14_even for p in self.get_players()])+ sum([p.round_15_even for p in self.get_players()])) self.cumulative_bet_on_odd = (sum([p.round_1_odd for p in self.get_players()])+ sum([p.round_2_odd for p in self.get_players()])+ sum([p.round_3_odd for p in self.get_players()])+ sum([p.round_4_odd for p in self.get_players()])+ sum([p.round_5_odd for p in self.get_players()])+ sum([p.round_6_odd for p in self.get_players()])+ sum([p.round_7_odd for p in self.get_players()])+ sum([p.round_8_odd for p in self.get_players()])+ sum([p.round_9_odd for p in self.get_players()])+ sum([p.round_10_odd for p in self.get_players()])+ sum([p.round_11_odd for p in self.get_players()])+ sum([p.round_12_odd for p in self.get_players()])+ sum([p.round_13_odd for p in self.get_players()])+ sum([p.round_14_odd for p in self.get_players()])+ sum([p.round_15_odd for p in self.get_players()])) self.cumulative_red = (sum([p.private_red for p in self.get_players()])) self.cumulative_green = (sum([p.private_green for p in self.get_players()])) def signal_maker(self): import random for player in self.get_players(): player.private_signal = random.choice(contain_a) self.public_signal1 = random.choice(contain_b) self.public_signal2 = random.choice(contain_b) self.public_signal3 = random.choice(contain_b) self.public_signal4 = random.choice(contain_b) self.public_signal5 = random.choice(contain_b) self.public_signal6 = random.choice(contain_b) self.public_signal7 = random.choice(contain_b) self.public_signal8 = random.choice(contain_b) self.public_signal9 = random.choice(contain_b) self.public_signal10 = random.choice(contain_b) self.public_signal11 = random.choice(contain_b) self.public_signal12 = random.choice(contain_b) self.public_signal13 = random.choice(contain_b) self.public_signal14 = random.choice(contain_b) def random_round(self): import random selected_rounds.extend(random.sample(Constants.choices, 2)) self.selected_round_a = selected_rounds[0] self.selected_round_b = selected_rounds[1] def private_summary(self): for player in self.get_players(): player.private_red = 0 player.private_green = 0 if player.private_signal == "赤": player.private_red = 1 elif player.private_signal == "緑": player.private_green = 1 def R1_set_payoffs(self): if self.urn_group == 1: for player in self.get_players(): player.R1_revenew = player.round_1_even * Constants.multiplier player.R1_payoff = player.R1_revenew - player.R1_costs else: for player in self.get_players(): player.R1_revenew = player.round_1_odd * Constants.multiplier player.R1_payoff = player.R1_revenew - player.R1_costs def R1_costs_difinition(self): for player in self.get_players(): player.R1_costs = 0 for i in range(0,player.round_1_even + 1): player.R1_costs = player.R1_costs + i for i in range(0,player.round_1_odd + 1): player.R1_costs = player.R1_costs + i def R2_set_payoffs(self): if self.urn_group == 1: for player in self.get_players(): player.R2_revenew = player.round_2_even * Constants.multiplier player.R2_payoff = player.R2_revenew - player.R2_costs else: for player in self.get_players(): player.R2_revenew = player.round_2_odd * Constants.multiplier player.R2_payoff = player.R2_revenew - player.R2_costs def R2_costs_difinition(self): for player in self.get_players(): player.R2_costs = 0 for i in range(0,player.round_2_even + 1): player.R2_costs = player.R2_costs + i for i in range(0,player.round_2_odd + 1): player.R2_costs = player.R2_costs + i def R3_set_payoffs(self): if self.urn_group == 1: for player in self.get_players(): player.R3_revenew = player.round_3_even * Constants.multiplier player.R3_payoff = player.R3_revenew - player.R3_costs else: for player in self.get_players(): player.R3_revenew = player.round_3_odd * Constants.multiplier player.R3_payoff = player.R3_revenew - player.R3_costs def R3_costs_difinition(self): for player in self.get_players(): player.R3_costs = 0 for i in range(0,player.round_3_even + 1): player.R3_costs = player.R3_costs + i for i in range(0,player.round_3_odd + 1): player.R3_costs = player.R3_costs + i def R4_set_payoffs(self): if self.urn_group == 1: for player in self.get_players(): player.R4_revenew = player.round_4_even * Constants.multiplier player.R4_payoff = player.R4_revenew - player.R4_costs else: for player in self.get_players(): player.R4_revenew = player.round_4_odd * Constants.multiplier player.R4_payoff = player.R4_revenew - player.R4_costs def R4_costs_difinition(self): for player in self.get_players(): player.R4_costs = 0 for i in range(0,player.round_4_even + 1): player.R4_costs = player.R4_costs + i for i in range(0,player.round_4_odd + 1): player.R4_costs = player.R4_costs + i def R5_set_payoffs(self): if self.urn_group == 1: for player in self.get_players(): player.R5_revenew = player.round_5_even * Constants.multiplier player.R5_payoff = player.R5_revenew - player.R5_costs else: for player in self.get_players(): player.R5_revenew = player.round_5_odd * Constants.multiplier player.R5_payoff = player.R5_revenew - player.R5_costs def R5_costs_difinition(self): for player in self.get_players(): player.R5_costs = 0 for i in range(0,player.round_5_even + 1): player.R5_costs = player.R5_costs + i for i in range(0,player.round_5_odd + 1): player.R5_costs = player.R5_costs + i def R6_set_payoffs(self): if self.urn_group == 1: for player in self.get_players(): player.R6_revenew = player.round_6_even * Constants.multiplier player.R6_payoff = player.R6_revenew - player.R6_costs else: for player in self.get_players(): player.R6_revenew = player.round_6_odd * Constants.multiplier player.R6_payoff = player.R6_revenew - player.R6_costs def R6_costs_difinition(self): for player in self.get_players(): player.R6_costs = 0 for i in range(0,player.round_6_even + 1): player.R6_costs = player.R6_costs + i for i in range(0,player.round_6_odd + 1): player.R6_costs = player.R6_costs + i def R7_set_payoffs(self): if self.urn_group == 1: for player in self.get_players(): player.R7_revenew = player.round_7_even * Constants.multiplier player.R7_payoff = player.R7_revenew - player.R7_costs else: for player in self.get_players(): player.R7_revenew = player.round_7_odd * Constants.multiplier player.R7_payoff = player.R7_revenew - player.R7_costs def R7_costs_difinition(self): for player in self.get_players(): player.R7_costs = 0 for i in range(0,player.round_7_even + 1): player.R7_costs = player.R7_costs + i for i in range(0,player.round_7_odd + 1): player.R7_costs = player.R7_costs + i def R8_set_payoffs(self): if self.urn_group == 1: for player in self.get_players(): player.R8_revenew = player.round_8_even * Constants.multiplier player.R8_payoff = player.R8_revenew - player.R8_costs else: for player in self.get_players(): player.R8_revenew = player.round_8_odd * Constants.multiplier player.R8_payoff = player.R8_revenew - player.R8_costs def R8_costs_difinition(self): for player in self.get_players(): player.R8_costs = 0 for i in range(0,player.round_8_even + 1): player.R8_costs = player.R8_costs + i for i in range(0,player.round_8_odd + 1): player.R8_costs = player.R8_costs + i def R9_set_payoffs(self): if self.urn_group == 1: for player in self.get_players(): player.R9_revenew = player.round_9_even * Constants.multiplier player.R9_payoff = player.R9_revenew - player.R9_costs else: for player in self.get_players(): player.R9_revenew = player.round_9_odd * Constants.multiplier player.R9_payoff = player.R9_revenew - player.R9_costs def R9_costs_difinition(self): for player in self.get_players(): player.R9_costs = 0 for i in range(0,player.round_9_even + 1): player.R9_costs = player.R9_costs + i for i in range(0,player.round_9_odd + 1): player.R9_costs = player.R9_costs + i def R10_set_payoffs(self): if self.urn_group == 1: for player in self.get_players(): player.R10_revenew = player.round_10_even * Constants.multiplier player.R10_payoff = player.R10_revenew - player.R10_costs else: for player in self.get_players(): player.R10_revenew = player.round_10_odd * Constants.multiplier player.R10_payoff = player.R10_revenew - player.R10_costs def R10_costs_difinition(self): for player in self.get_players(): player.R10_costs = 0 for i in range(0,player.round_10_even + 1): player.R10_costs = player.R10_costs + i for i in range(0,player.round_10_odd + 1): player.R10_costs = player.R10_costs + i def R11_set_payoffs(self): if self.urn_group == 1: for player in self.get_players(): player.R11_revenew = player.round_11_even * Constants.multiplier player.R11_payoff = player.R11_revenew - player.R11_costs else: for player in self.get_players(): player.R11_revenew = player.round_11_odd * Constants.multiplier player.R11_payoff = player.R11_revenew - player.R11_costs def R11_costs_difinition(self): for player in self.get_players(): player.R11_costs = 0 for i in range(0,player.round_11_even + 1): player.R11_costs = player.R11_costs + i for i in range(0,player.round_11_odd + 1): player.R11_costs = player.R11_costs + i def R12_set_payoffs(self): if self.urn_group == 1: for player in self.get_players(): player.R12_revenew = player.round_12_even * Constants.multiplier player.R12_payoff = player.R12_revenew - player.R12_costs else: for player in self.get_players(): player.R12_revenew = player.round_12_odd * Constants.multiplier player.R12_payoff = player.R12_revenew - player.R12_costs def R12_costs_difinition(self): for player in self.get_players(): player.R12_costs = 0 for i in range(0,player.round_12_even + 1): player.R12_costs = player.R12_costs + i for i in range(0,player.round_12_odd + 1): player.R12_costs = player.R12_costs + i def R13_set_payoffs(self): if self.urn_group == 1: for player in self.get_players(): player.R13_revenew = player.round_13_even * Constants.multiplier player.R13_payoff = player.R13_revenew - player.R13_costs else: for player in self.get_players(): player.R13_revenew = player.round_13_odd * Constants.multiplier player.R13_payoff = player.R13_revenew - player.R13_costs def R13_costs_difinition(self): for player in self.get_players(): player.R13_costs = 0 for i in range(0,player.round_13_even + 1): player.R13_costs = player.R13_costs + i for i in range(0,player.round_13_odd + 1): player.R13_costs = player.R13_costs + i def R14_set_payoffs(self): if self.urn_group == 1: for player in self.get_players(): player.R14_revenew = player.round_14_even * Constants.multiplier player.R14_payoff = player.R14_revenew - player.R14_costs else: for player in self.get_players(): player.R14_revenew = player.round_14_odd * Constants.multiplier player.R14_payoff = player.R14_revenew - player.R14_costs def R14_costs_difinition(self): for player in self.get_players(): player.R14_costs = 0 for i in range(0,player.round_14_even + 1): player.R14_costs = player.R14_costs + i for i in range(0,player.round_14_odd + 1): player.R14_costs = player.R14_costs + i def R15_set_payoffs(self): if self.urn_group == 1: for player in self.get_players(): player.R15_revenew = player.round_15_even * Constants.multiplier player.R15_payoff = player.R15_revenew - player.R15_costs else: for player in self.get_players(): player.R15_revenew = player.round_15_odd * Constants.multiplier player.R15_payoff = player.R15_revenew - player.R15_costs def R15_costs_difinition(self): for player in self.get_players(): player.R15_costs = 0 for i in range(0,player.round_15_even + 1): player.R15_costs = player.R15_costs + i for i in range(0,player.round_15_odd + 1): player.R15_costs = player.R15_costs + i def R16_set_payoffs(self): if self.urn_group == 1: for player in self.get_players(): player.R16_revenew = player.round_16_even * Constants.multiplier player.R16_payoff = player.R16_revenew - player.R16_costs else: for player in self.get_players(): player.R16_revenew = player.round_16_odd * Constants.multiplier player.R16_payoff = player.R16_revenew - player.R16_costs def R16_costs_difinition(self): for player in self.get_players(): player.R16_costs = 0 for i in range(0,player.round_16_even + 1): player.R16_costs = player.R16_costs + i for i in range(0,player.round_16_odd + 1): player.R16_costs = player.R16_costs + i def payoff_selected_1(self): for player in self.get_players(): if self.selected_round_a == 1: player.selected_payoff1 = player.R1_payoff elif self.selected_round_a == 2: player.selected_payoff1 = player.R2_payoff elif self.selected_round_a == 3: player.selected_payoff1 = player.R3_payoff elif self.selected_round_a == 4: player.selected_payoff1 = player.R4_payoff elif self.selected_round_a == 5: player.selected_payoff1 = player.R5_payoff elif self.selected_round_a == 6: player.selected_payoff1 = player.R6_payoff elif self.selected_round_a == 7: player.selected_payoff1 = player.R7_payoff elif self.selected_round_a == 8: player.selected_payoff1 = player.R8_payoff elif self.selected_round_a == 9: player.selected_payoff1 = player.R9_payoff elif self.selected_round_a == 10: player.selected_payoff1 = player.R10_payoff elif self.selected_round_a == 11: player.selected_payoff1 = player.R11_payoff elif self.selected_round_a == 12: player.selected_payoff1 = player.R12_payoff elif self.selected_round_a == 13: player.selected_payoff1 = player.R13_payoff elif self.selected_round_a == 14: player.selected_payoff1 = player.R14_payoff elif self.selected_round_a == 15: player.selected_payoff1 = player.R15_payoff else: player.selected_payoff1 = player.R16_payoff def payoff_selected_2(self): for player in self.get_players(): if self.selected_round_b == 1: player.selected_payoff2 = player.R1_payoff elif self.selected_round_b == 2: player.selected_payoff2 = player.R2_payoff elif self.selected_round_b == 3: player.selected_payoff2 = player.R3_payoff elif self.selected_round_b == 4: player.selected_payoff2 = player.R4_payoff elif self.selected_round_b == 5: player.selected_payoff2 = player.R5_payoff elif self.selected_round_b == 6: player.selected_payoff2 = player.R6_payoff elif self.selected_round_b == 7: player.selected_payoff2 = player.R7_payoff elif self.selected_round_b == 8: player.selected_payoff2 = player.R8_payoff elif self.selected_round_b == 9: player.selected_payoff2 = player.R9_payoff elif self.selected_round_b == 10: player.selected_payoff2 = player.R10_payoff elif self.selected_round_b == 11: player.selected_payoff2 = player.R11_payoff elif self.selected_round_b == 12: player.selected_payoff2 = player.R12_payoff elif self.selected_round_b == 13: player.selected_payoff2 = player.R13_payoff elif self.selected_round_b == 14: player.selected_payoff2 = player.R14_payoff elif self.selected_round_b == 15: player.selected_payoff2 = player.R15_payoff else: player.selected_payoff2 = player.R16_payoff def set_payoffs(self): for player in self.get_players(): player.payoff=2*Constants.endowment + player.selected_payoff1+player.selected_payoff2 class Player(BasePlayer): private_signal = models.StringField() private_red = models.IntegerField() private_green = models.IntegerField() round_1_even = models.IntegerField( min = 0, max = 9, label = 'グループ1にかけるポイント数') round_2_even = models.IntegerField( min = 0, max = 9, label = 'グループ1にかけるポイント数') round_3_even = models.IntegerField( min = 0, max = 9, label = 'グループ1にかけるポイント数') round_4_even = models.IntegerField( min = 0, max = 9, label = 'グループ1にかけるポイント数') round_5_even = models.IntegerField( min = 0, max = 9, label = 'グループ1にかけるポイント数') round_6_even = models.IntegerField( min = 0, max = 9, label = 'グループ1にかけるポイント数') round_7_even = models.IntegerField( min = 0, max = 9, label = 'グループ1にかけるポイント数') round_8_even = models.IntegerField( min = 0, max = 9, label = 'グループ1にかけるポイント数') round_9_even = models.IntegerField( min = 0, max = 9, label = 'グループ1にかけるポイント数') round_10_even = models.IntegerField( min = 0, max = 9, label = 'グループ1にかけるポイント数') round_11_even = models.IntegerField( min = 0, max = 9, label = 'グループ1にかけるポイント数') round_12_even = models.IntegerField( min = 0, max = 9, label = 'グループ1にかけるポイント数') round_13_even = models.IntegerField( min = 0, max = 9, label = 'グループ1にかけるポイント数') round_14_even = models.IntegerField( min = 0, max = 9, label = 'グループ1にかけるポイント数') round_15_even = models.IntegerField( min = 0, max = 9, label = 'グループ1にかけるポイント数') round_16_even = models.IntegerField( min = 0, max = 9, label = 'グループ1にかけるポイント数') round_1_odd = models.IntegerField( min = 0, max = 9, label = 'グループ2にかけるポイント数') round_2_odd = models.IntegerField( min = 0, max = 9, label = 'グループ2にかけるポイント数') round_3_odd = models.IntegerField( min = 0, max = 9, label = 'グループ2にかけるポイント数') round_4_odd = models.IntegerField( min = 0, max = 9, label = 'グループ2にかけるポイント数') round_5_odd = models.IntegerField( min = 0, max = 9, label = 'グループ2にかけるポイント数') round_6_odd = models.IntegerField( min = 0, max = 9, label = 'グループ2にかけるポイント数') round_7_odd = models.IntegerField( min = 0, max = 9, label = 'グループ2にかけるポイント数') round_8_odd = models.IntegerField( min = 0, max = 9, label = 'グループ2にかけるポイント数') round_9_odd = models.IntegerField( min = 0, max = 9, label = 'グループ2にかけるポイント数') round_10_odd = models.IntegerField( min = 0, max = 9, label = 'グループ2にかけるポイント数') round_11_odd = models.IntegerField( min = 0, max = 9, label = 'グループ2にかけるポイント数') round_12_odd = models.IntegerField( min = 0, max = 9, label = 'グループ2にかけるポイント数') round_13_odd = models.IntegerField( min = 0, max = 9, label = 'グループ2にかけるポイント数') round_14_odd = models.IntegerField( min = 0, max = 9, label = 'グループ2にかけるポイント数') round_15_odd = models.IntegerField( min = 0, max = 9, label = 'グループ2にかけるポイント数') round_16_odd = models.IntegerField( min = 0, max = 9, label = 'グループ2にかけるポイント数') R1_revenew = models.CurrencyField() R1_costs = models.CurrencyField() R2_revenew = models.CurrencyField() R2_costs = models.CurrencyField() R3_revenew = models.CurrencyField() R3_costs = models.CurrencyField() R4_revenew = models.CurrencyField() R4_costs = models.CurrencyField() R5_revenew = models.CurrencyField() R5_costs = models.CurrencyField() R6_revenew = models.CurrencyField() R6_costs = models.CurrencyField() R7_revenew = models.CurrencyField() R7_costs = models.CurrencyField() R8_revenew = models.CurrencyField() R8_costs = models.CurrencyField() R9_revenew = models.CurrencyField() R9_costs = models.CurrencyField() R10_revenew = models.CurrencyField() R10_costs = models.CurrencyField() R11_revenew = models.CurrencyField() R11_costs = models.CurrencyField() R12_revenew = models.CurrencyField() R12_costs = models.CurrencyField() R13_revenew = models.CurrencyField() R13_costs = models.CurrencyField() R14_revenew = models.CurrencyField() R14_costs = models.CurrencyField() R15_revenew = models.CurrencyField() R15_costs = models.CurrencyField() R16_revenew = models.CurrencyField() R16_costs = models.CurrencyField() R1_payoff = models.CurrencyField() R2_payoff = models.CurrencyField() R3_payoff = models.CurrencyField() R4_payoff = models.CurrencyField() R5_payoff = models.CurrencyField() R6_payoff = models.CurrencyField() R7_payoff = models.CurrencyField() R8_payoff = models.CurrencyField() R9_payoff = models.CurrencyField() R10_payoff = models.CurrencyField() R11_payoff = models.CurrencyField() R12_payoff = models.CurrencyField() R13_payoff = models.CurrencyField() R14_payoff = models.CurrencyField() R15_payoff = models.CurrencyField() R16_payoff = models.CurrencyField() selected_payoff1 = models.CurrencyField() selected_payoff2 = models.CurrencyField() # PAGES class Intro(Page): pass class division(WaitPage): @staticmethod def after_all_players_arrive(group): group.select_urn() group.signal_maker() class Round1(Page): form_model = 'player' form_fields = ['round_1_even', 'round_1_odd'] class Wait2(WaitPage): @staticmethod def after_all_players_arrive(group): group.R1_costs_difinition() group.R1_set_payoffs() group.private_summary() class Round2(Page): form_model = 'player' form_fields = ['round_2_even', 'round_2_odd'] class Wait3(WaitPage): @staticmethod def after_all_players_arrive(group): group.R2_costs_difinition() group.R2_set_payoffs() class Round3(Page): form_model = 'player' form_fields = ['round_3_even', 'round_3_odd'] class Wait4(WaitPage): @staticmethod def after_all_players_arrive(group): group.R3_costs_difinition() group.R3_set_payoffs() class Round4(Page): form_model = 'player' form_fields = ['round_4_even', 'round_4_odd'] class Wait5(WaitPage): @staticmethod def after_all_players_arrive(group): group.R4_costs_difinition() group.R4_set_payoffs() class Round5(Page): form_model = 'player' form_fields = ['round_5_even', 'round_5_odd'] class Wait6(WaitPage): @staticmethod def after_all_players_arrive(group): group.R5_costs_difinition() group.R5_set_payoffs() class Round6(Page): form_model = 'player' form_fields = ['round_6_even', 'round_6_odd'] class Wait7(WaitPage): @staticmethod def after_all_players_arrive(group): group.R6_costs_difinition() group.R6_set_payoffs() class Round7(Page): form_model = 'player' form_fields = ['round_7_even', 'round_7_odd'] class Wait8(WaitPage): @staticmethod def after_all_players_arrive(group): group.R7_costs_difinition() group.R7_set_payoffs() class Round8(Page): form_model = 'player' form_fields = ['round_8_even', 'round_8_odd'] class Wait9(WaitPage): @staticmethod def after_all_players_arrive(group): group.R8_costs_difinition() group.R8_set_payoffs() class Round9(Page): form_model = 'player' form_fields = ['round_9_even', 'round_9_odd'] class Wait10(WaitPage): @staticmethod def after_all_players_arrive(group): group.R9_costs_difinition() group.R9_set_payoffs() class Round10(Page): form_model = 'player' form_fields = ['round_10_even', 'round_10_odd'] class Wait11(WaitPage): @staticmethod def after_all_players_arrive(group): group.R10_costs_difinition() group.R10_set_payoffs() class Round11(Page): form_model = 'player' form_fields = ['round_11_even', 'round_11_odd'] class Wait12(WaitPage): @staticmethod def after_all_players_arrive(group): group.R11_costs_difinition() group.R11_set_payoffs() class Round12(Page): form_model = 'player' form_fields = ['round_12_even', 'round_12_odd'] class Wait13(WaitPage): @staticmethod def after_all_players_arrive(group): group.R12_costs_difinition() group.R12_set_payoffs() class Round13(Page): form_model = 'player' form_fields = ['round_13_even', 'round_13_odd'] class Wait14(WaitPage): @staticmethod def after_all_players_arrive(group): group.R13_costs_difinition() group.R13_set_payoffs() class Round14(Page): form_model = 'player' form_fields = ['round_14_even', 'round_14_odd'] class Wait15(WaitPage): @staticmethod def after_all_players_arrive(group): group.R14_costs_difinition() group.R14_set_payoffs() class Round15(Page): form_model = 'player' form_fields = ['round_15_even', 'round_15_odd'] class Wait_for_round16(WaitPage): @staticmethod def after_all_players_arrive(group): group.R15_costs_difinition() group.R15_set_payoffs() group.cumulative_bet() class Round16(Page): form_model = 'player' form_fields = ['round_16_even', 'round_16_odd'] class ResultWaitPage(WaitPage): @staticmethod def after_all_players_arrive(group): group.R16_costs_difinition() group.R16_set_payoffs() group.random_round() group.payoff_selected_1() group.payoff_selected_2() group.set_payoffs() class Results(Page): pass page_sequence = [Intro, division,Round1, Wait2, Round2, Wait3, Round3, Wait4, Round4, Wait5, Round5, Wait6, Round6, Wait7, Round7, Wait8, Round8, Wait9, Round9, Wait10, Round10, Wait11, Round11, Wait12, Round12, Wait13, Round13, Wait14, Round14, Wait15, Round15, Wait_for_round16, Round16, ResultWaitPage, Results]