I have following this tutorial http://www.chessbin.com/post/Chess-Piece-Representation to build simple chess engine right now .

at the very first step of Chess Piece Class there are many things confuse me.

why do we need many values to evaluate a chess piece for example :

pieceValue , pieceActionValue, AttackingValue, DefendingValue.

and is there any standard numerical values for evaluating chess pieces ?


  • Is this a chess or a programming question? From a chess point of view, obviously it can matter whether pieces are protected, attacked, whether they are active or not.... Typically protected pieces that cover lots of squares and attack something are more valuable than unprotected passive pieces with little space to move. Whether you want to make this information part of your piece class depends on your implementation I guess. It should also be possible to assess these things externally when evaluating the position. Jan 16, 2018 at 13:31
  • Since it depends on the implementation I doubt there are standard values. Jan 16, 2018 at 13:38
  • There wont be a standard until chess gets solved. Each implementation creates a model to mimic actual values but we don't know yet what the actual value is. Just guesses.
    – ferit
    Jan 17, 2018 at 8:17

1 Answer 1


Chess engine algorithms are implementation dependent, thus there is no such thing as "standard numerical values". Unfortunately, you will need to come up with your own values. However, you can apply some common sense such as the piece value for a queen must be higher than a rook. If you're confused, please take a look at the TSCP source code. It's a very simple chess engine.

Everything you mention is standard in chess. When you play chess, you do look the attacking/defending pieces, right?

Please take a read on:

Modern chess engines such as Stockfish has many more evaluation terms. The difficulty in coding a evaluation function is the main motivation for machine learning (neural networks).

Your Answer

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

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