from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range from .models import Constants class WaitPage1(WaitPage): wait_for_all_groups = True def is_displayed(self): return self.round_number == 1 class Initial_Page(Page): """Informs that the main experiment is starting""" def is_displayed(self): return self.round_number == 1 class Decision_Making(Page): """Makes a choice""" form_model = 'player' form_fields = ['contribution'] def before_next_page(self): self.player.calc_B() def vars_for_template(self): self.subsession.get_game() #from scipy import stats #current_disaster_prob = stats.beta.cdf(self.subsession.initial_trash/Constants.max_trash,Constants.alpha,Constants.beta,loc=0,scale=1) current_disaster_prob = (self.subsession.initial_trash / Constants.max_trash) ** 2 return dict( current_disaster_prob = round(current_disaster_prob*100), ) class ResultsWaitPage(WaitPage): after_all_players_arrive = 'set_payoffs' body_text = "他の3人全員が選択するのをお待ちください。" class Calc_Disaster(Page): timeout_seconds = 5 """Shows the accumulated amouont of trash B""" def vars_for_template(self): return dict( sum_trashB = self.group.total_trash_B - self.subsession.initial_trash ) def before_next_page(self): self.group.calc_disaster() class Result(Page): """Player: Feedback screen""" def vars_for_template(self): return dict( sum_trashB=self.group.total_trash_B - self.subsession.initial_trash ) class Final_Result(Page): """Informs that the main experiment is starting""" def is_displayed(self): return self.round_number == Constants.num_rounds def vars_for_template(self): self.player.store_results() page_sequence = [WaitPage1,Initial_Page,Decision_Making,ResultsWaitPage,Calc_Disaster,Result,Final_Result]