from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) author = 'Your name here' doc = """ Your app description """ import random class Constants(BaseConstants): name_in_url = 'A5' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): def creating_session(self): for p in self.get_players(): # p.private_value = 0 p.value_item = 64 class Group(BaseGroup): def bid_all(self): players = self.get_players() bids = [p.bid for p in players] return bids def bid_max1(self): players = self.get_players() bids = [p.bid for p in players] return max(bids) def bid_max2(self): players = self.get_players() bids = [p.bid for p in players] b=max(bids) bids.remove(b) return max(bids) def item_all(self): players = self.get_players() items = [p.value_item for p in players] return items def N(self): players = self.get_players() b=len(players) return b def marks_all(self): players = self.get_players() mmm = [p.marks() for p in players] return mmm def number_all(self): players = self.get_players() nnn = [p.number for p in players] return nnn class Player(BasePlayer): bid = models.IntegerField(label='Ваша ставка?', min=10, max=99) number = models.IntegerField(label='Ваш номер?', min=11, max=99) value_item = models.IntegerField() def optimal_bid(self): oo=self.value_item return oo def dif(self): dd=abs(self.bid-self.optimal_bid) return dd def marks(self): mm=0 if (self.bid >self.value_item) or (self.bid