Posts
All the articles I've posted.
-
Refactoring Hexagon State into a Unified Model
Consolidating hexagon resource type and roll number into a single Hexagon object on both the Java backend and Angular frontend, and working around a TypeScript typing limitation with HashMap-backed dictionaries.
-
Multi-Outcome FSM Transitions and Completing Initial Settlement Placement
Introducing 'Glide' objects to handle FSM actions that can lead to multiple possible next states, then fully implementing the snake-draft PLACE_FREE_SETTLEMENT and PLACE_FREE_ROAD flow so the game can officially begin.
-
Roll-for-Order Gameplay and Finite State Machine Cleanup
Implementing roll-for-order functionality, updating player and game state models with join order tracking, and refactoring the FSM base from an interface to an abstract class to cleanly support free transitions.
-
Adding Player Join Order, Colors, and a Game Event Log
Tracking the order players join the lobby to automatically assign game colors, recording every FSM action and free transition in a running event log on the game model, and adding a minimum-player SKIP shortcut for the lobby.
-
Building a Python CLI Tool and Automated Game Scenario Runner
Creating a two-part Python testing setup: a CLI wrapper around the REST API and a script runner that replays sequences of game commands from text files, enabling fast manual regression testing and informal game move notation.
-
Connecting Angular Frontend to Spring Backend with a Randomized Board
Synchronizing GameState models between the Angular frontend and Java backend to enable live polling, and implementing Catan-rules-compliant random board shuffling using Java's Collections.shuffle.
-
Pseudo-Coding OOP Relationships Between FSM States and Actions
Translating the finalized game flow design into concrete Java class relationships—how FSM States and Actions relate to GameService and GameController—while safely deferring auth and persistence until game logic is stable.
-
Mapping REST API Design to the Catan Finite State Machine
A focused design session working through the full Catan ruleset and sketching how a REST API maps to the proposed FSM—what actions the API should expose and how the state machine handles them in a scalable, maintainable way.