Example #1
0
 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)
Example #2
0
 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