Veggerby.Boards.Chess
0.1.0-prerelease0157
See the version list below for details.
dotnet add package Veggerby.Boards.Chess --version 0.1.0-prerelease0157
NuGet\Install-Package Veggerby.Boards.Chess -Version 0.1.0-prerelease0157
<PackageReference Include="Veggerby.Boards.Chess" Version="0.1.0-prerelease0157" />
<PackageVersion Include="Veggerby.Boards.Chess" Version="0.1.0-prerelease0157" />
<PackageReference Include="Veggerby.Boards.Chess" />
paket add Veggerby.Boards.Chess --version 0.1.0-prerelease0157
#r "nuget: Veggerby.Boards.Chess, 0.1.0-prerelease0157"
#:package Veggerby.Boards.Chess@0.1.0-prerelease0157
#addin nuget:?package=Veggerby.Boards.Chess&version=0.1.0-prerelease0157&prerelease
#tool nuget:?package=Veggerby.Boards.Chess&version=0.1.0-prerelease0157&prerelease
Veggerby.Boards.Chess
Chess module for Veggerby.Boards providing piece set, initial FEN-equivalent placement, movement patterns, and rule wiring atop the immutable deterministic core.
Depends on
Veggerby.Boards
. Use when you want a ready chess ruleset or a foundation for chess variants (house rules, timing layers, analysis tooling).
Install
dotnet add package Veggerby.Boards.Chess
Scope
Adds:
ChessGameBuilder
producing a ready game with standard initial layout- Movement pattern definitions (directional, fixed, multi-direction) consumed by visitors
- Rule conditions for basic piece movement & occupancy
- Path resolution (pattern → concrete
TilePath
)
Not yet included (roadmap): check/checkmate detection helpers, castling / en passant specialized events, bitboard acceleration, hashing.
Quick Start
var builder = new ChessGameBuilder();
var progress = builder.Compile();
var pawn = progress.Game.GetPiece("white-pawn-2");
var from = progress.Game.GetTile("e2");
var to = progress.Game.GetTile("e4");
var pathVisitor = new ResolveTilePathPatternVisitor(progress.Game.Board, from, to);
var updated = progress.HandleEvent(new MovePieceGameEvent(pawn, pathVisitor.ResultPath));
Key Concepts (Chess Layer)
- Pattern → Path resolution decouples declarative movement from board topology
- Immutable history allows branching for analysis (future engine feature: timeline hashing)
- Piece identity is stable; only state snapshots change
Extending / Variants
Add a variant by:
- Subclassing or composing a new game builder that adjusts piece set or starting tiles
- Introducing new events (e.g., PromotePieceGameEvent) + rule/mutator
- Adding conditions for special rights (castling readiness, en passant availability)
Keep changes pure & deterministic.
Planned Enhancements
- Decision plan executor (faster rule dispatch)
- Compiled movement patterns (DFA) for performance
- Optional bitboards for attack map generation
- Deterministic state hashing for repetition detection
Versioning
Semantic versioning aligned with repository releases. Breaking movement / rule API changes bump MAJOR.
Contributing
Open issues & PRs at https://github.com/veggerby/Veggerby.Boards. Follow contributor guidelines.
License
MIT License. See root LICENSE
.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Veggerby.Boards (>= 0.1.0-prerelease0157)
-
net9.0
- Veggerby.Boards (>= 0.1.0-prerelease0157)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
0.1.0-prerelease0161 | 56 | 9/26/2025 |
0.1.0-prerelease0160 | 62 | 9/26/2025 |
0.1.0-prerelease0159 | 68 | 9/26/2025 |
0.1.0-prerelease0158 | 66 | 9/26/2025 |
0.1.0-prerelease0157 | 150 | 9/21/2025 |
0.1.0-prerelease0156 | 148 | 9/21/2025 |