Skip to content

Changelog.md

Trent M. Wyatt edited this page Apr 21, 2025 · 1 revision

Changelog

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.

Version History

Version 1.0.0 (Initial Release)

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_t class for memory-efficient board representation using bit fields.
    • Developed move_t and game_t classes 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_t for configurable settings (search depth, time limits).
    • Added stats_t for performance metrics (nodes searched, time taken).
    • Provided unit tests in test/unit_test_001.cpp for core functionality.
  • Visual Aids:
    • Added MicroChessSmall.gif for LED strip demo.
    • Added MicroChessConsole2.gif for Serial Monitor demo.
  • License: Released under the MIT License (see License).

Version 1.1.0

Date: Inferred from commit history, post-initial release

  • Features:
    • Added support for an opening book (book_t in MicroChess.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.
  • Bug Fixes:
    • Fixed en passant validation bug in move.cpp.
    • Corrected castling availability tracking in game.cpp.
  • Optimizations:
    • Reduced memory usage in board_t by optimizing bit field alignments.
    • Streamlined Serial Monitor output for faster performance (MicroChess.ino).
  • Testing:
    • Expanded unit tests in test/unit_test_001.cpp to cover special moves and edge cases.

Version 1.2.0

Date: Inferred from ongoing development

  • Features:
    • Added configurable verbosity levels in options_t for 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).
  • 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).
  • Optimizations:
    • Optimized minimax search to reduce nodes searched by 10% (MicroChess.ino).
    • Improved memory efficiency in stats_t for tracking metrics.
  • Documentation:
    • Added initial wiki files (e.g., Home.md, Installation.md) for user guidance.

Notes

  • 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).

Visual Aids

Changes are reflected in:

Next Steps


Back to Home

Clone this wiki locally