Skip to content

Conversation

@Cheaple
Copy link

@Cheaple Cheaple commented Sep 11, 2024

Description

In a tictactoe environment env, if env get resetted when an possible agent is not in the env.agents list (for invalid action or other reasons), that agent would not be selected forever, since env._agent_selector always gets re-initialized with the list env.agent which misses that agent. To fix this situation, env._agent_selector should get re-initialized with env.possible_agents (which contains all possible agents.) rather than env.agents.

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)

Screenshots

Please attach before and after screenshots of the change if applicable.
To upload images to a PR -- simply drag and drop or copy paste.

Checklist:

  • I have run the pre-commit checks with pre-commit run --all-files (see CONTRIBUTING.md instructions to set it up)
  • I have run pytest -v and no errors are present.
    • only Format YAML files. failed.
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I solved any possible warnings that pytest -v has generated that are related to my code to the best of my knowledge.
    • there is an error, which also happens before my commit
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

@David-GERARD David-GERARD reopened this Dec 4, 2024
@David-GERARD
Copy link
Contributor

I had to close and reopen the PR to trigger the CI tests.

@David-GERARD David-GERARD self-assigned this Dec 4, 2024
@David-GERARD David-GERARD added the bug Something isn't working label Dec 4, 2024
@benblack769
Copy link
Contributor

Hi, can you post a particular set of inputs/calls which causes the failure case you found? The current code sets self.agents = self.possible_agents[:] at the beginning of the reset function, which means that all agents should be included after reset.

Additionally, this environment follows the same pattern as the chess https://github.com/Farama-Foundation/PettingZoo/blob/master/pettingzoo/classic/chess/chess.py#L241 environments. So I'm wondering what sort of inputs could cause the error mentioned.

@David-GERARD David-GERARD modified the milestone: 1.24.4 release Dec 9, 2024
@David-GERARD
Copy link
Contributor

@Cheaple can you respond to @benblack769, and update your fork to the latest version of PettingZoo master?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants