overview
A two-player strategy card game inspired by Queen's Blood from Final Fantasy VII Rebirth. Players compete for territorial control across a 3×5 board, placing cards from their own decks onto cells that they own via pawns. Each card spreads influence to adjacent territories based on its unique mini-grid pattern. Victory goes to whoever controls the most valuable rows when the board fills or both players consecutively pass which creates a delicate balance of expansion, defense, and resource management.
play the game
how to play
card gallery
Each card has unique stats and influence patterns. Cost determines where it can be placed, value contributes to row totals, and the influence grid shapes your territorial expansion.
construction
The original implementation for this Sanguine Game is built in Java following strict Model-View-Controller architecture. The model manages all game state and rules, views render the board (both text-based and Swing GUI), and controllers handle player input through a listener-based event system.
architecture
The game uses an event-driven architecture where the model broadcasts state changes to registered listeners. The controller implements both ModelStatusListener (for turn changes and game-over events) and PlayerActionListener (for card placement and passing). Views subscribe to updates and re-render accordingly.
Player abstraction supports both HumanPlayer (awaits GUI input) and MachinePlayer (computes moves via strategy). This enables human vs human, human vs AI, and AI vs AI game modes with identical underlying logic.
Source? This project was built as part of Northeastern's Object-Oriented Design course (CS 3500), with the full Java implementation demonstrating advanced OOD principles including interface segregation, composition over inheritance, and design patterns in practice.