The chess engine runs completely standalone in the browser and does not require any backend. All computer moves are calculated in the background using Web Workers and do not block the main thread for the UI.
- Chess engine implemented in AssemblyScript
- Computer opponent with 5 difficulty levels
- Drag'n'Drop support to move chess pieces
- Touch support for mobile devices
- Responsive design
- Undo player move
- Save game in local storage
- Check for threefold repetition rule
- Display move history in algebraic chess notation
- Export and import positions in FEN
Planned engine improvements
- Optimize move generation
- Improve position evaluation
- Use opening database and endgame tables
- AssemblyScript - for the engine
- as-pect - to test the engine
- react - for the user interface
- react-dnd - for Drag and Drop support
- styled-components - to style React components in JS
- react-fontawesome - to add font icons
- workerize-loader - to load modules as Web Workers
This project is licensed under the GNU General Public License - see the LICENSE for details.
Images for the chess pieces come from Wikimedia Commons.