def testActionFlipping(self):
   cfg = config.Config()
   for action in football_action_set.full_action_set:
     # Flipping twice should give the same action.
     action_id = observation_rotation.flip_single_action(
         observation_rotation.flip_single_action(action, cfg), cfg)
     self.assertEqual(action, action_id)
 def _get_actions(self):
     obs = self._env.observation()
     self.stateHist.append(obs)
     left_actions = []
     right_actions = []
     left_player_position = 0
     right_player_position = 0
     for player in self._players:
         adopted_obs = self._convert_observations(obs, player,
                                                  left_player_position,
                                                  right_player_position)
         left_player_position += player.num_controlled_left_players()
         right_player_position += player.num_controlled_right_players()
         a = self._action_to_list(player.take_action(adopted_obs))
         assert len(adopted_obs) == len(
             a), 'Player provided {} actions instead of {}.'.format(
                 len(a), len(adopted_obs))
         if not player.can_play_right():
             for x in range(player.num_controlled_right_players()):
                 index = x + player.num_controlled_left_players()
                 a[index] = observation_rotation.flip_single_action(
                     a[index], self._config)
         left_actions.extend(a[:player.num_controlled_left_players()])
         right_actions.extend(a[player.num_controlled_left_players():])
     actions = left_actions + right_actions
     self.actionHist.append(left_actions)
     return actions
Esempio n. 3
0
 def _get_actions(self):
     obs = self._env.observation()
     players_and_relative_obs_pairs, agent_obs = self.get_players_and_relative_obs_pairs(
         obs=obs)
     # assert 0, obs
     left_actions = []
     right_actions = []
     for player, adopted_obs in players_and_relative_obs_pairs:
         a = self._action_to_list(player.take_action(adopted_obs))
         assert len(adopted_obs) == len(
             a), 'Player provided {} actions instead of {}.'.format(
                 len(a), len(adopted_obs))
         if not player.can_play_right():
             for x in range(player.num_controlled_right_players()):
                 index = x + player.num_controlled_left_players()
                 a[index] = observation_rotation.flip_single_action(
                     a[index], self._config)
         left_actions.extend(a[:player.num_controlled_left_players()])
         right_actions.extend(a[player.num_controlled_left_players():])
     actions = left_actions + right_actions
     return actions, agent_obs