Congratulations on the amazing app!
I usually play Spider with 2 suits, and I noticed that my win rate never seems to reach 92%. My score gets above 91%, but after playing several matches, I sometimes notice that it has dropped even though I haven’t lost any matches.
At first, I thought I might be imagining it, so I decided to take a screenshot of my stats before every match to make sure.
I found a particularly clear example:
Before the match:
I won the match.
After the match:
As you can see, Wins increased by 1, but Attempts increased by 2. This causes the win rate to decrease even though I won the match.
It looks like the match may be being counted twice in the number of attempts, while only being counted once as a win.
Version: SolitaireCG 4.1 for Android
Installed from: F-Droid
I found a reliable way to reproduce a similar issue.
The statistics work correctly when:
In this case, the game is not counted as a new attempt.
However, the problem occurs when all moves are undone before closing the app:
In this case, the game is counted as a new attempt, even though it was already counted when the first move was made.
I believe the problem is related to "mGameStarted" being restored based on whether "mMoveHistory" is empty.
After making and then undoing a move, the state before closing the app is effectively:
When the game is loaded again, "mGameStarted" is apparently reconstructed from the move history. Since the history is empty, it becomes "false". The next move then causes "MarkAttempt()" to be called again.