diff options
author | notoraptor <stevenbocco@gmail.com> | 2019-07-18 15:28:17 -0400 |
---|---|---|
committer | Philip Paquette <pcpaquette@gmail.com> | 2019-07-19 10:01:52 -0400 |
commit | 34a0625f605bce0c72c5a3c4246ec8ba8a0e72e9 (patch) | |
tree | 1cd26a8057079d1f4fd20e5d73afe43b5535272b /diplomacy/engine | |
parent | 978b51fccb428c76b5d912ab748a313efa18676a (diff) |
[python] Add a new method to retrieve powers available for bots.
Diffstat (limited to 'diplomacy/engine')
-rw-r--r-- | diplomacy/engine/game.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/diplomacy/engine/game.py b/diplomacy/engine/game.py index 52ade4f..542bb27 100644 --- a/diplomacy/engine/game.py +++ b/diplomacy/engine/game.py @@ -475,9 +475,23 @@ class Game(Jsonable): return self.powers.keys() def get_dummy_power_names(self): - """ Return sequence of dummy power objects. """ + """ Return sequence of dummy power names. """ return set(power_name for power_name in self.get_map_power_names() if self.is_dummy(power_name)) + def get_dummy_unordered_power_names(self): + """ Return a sequence of playable dummy power names + without orders but still orderable and with orderable locations. + """ + return [power_name for power_name in self.get_map_power_names() if + # power must not be controlled by a user + self.is_dummy(power_name) + # power must be still playable + and not self.get_power(power_name).is_eliminated() + # power must not have yet orders + and not self.get_orders(power_name) + # power must have orderable locations + and self.get_orderable_locations(power_name)] + def get_controllers(self): """ Return a dictionary mapping each power name to its current controller name.""" return {power.name: power.get_controller() for power in self.powers.values()} |