Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix tictactoe reset bug (when one agent died) #1229

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

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
Collaborator

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
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