~/projects/azul

GAMES2024

Azul

A Java implementation of the board game Azul, with tile drafting from shared factories, pattern-line placement, and round/end-game scoring.

TIMELINE
May 2024 – Jun 2024
TEAM
Solo
CONTEXT
Class project
Two screens of the Azul game: the shared factories with drafted tiles, and a player board with pattern lines and wall.

Overview

This is a local, same-screen Java recreation of the tile-placement board game Azul for a configurable number of players. It implements the game’s factory-offer drafting, pattern-line placement, wall-tiling, and scoring rules.

Features

  • Title and setup screens to choose the number of players
  • Factories arranged in a circle, each holding drafted tiles plus a shared center pile
  • Pattern-line and wall grid placement with validation of legal moves
  • Tile trashing when a drafted color can’t be placed
  • End-of-round detection and scoring, including penalties
  • End-of-game scoring and a game-over screen
  • Custom tile/array/grid model classes (TileArray, TileList, TileGrid) backing the board state

How it works

The game is modeled around a Game state machine (TITLE, SETUP, CHOOSING, PLACING, ROUNDSCORING, ENDSCORING, GAMEOVER) that drives which screen and interactions are active. Player boards, factories, and the center pool are built from custom tile-container classes that handle positioning and rendering of individual tiles, and a Swing-based Screen/JPanel layer handles drawing and mouse input for drafting and placing tiles.