from otree.api import Currency as c, currency_range from . import views from ._builtin import Bot from .models import Constants import random class PlayerBot(Bot): cases = ['low','medium','high'] def play_round(self): if self.case == 'medium': if self.player.id_in_group == 1: assert Constants.endowment == c(100) yield (views.Send, {'sent_amount': c(50)}) assert self.player.payoff == c(100) yield (views.Results) else: yield (views.SendBack, {'sent_back_amount': c(50)}) if self.group.multiplication_factor == 3: assert self.player.payoff == c(100) else: assert self.player.payoff == c(50) yield (views.Results) # if self.player.id_in_group == 1: # assert self.player.payoff == c(100) # else: # assert self.player.payoff == c(100) # yield (views.Results) elif self.case == 'low': if self.player.id_in_group == 1: assert Constants.endowment == c(100) yield (views.Send, {'sent_amount': c(20)}) assert self.player.payoff == c(120) yield (views.Results) else: yield (views.SendBack, {'sent_back_amount': c(40)}) if self.group.multiplication_factor == 3: assert self.player.payoff == c(20) else: assert self.player.payoff == c(0) yield (views.Results) # if self.player.id_in_group == 1: # assert self.player.payoff == c(100) # else: # assert self.player.payoff == c(100) # yield (views.Results) else: if self.player.id_in_group == 1: assert Constants.endowment == c(100) yield (views.Send, {'sent_amount': c(100)}) assert self.player.payoff == c(80) yield (views.Results) else: yield (views.SendBack, {'sent_back_amount': c(80)}) if self.group.multiplication_factor == 3: assert self.player.payoff == c(220) else: assert self.player.payoff == c(120) yield (views.Results) # if self.player.id_in_group == 1: # assert self.player.payoff == c(100) # else: # assert self.player.payoff == c(100) # yield (views.Results)