- Pieces on the board, P=100cp; R=495cp; N=280; B=290cp; Q=895cp (a bit less than the accepted values to encourage positional play).
- The pawns positions on the board, giving a small bonus to pawns that have advanced further up the board.
- Bonus for passed pawns; penalty for doubled & isolated pawns.
- Knight position bonus (controlling central squares).
- Mobility bonus (1 centipawn for each move), excluding the king.
- Bonus for castling capability (retains bonus once castled).
I estimate Vicki at about 1100, having played against rated engines (she even won a few!). Some serious things are still missing and are next on my todo list:
- Vicki does no move ordering whatsoever. I have a few ideas that I would like to implement, including SEE, sorting by the principal variation returned by the iterative deepening search (yes, all previous iterations are wasted!) and finally, a variation of killer moves.
- Transposition table (Zobrist keys are working).
On a positive note, Vicki had an interesting game against Mediocre, where it was way behind in material and tried to sacrifice a rook (by attacking Mediocre's rook) to force a stale-mate. I was rather impressed by the strategy (which I first thought was a bug!) However, Mediocre is no pushover engine and didn’t fall for that trick and simply moved its rook away! Vicki was mated a few moves later, but at least the draw-detection is working well.