from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import numpy as np import random class Info(Page): def is_displayed(self): return self.round_number == 1 class Throw(Page): form_model = 'player' form_fields = ['throw'] def is_displayed(self): if self.round_number >= 2: if self.player.in_round(self.round_number-1).location == "Y" or self.player.in_round(self.round_number-1).location == "X": return False else: return True else: return True def before_next_page(self): while self.round_number == 1: self.player.location = self.player.throw return self.player.location, print('location has been changed to ', self.player.location) else: return self.player.loc_ball(), print('loc_ball was applied, location changed', self.player.location) class ThrowXY(Page): def is_displayed(self): if self.subsession.round_number == 1: return False elif self.round_number >= 2 and self.player.in_round(self.round_number-1).location == "Y": return True elif self.round_number >= 2 and self.player.in_round(self.round_number-1).location == "X": return True else: return False def get_timeout_seconds(self): return self.player.p def before_next_page(self): return self.player.loc_ball() def vars_for_template(self): return self.player.vars_for_template() class Animation(Page): timeout_seconds = 4 # def before_next_page(self): # return self.player.loc_ball() class Result(Page): form_model = 'player' form_fields = ['exit_game'] def vars_for_template(self): return self.player.vars_for_template() def app_after_this_page(self, upcoming_apps): if self.player.exit_game == False: return upcoming_apps[0] class End(Page): pass page_sequence = [Info, Throw, ThrowXY, Animation, Result]