A chess engine I made with a bit of personality, I'd say he's rated around 1400 on a good day.
Wukong will always play the King's gambit as white and Sicilian as black if position allows, as these are his favourite openings. He will always capture en passent if possible as he likes the move very much.
On every turn, WuKong generates every legal move available on the board, including special moves such as castling, en passant, and promotion. This is also how checkmate and stalemate are detected. For simplicity, WuKong always promotes pawns to a queen.
WuKong searches several moves ahead using the minimax algorithm, assuming both players make the strongest moves available. It evaluates each possible continuation and chooses the move that leads to the best overall position.
Looking ahead becomes increasingly expensive as the number of possible moves grows. Wukong uses alpha-beta pruning to speed things up by ignoring move sequences that don't influence the final decision. This allows him to finish his search faster. (PS: The search depth is fixed at five moves, find a tactic beyond that and you'll likely gain an advantage.)
WuKong judges positions using a combination of material and positional evaluation. Stronger pieces are worth more, while additional bonuses reward well-placed pieces. These values are based on classical chess principles rather than machine learning.
The chess pieces are standard Unicode characters provided by your browser's fonts rather than image files, so their appearance may vary slightly between devices.
I built WuKong as a fun project, and while he plays decent, I can still beat him fairly consistently. I'm not sure whether I should be proud that my chess skills still hold up, or disappointed that my own creation hasn't managed to beat me yet. If I ever decide to make WuKong stronger, these are some possible improvements: