dicechess.engine
Members list
Packages
Core domain models for the Dice Chess Engine.
Core domain models for the Dice Chess Engine.
This package contains the fundamental data structures used to represent the chess board, pieces, moves, and game state. It heavily relies on Scala 3 Opaque Types and bitwise memory packing to guarantee zero-allocation performance during hot-path evaluations like Expectimax search.
Attributes
Move generation for the Dice Chess Engine.
Move generation for the Dice Chess Engine.
This package implements a fully bitboard-based pseudo-legal move generator. Each subsystem is responsible for a specific piece class, and MoveGenerator orchestrates them into a unified interface.
Architecture
| Object | Responsibility |
|---|---|
| PawnGeneration | Parallel push/capture generation via bitboard shifts |
| LeaperAttacks | Precomputed attack tables for Knights and Kings |
| MagicBitboards | O(1) sliding-piece attacks via magic-number hashing |
| MoveGenerator | Unified entry point; serialises bitboards into Move lists |
Move representation
All generated moves are 16-bit dicechess.engine.domain.Move values encoding origin square, destination square, and a 4-bit flag field (quiet, capture, castling, en passant, promotion).
Pseudo-legal generation
The generator produces pseudo-legal moves — moves that obey piece movement rules but do not verify that the resulting position leaves the king in check. Full legality filtering is applied by the search layer.