tal-chess
TypeScript engine for chess and other two player zero-sum games.
Goals
- Code readability
- Ability to plug in and test different search and evaluation algorithms.
- Ability to play with personality. Inspired by the great Mikhail Tal. Ideally should be able to play with a choice of personalities based on famous players, through analyzing their games and classifying positions and determining their favorite types.
- Simple text-based UI making it possible to play without a UI for testing purposes. Unicode characters as used by Sunfish should suffice to represent board, and full algebraic should be used for input.
Non goals
- Sophisticated UI. Will eventually implement UCI for chess to communicate with UIs.
- Playing strength beyond grandmaster level. There are enough unbeatable engines; this one should be fun to play.
Possible future goals
- Opening book, possibly derived from games played by chosen personalities. An opening book may be supplied by a GUI when running under UCI.
References
Chess Programming
Chess
- Algebraic notation
- On personality in chess - Note particularly Botvinnik's comments and how he and Tal sought radically different types of position