from otree.api import (
models,
BaseConstants,
BaseSubsession,
BaseGroup,
BasePlayer
)
from django.utils.safestring import mark_safe
author = 'Your name here'
doc = """
Your app description
"""
GROUPS = {
1: 'Crusoe',
2: 'Friday'
}
class Constants(BaseConstants):
name_in_url = 'robinsoncrusoe'
players_per_group = 2
num_rounds = 1
class Subsession(BaseSubsession):
pass
class Group(BaseGroup):
pass
class Player(BasePlayer):
hours_spent_fishing = models.IntegerField(min=0, max=12, label="Hours spent on fishing:")
hours_spent_coconuts = models.IntegerField(min=0, max=12, label="Hours spent on gathering coconuts:")
sent_fishes = models.IntegerField(min=0, label=mark_safe("Send x fish to get x coconuts:"))
sent_coconuts = models.IntegerField(min=0, label=mark_safe("Send y coconuts to get y fish:"))
def group_name(self):
return GROUPS[self.id_in_group]
def other_group_name(self):
return GROUPS[list(GROUPS.keys())[-self.id_in_group]]
def collected_fishes(self):
if GROUPS[self.id_in_group] == 'Crusoe':
return self.hours_spent_fishing
if GROUPS[self.id_in_group] == 'Friday':
return self.hours_spent_fishing * 4
def collected_coconuts(self):
if GROUPS[self.id_in_group] == 'Crusoe':
return self.hours_spent_coconuts * 2
if GROUPS[self.id_in_group] == 'Friday':
return self.hours_spent_coconuts * 2
def sent_fishes_max(self):
return self.collected_fishes()
def sent_coconuts_max(self):
return self.collected_coconuts()