I'm doing research about how different conditions or situations affect the decision making process in chess. For example if the opponent's ELO ranking affects the average time used for every move. In the example, both variables are numerical and easy to obtain. However I struggle when it comes to define if a move is more passive or aggressive (specially after the opening theory).

I noticed that, independently of playing style, there are some external factors that make us play more actively (aggressively, taking more risk) or passively (defensively, taking less risk). I read some articles that say it depends on the current position and the analyzer "strength" to determine with certainty, but that is too subjective for my purposes. There must be some some objective cues to help me.

I was thinking about the mobility (as in how many moves the player or the specific piece have after the last move) or/and if it is making or stopping a threat. Are there other cues or methods I could use to define if a move is passive or aggressive?

Is there software where I can analyze a complete game and give me this kind of output? Perhaps not if the movement was aggressive, but maybe if it is making a threat or reaching more mobility than before?

I also know that some software like Chessmaster, uses AI "personalities" and some make passive or aggressive moves as their traits. Can someone explain how the software chooses a move that may not be optimal but a passive one?

4 Answers 4


Let me answer your questions precisely and technically:

  • Q: I also know that some softwares like chessmaster...?

    Nobody knows for sure because Chessmaster is closed source. Fortunately, it's not hard to replicate Chessmaster personalities. There're several ways to do it:

    • Define different piece-square-table (PST) for each personality
    • Define different tuning parameters for each personality
    • Scale the attacking parameters and/or defending parameters with a constant
    • Give an appropriate Contempt value

It takes some work to create a new personality, but it should be just minor changes to a working chess engine.

The Stockfish engine had an UCI option for optimizating attacking and defending parameters. This was done by scaling the evaluation score accordingly. For example, if you scaled your own king safety score by a positive constant greater than 1, the engine would be more defensive.

  • Q: How to determine if a move is aggregative or defensive?

Tony, Brian and others gave good suggestions, but their suggestions are for human players and too abstract for a computer. If you want a computer to tell you whether a move is aggressive or defensive, you may need:

  • Null move
  • Monte-Carlo tree search

Null-move is simple and it's been implemented in various chess softwares. The idea is simple - if the move doesn't threaten anything, it should not be an aggressive move.

Monte-Carlo tree search goes even further. You can use it to determine the distribution of your payoff. If a move is aggressive, the margin error should be smaller. If a move is defensive, the margin error should be bigger.

  • Thanks for the answer! I'm not a programmer or having any skills on the matter. what I'm planning to do, generally speaking, is to analyze entire games and identify the aggressive moves vs the passive ones. is there any software I can use to obtain any index about both methods (null-move or monte-carlo tree search) you suggested? Jan 2, 2017 at 14:06
  • @GuillermoMendoza Not that I'm aware of, because there is no market to sell.
    – SmallChess
    Jan 2, 2017 at 14:08
  • Also note that if a move is clearly the best move, then you shouldn't call it either aggressive or passive. A move should only be labelled if there was an alternative (at least almost as good) that wouldn't get the same label. Jan 2, 2017 at 19:52

I think that at the GM level, all moves are aggressive, after a fashion. All are designed to harm the opponent, even if a previous error has cost us the advantage.

Tal's moves may seem aggressive but frequently granted him remarkable defensive resources. Similarly, Petrosian's 'passive' style was anything but. They were elemental forces with wholly different styles.

I don't know how a chess program would rate one more as aggressive and another as passive, except for the obvious - checking may be deemed aggressive. Setting up a double attack may seem aggressive. Perhaps choosing the 2nd or 3rd best 'good' move would be considered passive. Or the lowest rated 'good' move that involved a pawn.

Perhaps a passive move is one that allows the other player the widest array of good responses. Yep, that rings true. That's my answer.

  • however I'm not sure about the last condition. That would imply that an aggressive move will leave the least amount of good responses right?. an aggressive move it is not always the best move. with that being said, It could be interesting to focus on just on the bad moves, the mistakes. and see if the nature of that mistakes was aggressive or was defensive. Jan 1, 2017 at 17:14

I would say a move is more aggressive if it involves one or more of the following:

1) Attacking an enemy piece, particularly a more powerful piece

2) Attacking a square near the opponent's king

3) Moving deep into enemy territory

4) Threatening to move deep into enemy territory

5) Moving forwards

I would say a move is more defensive if it involves one or more of the following:

1) Moving away from an attack by an enemy piece

2) Defending own piece

3) Defending a square near own king

4) Moving out of enemy territory

5) Moving backwards


You want to define it for some automat system? This will be very hard work to do if it should reflect the real meaning of passivity.

If you want some easy parameter not very concerned about precision of result, these come to my mind:

  • Some function of target rank of piece.
  • Some function of long term material imbalance in games.

For more complex logic you should probably ask some engine developers but this is closer to science than to everyday work and without good reason they will probabbly not be very cooperative.

Edit: even though I like Tony Ennis answer more, this one is still viable as it will do the work with waaaaaay less CPU resources.

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.