def get_next_pair(config, cur_pair, cur_turn): if cur_pair.explaining + 1 == config.number_players: return Pair(0, AVA.get_round_shift(config, cur_turn)) return Pair( (cur_pair.explaining + 1) % config.number_players, (cur_pair.explaining + AVA.get_round_shift(config, cur_turn) + 1) % config.number_players)
def __init__(self, config): self.config = config self.__tours = [] self.__cur_turn = 0 # First pair in sequence of pairs who have not play yet self.__next_pair = Pair() self.__number_explained_words = 0 self.__alg = self.config.type() self.__next_pair = self.__alg.get_start_pair(self.config)
def get_next_pair(config, cur_pair, cur_turn): round_shift = AVAF.get_round_shift(config, cur_turn) is_less_than_two_blocks = int(config.number_players / (2 * round_shift)) == 0 block_size = config.number_players % round_shift if is_less_than_two_blocks else round_shift is_in_even_block = 0 <= cur_pair.explaining % (2 * block_size) < block_size is_last_in_block = cur_pair.explaining % block_size == block_size - 1 if not is_last_in_block and cur_pair.explaining + 1 < config.number_players: return Pair((cur_pair.explaining + 1) % config.number_players, (cur_pair.guessing + 1) % config.number_players) if is_last_in_block and cur_pair.explaining + block_size + 1 < config.number_players: return Pair( (cur_pair.explaining + block_size + 1) % config.number_players, (cur_pair.guessing + block_size + 1) % config.number_players) if is_in_even_block: return Pair(block_size, (block_size + round_shift) % config.number_players) return Pair(0, (round_shift + 1 + config.number_players - 2) % (config.number_players - 1) + 1)
def __init__(self, pair=Pair(), number_explained=0): self.pair = Pair(pair.explaining, pair.guessing) self.number_explained = number_explained
def get_start_pair(config): return Pair(0, 1)
def get_next_pair(config, cur_pair, cur_turn): return Pair((cur_pair.explaining + 1) % config.number_players, (cur_pair.guessing + 1) % config.number_players)
def get_start_pair(config): return Pair(0, int(config.number_players / 2))