Sometimes yes, computers play a certain way and make moves that simply aren't intuitive to humans, especially not lower rated players.
However the most obvious cheaters are more easily given away by time between moves. When they take the same time between every move whether it be a deep positional move or an obvious recapture, you can be quite sure something fishy is going on. Sometimes they can have literally 1 legal move and still take 10 seconds to find it.
A good player using an engine sparingly however would be very difficult to spot in online chess, especially in a single match.
> Sometimes they can have literally 1 legal move and still take 10 seconds to find it.
Perhaps a nit-pick: they need to discover the legal move, and discover that no other moves are possible, right? As a rather basic chess player myself, I can imagine I might spend some time on this depending on the situation.
I think the idea is that an experienced player would recognise this situation immediately (usually there is only one legal move because you are in check, or there is only one move that doesn't put you in check), or even ahead of time (knowing that their opponent's move brings them in check) and just play the only possible move straight away.
Of course a beginner would take some time to spot this, but it's unlikely you would confuse a beginner for a cheater, since a beginner will likely make many sub-optimal moves and spend lots of time thinking in general.
Depending on the situation, the chess website/app might show you that there is only 1 left. Already, when in check, you can't play a move that doesn't stop or cancel that check.
I don't want to advertise cheating or give any info about cheating, but a "good" cheater can also cheat in bullet and may be even go more undetected if they were to mix moves well.
Note: I have not cheated myself, but I can definitely see a way it can be done. I'm not sure if it would be good of me to describe the process of course... Just think what input you can have and what output you can get if you were to do this programmatically and you can very well imagine if it's possible, there are also existing tools for that. You don't have to open a chess engine in another window and manually do the movements, if you know how to script.
In bullet, I think may be, you could technically even use something to do "anti blundering", meaning you will blunder a lot less, because engine will just check whether it would be an obvious blunder, and block your move. May be you just allow few blunders, and I imagine it would be undetected. Sorry, again for brain storming about that. It is fascinating topic though. Engine could be running on a lower depth and it could be more sort of positional engine that does not do magical engine moves, but is trained on human players and using neural network mostly. Maybe it will just help you do theory openings. And you won't be able to charge anyone for cheating for following opening theory.
At the end of the day it's akin to the "true randomness" problem. How do you prove a random numbers generator isn't truly, or fully random? Or that chess moves are "truly human", and not computed by an engine. You can only approach this probabilistically.
I also think the cheating detection algorithms can be beated, and I believe I could do that. Why do they still serve their purpose, more often than not?
To me, it's inherently linked to the very nature of online cheating. It's essentially a futile, nonsensical activity. The only gratification is an illusion of intellectual superiority, whose worthlessness is so transparent that it can only attract people who don't get to experience the sense of intellectual superiority pretty much anywhere else. As harsh as it may sound, your average cheater is rather stupid. That's why it isn't really difficult to catch 90% of them.
I don't rule out there are some cheaters who do it out of intellectual curiosity, but that would be a statistical outlier.
Well, obviously it's impossible to know with 100% certainty. Some heuristics include:
* Some cheaters will just 100% match the best engine moves. If a player consistently does exactly what Stockfish would do that's an obvious giveaway.
* Some cheaters will be manually copying moves between the chess website and their engine; in high-speed games ('blitz' and 'bullet' chess) their abilities plummet when there are only a few seconds left on the clock, because they can't copy fast enough.
* Similarly, a player who takes 5 seconds a move whether they're pounding out a basic book opening or making an inspired move in an extremely complicated situation will raise suspicion.
* Some cheaters will just be improbably good for their known background. A few weeks back some billionaire beat five-time world champion Vishy Anand in a charity game (where Anand played a bunch of different games at once) which is the chess equivalent of Mark Zuckerberg outrunning Usain Bolt.
* Chess engines will sometimes make moves that even the top humans fail to see. All the action is happening on the right of the board, and some innocuous move on the left of the board produces a perfectly executed forced mate in 15 moves? Some people will look at that suspiciously.
Of course, a sufficiently careful cheater could cheat without triggering any of these heuristics - a player who only relies on the engine for one or two key moves can easily be undetectable.
I guess a basic implementation might compare the moves performed by the player under evaluation against the move that an engine would suggest?
Presumably an excellent player might often make the same moves as an engine, so this measure alone isn't going to be perfect. But it could be a starting point. You might also look at the player's historical performance and watch for suspicious changes, or perhaps look for patterns in the time taken to play the move?
It's hard because often cheaters will play 'clean' until they get behind or to a particularly ambiguous spot, when they will cheat for one or two moves.
The really hard part of chess is what to do in the mid game, once you're off your scripted opening, there is still lots of material, and neither player has any significant vulnerabilities. A computer is useful here.
You could even just use computer to do near perfect theory openings and you can not charge any one for cheating here, and you can still gain more ELO there. There's so much variance you could do. One does not have to alt tab to input and mirror chess engine moves with Stockfish.
You can use neural network only, which is trained on human players, and have a programmatic way for AI to have suggestions on where to move show up on your screen. Time delay being pretty much non-existant, and maybe even good script can pre-move very obvious things for you. Maybe the AI will give you 3 non blunder moves, and you can yourself choose which makes the most sense or just block you from obviously blundering, but maybe like only 90% of the time.
I don't like giving out ideas here, but I feel like these are obvious ways one could cheat and go undetected.
> You could even just use computer to do near perfect theory openings and you can not charge any one for cheating here, and you can still gain more ELO there.
That would be hard to distinguish from someone memorizing an opening book. So hard to detect.
I guess you could compare the outputs for different engines with that of a "suspicious" player - if their moves match exactly, flag them, if it happens too many times, ban them. Something like that.
Someone who plays a lot against a computer will often pick up the computer's style.
But sometimes a computer will make odd moves no human would ever make. I've been playing against an ios stockfish app to relearn how to play, and when it gets behind it starts throwing material away to delay the inevitable; a human would more likely keep the material and hope the opponent doesn't see the path to victory.
One way to detect use of an engine is to look for moves like this, though if it could be done algorithmicly then that same algorithm could be used to make the engine play more like a human.