You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I found a problem if all but one players are all-in, i.e. only one player has stack available. The environment continues to ask the player that isn't all-in for a move, which can then mean the agent can (needlessly) continue to raise against players who obviously wouldn't be able to call (so it creates a sidepot with only that player in), as you can see here:
players:
0 [ ],[ ] stack: 0
1 [2�[31m♥�[0m],[8�[31m♦�[0m] stack: 0
2 [J�[31m♦�[0m],[7�[31m♥�[0m] stack: 28665
3 [ ],[ ] stack: 0
Getting move from agent for player 1 (Agent: 2)
Player 1 Move: [0,0]
total pot: 11335
last action by player 1:
�[37m_ check�[0m
community:
- [9♣],[4�[31m♦�[0m],[A♣],[J�[31m♥�[0m],[ ]
players:
0 [ ],[ ] stack: 0
1 [2�[31m♥�[0m],[8�[31m♦�[0m] stack: 0
2 [J�[31m♦�[0m],[7�[31m♥�[0m] stack: 28665
3 [ ],[ ] stack: 0
Getting move from agent for player 2 (Agent: 3)
Minimum raise: 25 As percentage is : 0.0008721437292865864
Player 2 Move: [2,2867]
Player 2 ('raise', 2867)
total pot: 14202
Here you can see player1 checked because it's all-in, but the environment continued to ask player2 for a move, who then raised against a player who was already all-in, which obviously doesn't make sense. In fact, in this case it then repeated this again when the last community card was dealt.
In env.py there's this line:
if not self._current_player.playedthisround and len([p for p in players if not p.isallin]) >= 1:
Initially I though the >= should be changed to > 1 but there'd be a problem if player1 had raised and gone all-in, and then due to the above code change it wouldn't have asked Player2 for a move as there's now only one player that's not all-in.
I could of course program my agent to check if all other players are all-in and if so then disable the ability to raise, but I think the environment should handle this better. I'm just not sure how...
The text was updated successfully, but these errors were encountered:
I found a problem if all but one players are all-in, i.e. only one player has stack available. The environment continues to ask the player that isn't all-in for a move, which can then mean the agent can (needlessly) continue to raise against players who obviously wouldn't be able to call (so it creates a sidepot with only that player in), as you can see here:
Here you can see player1 checked because it's all-in, but the environment continued to ask player2 for a move, who then raised against a player who was already all-in, which obviously doesn't make sense. In fact, in this case it then repeated this again when the last community card was dealt.
In env.py there's this line:
if not self._current_player.playedthisround and len([p for p in players if not p.isallin]) >= 1:
Initially I though the
>=
should be changed to> 1
but there'd be a problem if player1 had raised and gone all-in, and then due to the above code change it wouldn't have asked Player2 for a move as there's now only one player that's not all-in.I could of course program my agent to check if all other players are all-in and if so then disable the ability to raise, but I think the environment should handle this better. I'm just not sure how...
The text was updated successfully, but these errors were encountered: