google-deepmind / hanabi-learning-environment

hanabi_learning_environment is a research platform for Hanabi experiments.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HanabiState.copy() truncates fireworks

ChemStud24 opened this issue · comments

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.

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.

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.