from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, safe_json ) from collections import namedtuple import random author = 'Thomas Graeber' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'mturk_welcome' players_per_group = None decisions = [ { 'name': 'portfolio_1', 'option_a': [(70, 15)], 'option_b': [(100, 10)], 'value_a': 10.5, 'value_b': 10, 'endowment': 0, 'safe_range_max': 10.5, 'type': 'portfolio', }, { 'name': 'portfolio_2', 'option_a': [(15, 37), (15, 43)], 'option_b': [(100, 10)], 'value_a': 10.5, 'value_b': 10, 'value': 10.5, 'endowment': 0, 'safe_range_max': 10.5, 'type': 'portfolio', }, { 'name': 'prob_choice_1', 'option_a': [(25, 18)], 'option_b': [(100, 4)], 'value_a': 4.5, 'value_b': 4, 'endowment': 0, 'safe_range_max': 4.5, 'type': 'probability', }, { 'name': 'prob_choice_2', 'option_a': [(12.5, 24), (12.5, 12)], 'option_b': [(100, 4)], 'value_a': 4.5, 'value_b': 4, 'value': 4.5, 'endowment': 0, 'safe_range_max': 4.5, 'type': 'probability', }, { 'name': 'event_split_1', 'safe_range_max': 22, 'safe_range_min': 2, 'step_size': 4, 'lottery': [(30, -1, 40)], 'value': 12, 'endowment': 0, 'type': 'list', }, { 'name': 'event_split_2', 'safe_range_max': 22, 'safe_range_min': 2, 'step_size': 4, 'lottery': [(15, -1, 37), (15, -1, 43)], 'value': 12, 'endowment': 0, 'type': 'list', }, { 'name': 'rocl_1', 'safe_range_max': 22, 'safe_range_min': 2, 'step_size': 4, 'lottery': [(15, -1, 80)], 'value': 12, 'endowment': 0, 'type': 'list', }, { 'name': 'rocl_2', 'safe_range_max': 22, 'safe_range_min': 2, 'step_size': 4, 'lottery': [(25, 60, 80)], 'value': 12, 'endowment': 0, 'type': 'list', }, { 'name': 'ssra_1', 'safe_range_max': 13, 'safe_range_min': 1, 'step_size': 4, 'lottery': [(50, -1, 9), (50, -1, 5)], 'value': 7, 'endowment': 0, 'type': 'list', }, { 'name': 'ssra_2', 'safe_range_max': 63, 'safe_range_min': 35, 'step_size': 4, 'lottery': [(50, -1, 63), (50, -1, 35)], 'value': 49, 'endowment': 0, 'type': 'list', }, { 'name': 'ssra_3', 'safe_range_max': 25, 'safe_range_min': -11, 'step_size': 4, 'lottery': [(50, -1, 25), (50, -1, -13)], 'value': 6, 'endowment': 11, 'type': 'list', }, { 'name': 'pweight_1', 'safe_range_max': 42, 'safe_range_min': 2, 'step_size': 4, 'lottery': [(5, -1, 60), (95, -1, 20)], 'value': 22, 'endowment': 0, 'type': 'list', }, { 'name': 'pweight_2', 'safe_range_max': 34, 'safe_range_min': 14, 'step_size': 4, 'lottery': [(90, -1, 25), (10, -1, 15)], 'value': 24, 'endowment': 0, 'type': 'list', }, { 'name': 'pweight_3', 'safe_range_max': -2, 'safe_range_min': -42, 'step_size': 4, 'lottery': [(5, -1, -60), (95, -1, -20)], 'value': -22, 'endowment': 42, 'type': 'list', }, { 'name': 'pweight_4', 'safe_range_max': -14, 'safe_range_min': -34, 'step_size': 4, 'lottery': [(90, -1, -25), (10, -1, -15)], 'value': -24, 'endowment': 34 , 'type': 'list', }, { 'name': 'pweight_5', 'safe_range_max': 29, 'safe_range_min': 1, 'step_size': 4, 'lottery': [(0.5, -1, 214), (99.5, -1, 14)], 'value': 15, 'endowment': 0, 'type': 'list', }, { 'name': 'pweight_6', 'safe_range_max': 41, 'safe_range_min': 5, 'step_size': 4, 'lottery': [(95, -1, 24), (5, -1, 4)], 'value': 23, 'endowment': 0, 'type': 'list', }, { 'name': 'allais_1', 'option_a': [(100, 25)], 'option_b': [(80, 32)], 'value_a': 26, 'value_b': 25.6, 'safe_range_max': 26, 'type': 'binary', }, { 'name': 'allais_2', 'option_a': [(25, 25)], 'option_b': [(20, 32)], 'value_a': 6.25, 'value_b': 6.4, 'safe_range_max': 6.4, 'type': 'binary', }, # # { # 'name': 'screenshot', # 'safe_range_max': 19, # 'safe_range_min': -9, # 'step_size': 4, # 'lottery': [(50, -1, -10), (50, -1, 20)], # 'value': 5, # 'endowment': 10, # 'type': 'list', # }, ] num_rounds = 1 max_payment = max([x['safe_range_max'] for x in decisions]) class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): pass