from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) import random import csv import numpy doc = """ Part 2 (a) Instructions and Control Questions before the series of one-shot "Prisoner's Dilemma" begins. """ class Constants(BaseConstants): name_in_url = 'part2_a_I' players_per_group = 2 players_per_supergroup = 4 num_rounds = 1 show_up_fee = "5" other_players_in_group = 3 # payoff if 1 player defects and the other cooperates""", betray_payoff = c(100) betrayed_payoff = c(10) # payoff if both players cooperate or both defect both_cooperate_payoff = c(73) both_defect_payoff = c(43) class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): cq1_group_members = models.IntegerField( label="(a) Prima che il primo round abbia inizio verranno formati i gruppi. Quanti partecipanti ci saranno\ in ogni gruppo?") cq1_payoff_sucker = models.IntegerField( label="(b) Qual è il tuo guadagno - in punti - se tu scegli X e l’altro partecipante sceglie Y?", min=0, max=100) cq1_payoff_bothcoop = models.IntegerField( label="(c) Qual è il tuo guadagno - in punti - se tu scegli X e l’altro partecipante sceglie X?", min=0, max=100) cq1_aggr_bothcoop = models.IntegerField( label="(d) Qual è il guadagno aggregato (ovvero la somma dei guadagni tuoi e dell’altro partecipante)\ - in punti - se entrambi scegliete X?") cq1_aggr_bothdef = models.IntegerField( label="(e) Qual è il guadagno aggregato (ovvero la somma dei guadagni tuoi e dell’altro partecipante)\ - in punti - se entrambi scegliete Y?") cq1_highest_payoff = models.IntegerField( label="(f) Qual è la situazione in cui si realizza il maggior guadagno aggregato?", choices=[[1, 'Tu: X; Altro partecipante: X'], [2, 'Tu: X; Altro partecipante: Y'], [3, 'Tu: Y; Altro partecipante: X'], [4, 'Tu: Y; Altro partecipante: Y']], widget=widgets.RadioSelect, ) cq1_payments = models.IntegerField( label="(g) Al termine dello studio verrai pagato per:", choices=[[1, 'Tutte le decisioni prese in questa attività'], [2, 'Solo una decisione presa in questa attività, selezionata casualmente al termine dello studio']], widget=widgets.RadioSelect, )