The adjudicator (in approx line 187) checks if a round is over and will subsequently reshuffle. Since the end of the game also counts as the end of a round, a shuffle is triggered at the end of the game.
If the game is over, the final state should differ from the previous state in that the final card is played and the points are updated. The deck should not be reshuffled.
Potential fix is something like:
if self.is_round_over() and not self.is_finished(): ...
The adjudicator (in approx line 187) checks if a round is over and will subsequently reshuffle. Since the end of the game also counts as the end of a round, a shuffle is triggered at the end of the game.
If the game is over, the final state should differ from the previous state in that the final card is played and the points are updated. The deck should not be reshuffled.
Potential fix is something like: