from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range from .models import Constants class SIntroduction(Page): pass class HIntroduction(Page): pass class SDecide(Page): form_model = 'player' form_fields = ['Sprice'] class HDecide(Page): form_model = 'player' form_fields = ['Hprice'] class SResultsWaitPage(WaitPage): def after_all_players_arrive(self): pass class HResultsWaitPage(WaitPage): def after_all_players_arrive(self): pass class SResults(Page): def vars_for_template(self): group = self.group p1 = group.get_player_by_id(1) p2 = group.get_player_by_id(2) if p1.Sprice > p2.Sprice: winner = 'p1' if p1.Sprice == 0 or p1.Sprice == 1 or p1.Sprice == 2 or p1.Sprice == 3 or p1.Sprice == 4 or p1.Sprice == 5 or p1.Sprice == 6 or p1.Sprice == 7 or p1.Sprice == 8 or p1.Sprice == 9 or p1.Sprice == 10 or p1.Sprice == 11: p1.Spayoff = 0 p2.Spayoff = 0 elif p1.Sprice == 12 or p1.Sprice == 13 or p1.Sprice == 14: p1.Spayoff = 2 p2.Spayoff = 0 elif p1.Sprice == 15 or p1.Sprice == 16 or p1.Sprice == 17: p1.Spayoff = 4 p2.Spayoff = 0 elif p1.Sprice == 18 or p1.Sprice == 19 or p1.Sprice == 20: p1.Spayoff = 6 p2.Spayoff = 0 elif p1.Sprice == 21 or p1.Sprice == 22 or p1.Sprice == 23: p1.Spayoff = 8 p2.Spayoff = 0 elif p1.Sprice == 24 or p1.Sprice == 25 or p1.Sprice == 26: p1.Spayoff = 10 p2.Spayoff = 0 elif p1.Sprice == 27 or p1.Sprice == 28 or p1.Sprice == 29: p1.Spayoff = 12 p2.Spayoff = 0 elif p1.Sprice == 30 or p1.Sprice == 31 or p1.Sprice == 32: p1.Spayoff = 14 p2.Spayoff = 0 elif p1.Sprice == 33 or p1.Sprice == 34 or p1.Sprice == 35: p1.Spayoff = 16 p2.Spayoff = 0 elif p1.Sprice == 36 or p1.Sprice == 37 or p1.Sprice == 38: p1.Spayoff = 18 p2.Spayoff = 0 elif p1.Sprice == 39 or p1.Sprice == 40 or p1.Sprice == 41: p1.Spayoff = 20 p2.Spayoff = 0 elif p1.Sprice == 42 or p1.Sprice == 43 or p1.Sprice == 44: p1.Spayoff = 22 p2.Spayoff = 0 elif p1.Sprice == 45 or p1.Sprice == 46 or p1.Sprice == 47: p1.Spayoff = 24 p2.Spayoff = 0 elif p1.Sprice == 48 or p1.Sprice == 49 or p1.Sprice == 50: p1.Spayoff = 26 p2.Spayoff = 0 else: p1.Spayoff = 28 p2.Spayoff = 0 elif p1.Sprice < p2.Sprice: winner = 'p2' if p2.Sprice == 0 or p2.Sprice == 1 or p2.Sprice == 2 or p2.Sprice == 3 or p2.Sprice == 4 or p2.Sprice == 5 or p2.Sprice == 6 or p2.Sprice == 7 or p2.Sprice == 8 or p2.Sprice == 9 or p2.Sprice == 10 or p2.Sprice == 11: p1.Spayoff = 0 p2.Spayoff = 0 elif p2.Sprice == 12 or p2.Sprice == 13 or p2.Sprice == 14: p1.Spayoff = 0 p2.Spayoff = 2 elif p2.Sprice == 15 or p2.Sprice == 16 or p2.Sprice == 17: p1.Spayoff = 0 p2.Spayoff = 4 elif p2.Sprice == 18 or p2.Sprice == 19 or p2.Sprice == 20: p1.Spayoff = 0 p2.Spayoff = 6 elif p2.Sprice == 21 or p2.Sprice == 22 or p2.Sprice == 23: p1.Spayoff = 0 p2.Spayoff = 8 elif p2.Sprice == 24 or p2.Sprice == 25 or p2.Sprice == 26: p1.Spayoff = 0 p2.Spayoff = 10 elif p2.Sprice == 27 or p2.Sprice == 28 or p2.Sprice == 29: p1.Spayoff = 0 p2.Spayoff = 12 elif p2.Sprice == 30 or p2.Sprice == 31 or p2.Sprice == 32: p1.Spayoff = 0 p2.Spayoff = 14 elif p2.Sprice == 33 or p2.Sprice == 34 or p2.Sprice == 35: p1.Spayoff = 0 p2.Spayoff = 16 elif p2.Sprice == 36 or p2.Sprice == 37 or p2.Sprice == 38: p1.Spayoff = 0 p2.Spayoff = 18 elif p2.Sprice == 39 or p2.Sprice == 40 or p2.Sprice == 41: p1.Spayoff = 0 p2.Spayoff = 20 elif p2.Sprice == 42 or p2.Sprice == 43 or p2.Sprice == 44: p1.Spayoff = 0 p2.Spayoff = 22 elif p2.Sprice == 45 or p2.Sprice == 46 or p2.Sprice == 47: p1.Spayoff = 0 p2.Spayoff = 24 elif p2.Sprice == 48 or p2.Sprice == 49 or p2.Sprice == 50: p1.Spayoff = 0 p2.Spayoff = 26 else: p1.Spayoff = 0 p2.Spayoff = 28 else: winner = '[p1,p2]' if p1.Sprice == 0 or p1.Sprice == 1 or p1.Sprice == 2 or p1.Sprice == 3 or p1.Sprice == 4 or p1.Sprice == 5 or p1.Sprice == 6 or p1.Sprice == 7 or p1.Sprice == 8 or p1.Sprice == 9 or p1.Sprice == 10 or p1.Sprice == 11: p1.Spayoff = 0 p2.Spayoff = 0 elif p1.Sprice == 12 or p1.Sprice == 13 or p1.Sprice == 14: p1.Spayoff = 1 p2.Spayoff = 1 elif p1.Sprice == 15 or p1.Sprice == 16 or p1.Sprice == 17: p1.Spayoff = 2 p2.Spayoff = 2 elif p1.Sprice == 18 or p1.Sprice == 19 or p1.Sprice == 20: p1.Spayoff = 3 p2.Spayoff = 3 elif p1.Sprice == 21 or p1.Sprice == 22 or p1.Sprice == 23: p1.Spayoff = 4 p2.Spayoff = 4 elif p1.Sprice == 24 or p1.Sprice == 25 or p1.Sprice == 26: p1.Spayoff = 5 p2.Spayoff = 5 elif p1.Sprice == 27 or p1.Sprice == 28 or p1.Sprice == 29: p1.Spayoff = 6 p2.Spayoff = 6 elif p1.Sprice == 30 or p1.Sprice == 31 or p1.Sprice == 32: p1.Spayoff = 7 p2.Spayoff = 7 elif p1.Sprice == 33 or p1.Sprice == 34 or p1.Sprice == 35: p1.Spayoff = 8 p2.Spayoff = 8 elif p1.Sprice == 36 or p1.Sprice == 37 or p1.Sprice == 38: p1.Spayoff = 9 p2.Spayoff = 9 elif p1.Sprice == 39 or p1.Sprice == 40 or p1.Sprice == 41: p1.Spayoff = 10 p2.Spayoff = 10 elif p1.Sprice == 42 or p1.Sprice == 43 or p1.Sprice == 44: p1.Spayoff = 11 p2.Spayoff = 11 elif p1.Sprice == 45 or p1.Sprice == 46 or p1.Sprice == 47: p1.Spayoff = 12 p2.Spayoff = 12 elif p1.Sprice == 48 or p1.Sprice == 49 or p1.Sprice == 50: p1.Spayoff = 13 p2.Spayoff = 13 else: p1.Spayoff = 14 p2.Spayoff = 14 return{ 'siire1':p1.Spayoff, 'siire2':p2.Spayoff, 'sprice1':p1.Sprice, 'sprice2':p2.Sprice, } class HResults(Page): def vars_for_template(self): group = self.group winner = self.winner p1 = group.get_player_by_id(1) p2 = group.get_player_by_id(2) if winner == 'p1' : if p1.Hprice == 0 or p1.Hprice == 1 or p1.Hprice == 2 or p1.Hprice == 3 or p1.Hprice == 4 or p1.Hprice == 5 or p1.Hprice == 6 or p1.Hprice == 7 or p1.Hprice == 8 or p1.Hprice == 9 or p1.Hprice == 10 or p1.Hprice == 11: p1.Hpayoff = 0 p2.Hpayoff = 0 elif p1.Hprice == 12 or p1.Hprice == 13 or p1.Hprice == 14: p1.Hpayoff = 2 p2.Hpayoff = 0 elif p1.Hprice == 15 or p1.Hprice == 16 or p1.Hprice == 17: p1.Hpayoff = 4 p2.Hpayoff = 0 elif p1.Hprice == 18 or p1.Hprice == 19 or p1.Hprice == 20: p1.Hpayoff = 6 p2.Hpayoff = 0 elif p1.Hprice == 21 or p1.Hprice == 22 or p1.Hprice == 23: p1.Hpayoff = 8 p2.Hpayoff = 0 elif p1.Hprice == 24 or p1.Hprice == 25 or p1.Hprice == 26: p1.Hpayoff = 10 p2.Hpayoff = 0 elif p1.Hprice == 27 or p1.Hprice == 28 or p1.Hprice == 29: p1.Hpayoff = 12 p2.Hpayoff = 0 elif p1.Hprice == 30 or p1.Hprice == 31 or p1.Hprice == 32: p1.Hpayoff = 14 p2.Hpayoff = 0 elif p1.Hprice == 33 or p1.Hprice == 34 or p1.Hprice == 35: p1.Hpayoff = 16 p2.Hpayoff = 0 elif p1.Hprice == 36 or p1.Hprice == 37 or p1.Hprice == 38: p1.Hpayoff = 18 p2.Hpayoff = 0 elif p1.Hprice == 39 or p1.Hprice == 40 or p1.Hprice == 41: p1.Hpayoff = 20 p2.Hpayoff = 0 elif p1.Hprice == 42 or p1.Hprice == 43 or p1.Hprice == 44: p1.Hpayoff = 22 p2.Hpayoff = 0 elif p1.Hprice == 45 or p1.Hprice == 46 or p1.Hprice == 47: p1.Hpayoff = 24 p2.Hpayoff = 0 elif p1.Hprice == 48 or p1.Hprice == 49 or p1.Hprice == 50: p1.Hpayoff = 26 p2.Hpayoff = 0 else: p1.Hpayoff = 28 p2.Hpayoff = 0 elif winner == 'p2' : if p2.Hprice == 0 or p2.Hprice == 1 or p2.Hprice == 2 or p2.Hprice == 3 or p2.Hprice == 4 or p2.Hprice == 5 or p2.Hprice == 6 or p2.Hprice == 7 or p2.Hprice == 8 or p2.Hprice == 9 or p2.Hprice == 10 or p2.Hprice == 11: p1.Hpayoff = 0 p2.Hpayoff = 0 elif p2.Hprice == 12 or p2.Hprice == 13 or p2.Hprice == 14: p1.Hpayoff = 0 p2.Hpayoff = 2 elif p2.Hprice == 15 or p2.Hprice == 16 or p2.Hprice == 17: p1.Hpayoff = 0 p2.Hpayoff = 4 elif p2.Hprice == 18 or p2.Hprice == 19 or p2.Hprice == 20: p1.Hpayoff = 0 p2.Hpayoff = 6 elif p2.Hprice == 21 or p2.Hprice == 22 or p2.Hprice == 23: p1.Hpayoff = 0 p2.Hpayoff = 8 elif p2.Hprice == 24 or p2.Hprice == 25 or p2.Hprice == 26: p1.Hpayoff = 0 p2.Hpayoff = 10 elif p2.Hprice == 27 or p2.Hprice == 28 or p2.Hprice == 29: p1.Hpayoff = 0 p2.Hpayoff = 12 elif p2.Hprice == 30 or p2.Hprice == 31 or p2.Hprice == 32: p1.Hpayoff = 0 p2.Hpayoff = 14 elif p2.Hprice == 33 or p2.Hprice == 34 or p2.Hprice == 35: p1.Hpayoff = 0 p2.Hpayoff = 16 elif p2.Hprice == 36 or p2.Hprice == 37 or p2.Hprice == 38: p1.Hpayoff = 0 p2.Hpayoff = 18 elif p2.Hprice == 39 or p2.Hprice == 40 or p2.Hprice == 41: p1.Hpayoff = 0 p2.Hpayoff = 20 elif p2.Hprice == 42 or p2.Hprice == 43 or p2.Hprice == 44: p1.Hpayoff = 0 p2.Hpayoff = 22 elif p2.Hprice == 45 or p2.Hprice == 46 or p2.Hprice == 47: p1.Hpayoff = 0 p2.Hpayoff = 24 elif p2.Hprice == 48 or p2.Hprice == 49 or p2.Hprice == 50: p1.Hpayoff = 0 p2.Hpayoff = 26 else: p1.Hpayoff = 0 p2.Hpayoff = 28 elif winner == '[p1,p2]' : if p1.Hprice == 0 or p1.Hprice == 1 or p1.Hprice == 2 or p1.Hprice == 3 or p1.Hprice == 4 or p1.Hprice == 5 or p1.Hprice == 6 or p1.Hprice == 7 or p1.Hprice == 8 or p1.Hprice == 9 or p1.Hprice == 10 or p1.Hprice == 11: p1.Hpayoff = 0 p2.Hpayoff = 0 elif p1.Hprice == 12 or p1.Hprice == 13 or p1.Hprice == 14: p1.Hpayoff = 1 p2.Hpayoff = 1 elif p1.Hprice == 15 or p1.Hprice == 16 or p1.Hprice == 17: p1.Hpayoff = 2 p2.Hpayoff = 2 elif p1.Hprice == 18 or p1.Hprice == 19 or p1.Hprice == 20: p1.Hpayoff = 3 p2.Hpayoff = 3 elif p1.Hprice == 21 or p1.Hprice == 22 or p1.Hprice == 23: p1.Hpayoff = 4 p2.Hpayoff = 4 elif p1.Hprice == 24 or p1.Hprice == 25 or p1.Hprice == 26: p1.Hpayoff = 5 p2.Hpayoff = 5 elif p1.Hprice == 27 or p1.Hprice == 28 or p1.Hprice == 29: p1.Hpayoff = 6 p2.Hpayoff = 6 elif p1.Hprice == 30 or p1.Hprice == 31 or p1.Hprice == 32: p1.Hpayoff = 7 p2.Hpayoff = 7 elif p1.Hprice == 33 or p1.Hprice == 34 or p1.Hprice == 35: p1.Hpayoff = 8 p2.Hpayoff = 8 elif p1.Hprice == 36 or p1.Hprice == 37 or p1.Hprice == 38: p1.Hpayoff = 9 p2.Hpayoff = 9 elif p1.Hprice == 39 or p1.Hprice == 40 or p1.Hprice == 41: p1.Hpayoff = 10 p2.Hpayoff = 10 elif p1.Hprice == 42 or p1.Hprice == 43 or p1.Hprice == 44: p1.Hpayoff = 11 p2.Hpayoff = 11 elif p1.Hprice == 45 or p1.Hprice == 46 or p1.Hprice == 47: p1.Hpayoff = 12 p2.Hpayoff = 12 elif p1.Hprice == 48 or p1.Hprice == 49 or p1.Hprice == 50: p1.Hpayoff = 13 p2.Hpayoff = 13 else: p1.Hpayoff = 14 p2.Hpayoff = 14 return{ 'hanbai1':p1.Hpayoff, 'hanbai2':p2.Hpayoff, 'hprice1':p1.Hprice, 'hprice2':p2.Hprice, } page_sequence = [ SIntroduction, SDecide, SResultsWaitPage, SResults, HIntroduction, HDecide, HResultsWaitPage, HResults, ]