thinkMover 1.6 (In Development)
- Convert some core data structures from arrays to bitwise values.
- True alpha-beta pruning with killer-move and hash tables.
- Greatly expand opening book.
- 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)
- 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.
- 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.
- 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.
- 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.
- 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.
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.