# -*- coding: utf-8 -*- from __future__ import division import random from otree.api import Bot from otree.common import Currency as c from otree.common import currency_range from . import * class PlayerBot(Bot): cases = ["always_bomb", "never_bomb"] def play_round(self): if C.INSTRUCTIONS and self.player.round_number == 1: yield Instructions boxes_collected = 2 yield ( Decision, { "bomb_row": 1, "bomb_col": 1, "boxes_collected": boxes_collected, "bomb": 1 if self.case == "always_bomb" else 0, }, ) expected_round_result = ( 0 if self.case == "always_bomb" else C.BOX_VALUE * boxes_collected ) assert self.player.round_result == expected_round_result if C.RESULTS and self.player.round_number == C.NUM_ROUNDS: # 1 round is chosen randomly assert self.participant.vars["bret_payoff"] == expected_round_result yield Results