Ya Gotta Have Heart(s)
December 17, 2018 9:43 PM   Subscribe

I have played, over the years and documented in my overall statistics, over 5,000 games of Microsoft Hearts. I am convinced the game cheats. Does it?

I will stipulate to being more paranoid than the next person. This could be in my head. For what it is worth, I have a winning percentage of over 60%.

After playing so many games for so long, I am convinced that on the pass, the game "peaks" at what I am passing and adjusts the pass to me accordingly.

Am I nuts? Is this happening? Is there any way to test it?
posted by AugustWest to Sports, Hobbies, & Recreation (7 answers total) 5 users marked this as a favorite
Response by poster: I also have never gotten zero points in a complete game. I have gotten 1 a decent amount, but never zero. Have any of you ever received no points while playing a complete game?
posted by AugustWest at 9:47 PM on December 17, 2018 [1 favorite]

One way to test it might be with something like Cheat Engine, which can look at values in memory. From my understanding with other games you might be able to isolate some part of memory that (if it is cheating) is activating to get the secret information that a human player should never have.

There are some videos on YouTube of people getting perfect zeroes.

If the game does 'cheat', then my guess is that it's just bad AI programming that's in there to rubberband the difficulty, and allow the computer to catch up when it's losing, or to make some games harder than others (and keep player interest).
posted by codacorolla at 10:48 PM on December 17, 2018 [1 favorite]

I play Hearts on a different platform. When a deal happens, the three opponents make their choices to Pass before I do and just wait for me to choose mine, then I click the Pass arrow and it all switches. I can't detect any change in their choices based on what my choices are, so I don't think it's cheating. Can't prove it, of course. As to getting zero score, best I've ever done in four hands is a total of one, which pleased me no end. Here's the link to my platform (just click on Hearts icon): Cards
posted by MovableBookLady at 5:53 AM on December 18, 2018

I'm not sure how you would go about testing for peaking, but I have gotten a zero score before. My white whale is now shooting the moon four straight times to win. I got three in a row once, and twice in a row several times, but the quadruple is elusive.

/10k+ games played, but no statistics kept.
posted by matrixclown at 6:51 AM on December 18, 2018

Answering this question by inspecting the running program with debugging & reverse engineering tools would be an interesting exercise for the average competent hacker.

There are some experiments you could do fairly easily without such skills, though. The simplest way would be to run Windows in a virtual machine (using e.g. VirtualBox or VMware), play a game of Hearts, and then snapshot the machine state just before the pass.

By repeatedly restoring that snapshot, you can then experiment with "what would have happened if I had passed X instead".

If the game is cheating in certain obvious ways, e.g. the outcome of the pass is repeatably dependent on what you pass, then you should be able to catch it in the act this way quite easily.

There are lots of possibilities that would not be caught by this method, though, depending how the game generates random numbers. If it uses a simple pseudo random number generator seeded at the start of the game, then you should be able to get the same results repeatably for the same pass. If there is ongoing randomisation involved that is seeded based on the system clock, mouse movements, and other randomish things, then it may not be possible to reproduce the same results even if you make the same pass, which will make it harder to discern if it's behaving differently depending on your passes.
posted by automatronic at 3:35 PM on December 18, 2018 [1 favorite]

The VM / snapshot comparison idea is very good.

A way that would involve less programming, but more traditional mathematics, would be to use statistical modeling. I'm assuming that you could generate a probability of that variety of pass happening, and then run a real life test of games. I'm not a very strong statistician, but I think that two pain points would be generating enough data for the human side (you'd need a lot of humans keeping accurate track of this exact instance) and also being able to accurately generate the guess for the ground truth of the model.
posted by codacorolla at 4:59 PM on December 18, 2018

This hack enables a debug mode that shows the other players cards.. I've used it. Even if it doesn't cheat based on a players choices, the player gets some cards far more often than chance: 2 of clubs on the 'no pass' hand, an Ace or King of spades as the sole club which is usually when West is holding the Queen.

Others have investigated the game. Google: microsoft hearts cheats
posted by Homer42 at 4:42 AM on December 19, 2018 [1 favorite]

« Older I'm attached to my hair - it isn't attached to me...   |   women in the US take their husbands' names? Newer »
This thread is closed to new comments.