google-deepmind / hanabi-learning-environment

hanabi_learning_environment is a research platform for Hanabi experiments.
Apache License 2.0
639 stars 144 forks source link

HanabiState.copy() truncates fireworks #45

Open ChemStud24 opened 2 years ago

ChemStud24 commented 2 years ago

I ran this straightforward script:

from hanabi_learning_environment.pyhanabi import HanabiGame g = HanabiGame() s1 = g.new_initial_state() print(s1.fireworks()) s2 = s1.copy() print(s2.fireworks())

And I got this output: [0, 0, 0, 0, 0] [0, 0, 0]

This means HanabiState.copy() is not copying the fireworks correctly. This issue presents itself in two different ways depending on the number of colors C in the game.

If C > 3, then HanabiState.copy() truncates the fireworks to a length of 3. If C <= 3, then coping the state and calling s2.fireworks() throws the following error:

terminate called after throwing an instance of 'std::out_of_range' what(): vector::_M_range_check: __n (which is C) >= this->size() (which is C) Aborted (core dumped)

Where C is again the number of colors in the game parameters.

ChemStud24 commented 2 years ago

This same issue is discussed and supposedly resolved in #36, but I am still experiencing it.

It seems pull request #35 has implemented a fix, but it still has not been merged with the master branch yet.

ChemStud24 commented 2 years ago

This issue has been resolved on my end, but it took a minute because I'm also using the features implemented in #40. It would be great to see both #40 and #35 merged into the master branch soon.