thinkMover 1.7 (in development)
Planned Changes:
- Move sorting heuristics for alpha-beta
- Expand opening book
- 3-fold Repetition
- Hash
thinkMover 1.6
- Alpha-Beta pruning!
- Fixed mating attacks
- Remove some unused variables and arrays.
- Replaced all vars with let/const.
thinkMover 1.5
- Overhaul to make use of web workers for multi-threading!
- Inlined another major helper function for speed.
- Lots of cleanup to most piece-moving loops to remove unnecessary vars and incrementers.
- Skip lots of unnecessary conditionals in searching.
- ~25 positions added to opening book plus some fixes.
- Fix late-game detection for king evaluation.
- Minor evaluation score adjustments.
- Roughly 250,000 - 780,000 nodes/second. (quad-core)
thinkMover 1.4
- Inline some helper functions for speed.
- Speed up to move-invalidations due to check in move gen.
- Many minor optimizations.
- Many evaluation score adjustments.
- Better engine output messages.
- Improved quiescence.
- Roughly 9000 - 14500 nodes/second.
thinkMover 1.3
- Copy original move gen, squareInCheck, doMove, fastCloneNode and others into engine source for optimizations.
- Piece/Square value maps for much more accurate evaluations for pawns, bishops, knights and kings.
- Minor optimizations and evaluation score adjustments.
- Roughly 7000 - 12500 nodes/second.
thinkMover 1.2
- Opening book functionality added with ~50 positions.
- Improved pawn-pushing evaluation.
- Penalize doubled pawns.
- Penalize isolated pawns.
- Reward rooks on files with no self pawns, and reward even more if no pawns at all on its file.
- Reward kings for moving toward corners in early game, and towards center in late game.
- Replace ES5 forEach with basic 'for' loops for speed gain.
- Improve quiescent searching.
- Roughly 6000 - 12000 nodes/second.
thinkMover 1.1
- Replaced slow jQuery $.extend() for node-copying for a big speed-up plus other optimizations.
- Penalize knights in evaluation for being on any of the edges.
- Very simple pawn-pushing bonuses in evaluation.
- Roughly 2200 - 5500 nodes/second.
thinkMover 1.0
- My first engine with a recursive min-max search tree.
- Very simple and fairly weak.
- Roughly 300-600 nodes/second.
- Super basic material-only evaluation.
- Quiescent search based on captures.
RandomMover
Testing engine created after assembling all of the logic for a complete legal-move generator, including en passant, castling, 50-move draw rule, three-fold repitition, invalidation due to check, stalemate and checkmate. Simply looks at the current position, makes a list of all possible legal moves for itself and chooses one at random.