def dislodge_prob(self, unit, bias, adjacent_units): ''' How likely the indicated unit is to be dislodged unless it moves. Assumes that no enemy units are in the indicated unit's province. '''#''' enemies = self.enemies(unit.location.province, unit.nation, adjacent_units) # if no more than one enemy unit nearby, 0 if len(enemies) <= 1: return 0 # if all nearby enemy units are attacked, 0 if all(self.attacked_prob(enemy.location.province, enemy.nation, 1, not bias, adjacent_units) == 1 for enemy in enemies): return 0 # Todo: Guess better than this strength = 1 return self.attacked_prob(unit.location.province, unit.nation, strength, bias, adjacent_units)
def check(self): winner = self.winner() done = False if winner: self.output("Winner: %s", self.symbols[winner]) self.win.refresh() sleep(.2) done = True for n, player in enumerate(self.players): if winner == n + 1: points = 1 else: points = -1 player.result(points) elif all(self.board): self.output("Tie!") self.win.refresh() sleep(.2) done = True for player in self.players: player.result(0) if done: self.reset() return done