from otree.api import Currency as c, currency_range, SubmissionMustFail from . import views from ._builtin import Bot from .models import Constants import random class PlayerBot(Bot): # cases = [ # {'offer': c(0), 'return': c(0), 'p1_payoff': 10, 'p2_payoff': 0}, # {'offer': c(5), 'return': c(10), 'p1_payoff': 15, 'p2_payoff': 5}, # {'offer': c(10), 'return': c(30), 'p1_payoff': 30, 'p2_payoff': 0} # ] def play_round(self): yield (views.Introduction) case = self.case if self.player.id_in_group == 1: yield (views.Send, {"sent_amount": random.choice(currency_range(c(0),Constants.endowment,c(1)))}) else: #for invalid_return in [-1, case['offer'] * Constants.multiplication_factor + 1]: #yield SubmissionMustFail(views.SendBack, # {'sent_back_amount': invalid_return}) yield (views.SendBack, {'sent_back_amount': random.choice(currency_range(c(0),Constants.multiplication_factor*self.group.sent_amount,c(1)))}) # if self.player.id_in_group == 1: # expected_payoff = case['p1_payoff'] # else: # expected_payoff = case['p2_payoff'] # # assert self.player.payoff == expected_payoff yield (views.Results) #random.choice(currency_range(c(0),Constants.multiplication_factor*self.group.sent_amount,c(1)))