Programming

I. Static evaluation

A. Material

  1. This game has full of drawish material configurations. KNN-K, KQQ-K, KQQQ-K same queen color are among them. Evaluation should be corrected when such situation occurs.

B. Pawn structures

  1. Penalize isolated, doubled and backward pawns
  2. Two pawns on same rank are good

C. Piece square tables

  1. Create a table in such a way that pieces are centralized. It is also better to stay at back rank and close to center than close to left or right edges of the board.
  2. For bishops give more bonus if it is facing opponent's pieces and king in front than at the back. Usually the maximum value is given when such bishop reaches the 4th and 5th ranks, pushing it beyond those ranks can be dangerous for the so called over-extended pieces.

D. Threats

  1. It is better for the knight and rook to attack than to defend own pieces and important squares.

E. Defense

  1. Support the pawns with queen and bishops especially in opening

F. Mobility

  1. The primary issue is the mobility of pieces that are not close in the center. Slow pieces like bishops and queens should be penalized more when they have low mobility and when they are not close in the center.

G. King safety

  1. King should be placed away from the corners or edges of the board even in opening
  2. A minimal shelter of 2 pawn or queen or bishop can be enough
  3. Scale the king safety score based on opponent's rooks, knights, bishops and pair of queens with white and black colors

II. Move ordering

A. Pv moves

B. Captures

C. Killer moves

D. Move history scores

III. Search

A. Pruning

  1. Null move pruning
  2. Futility pruning
  3. Good static evaluation pruning
  4. Bad static exchange evaluation (SEE) pruning

B. Reduction

  1. Late move reduction
  2. Non-killer move reduction

C. Extension

  1. Check extension
  2. Recapture extension
  3. Pawn push to 5th ranks