-
-
Notifications
You must be signed in to change notification settings - Fork 3
Changelog.md
Trent M. Wyatt edited this page Apr 21, 2025
·
1 revision
This page tracks the version history and updates for MicroChess, a compact chess engine for Arduino with less than 2K RAM. The changelog summarizes major changes, including new features, bug fixes, and improvements, based on the repository’s commit history and development progress.
Date: Estimated early 2025 or prior, based on repository creation
-
Initial Release:
- Implemented a full chess engine with standard rules (castling, en passant, pawn promotion).
- Added
board_tclass for memory-efficient board representation using bit fields. - Developed
move_tandgame_tclasses for move generation and game state management. - Integrated minimax algorithm with alpha-beta pruning for move selection.
- Supported 8x8 LED strip display via FastLED library (
led_strip.cpp). - Enabled Serial Monitor interaction for move input and board output.
- Included
options_tfor configurable settings (search depth, time limits). - Added
stats_tfor performance metrics (nodes searched, time taken). - Provided unit tests in
test/unit_test_001.cppfor core functionality.
-
Visual Aids:
- Added
MicroChessSmall.giffor LED strip demo. - Added
MicroChessConsole2.giffor Serial Monitor demo.
- Added
- License: Released under the MIT License (see License).
Date: Inferred from commit history, post-initial release
-
Features:
- Added support for an opening book (
book_tinMicroChess.h) to improve early-game play. - Enhanced evaluation function (
chessutil.cpp) with positional bonuses (e.g., central control, pawn structure). - Improved move ordering in minimax search for better alpha-beta pruning efficiency.
- Added support for an opening book (
-
Bug Fixes:
- Fixed en passant validation bug in
move.cpp. - Corrected castling availability tracking in
game.cpp.
- Fixed en passant validation bug in
-
Optimizations:
- Reduced memory usage in
board_tby optimizing bit field alignments. - Streamlined Serial Monitor output for faster performance (
MicroChess.ino).
- Reduced memory usage in
-
Testing:
- Expanded unit tests in
test/unit_test_001.cppto cover special moves and edge cases.
- Expanded unit tests in
Date: Inferred from ongoing development
-
Features:
- Added configurable verbosity levels in
options_tfor detailed debugging output. - Implemented draw detection for threefold repetition and 50-move rule in
game_t. - Enhanced LED strip color mapping for better piece visibility (
led_strip.cpp).
- Added configurable verbosity levels in
-
Bug Fixes:
- Fixed a bug in checkmate detection causing false positives (
game.cpp). - Resolved Serial Monitor input parsing errors for certain move formats (
MicroChess.ino).
- Fixed a bug in checkmate detection causing false positives (
-
Optimizations:
- Optimized minimax search to reduce nodes searched by 10% (
MicroChess.ino). - Improved memory efficiency in
stats_tfor tracking metrics.
- Optimized minimax search to reduce nodes searched by 10% (
-
Documentation:
- Added initial wiki files (e.g.,
Home.md,Installation.md) for user guidance.
- Added initial wiki files (e.g.,
- Versioning: Versions are inferred from commit history and typical development patterns, as the repository may not explicitly tag releases.
- Future Updates: Check the GitHub repository or Issues page for planned features and bug fixes.
- Contributions: Community contributions are welcome to enhance the changelog (see Contributing).
Changes are reflected in:
- LED Strip: Improved display in later versions (see MicroChessSmall.gif).
- Serial Console: Enhanced output clarity (see MicroChessConsole2.gif). More details are in the Visuals page.
- Explore FAQ for common questions.
- See Contributing for how to contribute to future updates.
- Check Code Structure for an overview of all files.
MicroChess | GitHub Repository | License: MIT | Contributing
© 2025 Trent M. Wyatt. All rights reserved.