Veggerby.Boards.Backgammon 0.1.0-prerelease0164

This is a prerelease version of Veggerby.Boards.Backgammon.
dotnet add package Veggerby.Boards.Backgammon --version 0.1.0-prerelease0164
                    
NuGet\Install-Package Veggerby.Boards.Backgammon -Version 0.1.0-prerelease0164
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Veggerby.Boards.Backgammon" Version="0.1.0-prerelease0164" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Veggerby.Boards.Backgammon" Version="0.1.0-prerelease0164" />
                    
Directory.Packages.props
<PackageReference Include="Veggerby.Boards.Backgammon" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Veggerby.Boards.Backgammon --version 0.1.0-prerelease0164
                    
#r "nuget: Veggerby.Boards.Backgammon, 0.1.0-prerelease0164"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Veggerby.Boards.Backgammon@0.1.0-prerelease0164
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Veggerby.Boards.Backgammon&version=0.1.0-prerelease0164&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Veggerby.Boards.Backgammon&version=0.1.0-prerelease0164&prerelease
                    
Install as a Cake Tool

Veggerby.Boards.Backgammon

Backgammon module for Veggerby.Boards. Provides artifacts, rules, dice handling, and setup logic built atop the immutable deterministic core engine.

Depends on Veggerby.Boards (transitively referenced when installing this package). Use it when you want a ready Backgammon ruleset or a template for similarly structured race games.

Install

 dotnet add package Veggerby.Boards.Backgammon

Scope

This package adds:

  • Backgammon game builder (BackgammonGameBuilder)
  • Standard initial board layout
  • Dice artifacts (pair) and doubling cube scaffolding
  • Rule conditions (e.g., active player, dice usage) and move validation

It does NOT implement AI, UI, or network play.

Quick Start

var builder = new BackgammonGameBuilder();
var progress = builder.Compile();

// Roll dice (example event might differ once dice events are formalized)
// progress = progress.HandleEvent(new RollDiceEvent());

// Move a checker (illustrative; ensure you resolve a legal path first)
// var piece = progress.Game.GetPiece("white-checker-1");
// var from = progress.Game.GetTile("point-24");
// var to = progress.Game.GetTile("point-18");
// var pathVisitor = new ResolveTilePathPatternVisitor(progress.Game.Board, from, to);
// progress = progress.HandleEvent(new MovePieceGameEvent(piece, pathVisitor.ResultPath));

Key Concepts (Backgammon Specific)

  • Multi-dice handling: composite dice state enabling pip count validation
  • Directional movement relative to player orientation
  • Bearing-off readiness validation
  • Doubling cube (placeholder scaffolding for match play)

Interop With Core

All state transitions remain immutable. Backgammon-specific logic only orchestrates existing engine primitives (events, rules, phases, mutators).

Extending This Module

Examples:

  • Add match scoring layer above game state
  • Introduce alternate starting positions
  • Implement cube offering / acceptance events

Maintain determinism: no hidden random sources beyond dice artifacts.

Versioning

Follows repository semantic version. Backwards incompatible rule changes bump MAJOR.

Contributing

Open issues & PRs at https://github.com/veggerby/Veggerby.Boards. Follow contribution guidelines and code style.

License

MIT License. See root LICENSE.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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-prerelease0164 0 10/5/2025
0.1.0-prerelease0163 0 10/5/2025
0.1.0-prerelease0162 109 10/2/2025
0.1.0-prerelease0161 61 9/26/2025
0.1.0-prerelease0160 58 9/26/2025
0.1.0-prerelease0159 64 9/26/2025
0.1.0-prerelease0158 63 9/26/2025
0.1.0-prerelease0157 152 9/21/2025
0.1.0-prerelease0156 151 9/21/2025