Instantiate Chess positions and apply Chess moves.
Instantiate Chess positions and apply Chess moves.
CELL (Coordinate Encoding for Layered Locations) implementation for JavaScript/TypeScript
Extended Piece Identifier Notation (EPIN): a compact, ASCII-only, no_std token format that extends PIN with a native/derived style marker for abstract strategy board games.
Piece Identifier Notation (PIN): a compact, ASCII-only, no_std token format for identifying pieces in abstract strategy board games.
A Ruby client for the Sashite API.
Parse and generate Portable Action Notation (PAN) strings for representing atomic actions in abstract strategy board games including chess, shogi, xiangqi, and others. PAN provides an intuitive operator-based syntax with six core operators: "-" (move to empty square), "+" (capture), "~" (special moves with side effects), "*" (drop to board), "." (drop with capture), and "=" (in-place transformation), plus "..." (pass turn). Supports coordinates via CELL specification and piece identifiers via EPIN specification. Handles transformations ("e7-e8=Q"), enhanced/diminished states ("+R", "-P"), and style derivation markers ("K'"). Provides comprehensive validation, immutable action objects, and functional API design. Examples: "e2-e4" (move), "d1+f3" (capture), "e1~g1" (castling), "P*e5" (drop), "e7-e8=Q" (promotion), "..." (pass), "+d4" (static capture), "e4=+P" (modify).
A Ruby implementation of GAN (General Actor Notation) v1.0.0 specification for identifying game actors in abstract strategy board games. GAN combines Style Name Notation (SNN) and Piece Identifier Notation (PIN) with a colon separator to provide complete, unambiguous piece identification. Represents all four fundamental piece attributes: Type, Side, State, and Style. Enables cross-style gaming, immutable transformations, and component extraction with to_pin/to_snn methods. Built on sashite-snn and sashite-pin gems.
A pure functional Ruby implementation of the General Gameplay Notation (GGN) specification v1.0.0. Provides a movement possibility oracle for evaluating pseudo-legal moves in abstract strategy board games. Features include hierarchical move navigation (piece → source → destination → transitions), pre-condition evaluation (must/deny). Works with Chess, Shogi, Xiangqi, and custom variants.
Shared RuboCop config used by Sashité's Ruby projects 👮🏾
PIN (Piece Identifier Notation) implementation for Ruby. Provides a rule-agnostic format for identifying pieces in abstract strategy board games with immutable identifier objects and functional programming principles.
Ruby implementation of Canonical Gameplay Hash coding.
A CPN generator for Ruby.
SNN (Style Name Notation) implementation for Ruby. Provides a rule-agnostic format for identifying game styles in abstract strategy board games with immutable style name objects and functional programming principles.
SIN (Style Identifier Notation) implementation for Ruby. Provides a rule-agnostic format for identifying player styles in abstract strategy board games with immutable identifier objects and functional programming principles.
EPIN (Extended Piece Identifier Notation) implementation for Ruby. Extends PIN by adding a derivation marker to track piece style in cross-style abstract strategy board games with a minimal compositional API.
CELL defines a standardized format for representing coordinates on multi-dimensional game boards using a cyclical ASCII character system. This gem provides a Ruby interface for working with up to 3-dimensional game coordinates (max index value 255) through a clean, object-oriented API that strictly follows the CELL Specification v1.0.0.