Chess engines are built to find the best move with the assumption they are playing against a perfect player. My question is, is there an engine out there or would it be easy to create an engine that focuses more on winning quickly against weak human players.

For instance, maybe this engine notices that in a position, it capture a minor piece, but this would open up a 10 move tactic in which the opponent could win a rook. Perhaps this engine would risk capturing the piece and go for a quicker win under the assumption that the human player would not see the tactic.

  • 3
    Some engines have a "contempt factor" that can be set.
    – Tony Ennis
    Commented Jan 14, 2017 at 6:03

1 Answer 1


Short answer: No such thing

Long answer: Contempt factor noted by @Tony is close but not exactly what you are looking for. It is a scaling constant for changing the evaluation score. It is a simple technique for avoiding early draws against apparently weaker opponents, or to prefer draws versus stronger opponents otherwise.

Other techniques that can influence the engine:

  • Run multi-pv analysis, and choose a move from the principal variations
  • Randomly add noise to the search
  • Slow down the engine
  • Fixed depth or fixed number of nodes
  • ......

But they are still not what you are looking for, because chess engine always assume a perfect opponent. Why? That's because the alpha-beta framework always prune bad moves. The framework doesn't allow for dirty cheap tricks.

Let's think about it. It's actually not trivial to code an engine that makes dirty tricks. How does an engine know the tricky would work for a human player? Maybe it's just a gross blunder?

It's hard to to tell the engine:

  • When to swindle vs when to defend
  • How a human player would fall into a trap
  • Stupid blunder vs great swindle
  • Thanks. That makes sense, if engines were to look further into bad moves to find shortcuts, it would really limit their efficiency
    – Me2
    Commented Jan 16, 2017 at 21:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.