Blokus engine built with LLM coding agents

CodeCoding guidelines

University of Mannheim, Generative Software Engineering course. A team of four.

Problem

The course asked how well published advice on LLM-assisted software engineering survives a real build. We had two jobs. First, write a guideline package for the Coding topic, five guidelines drawn from the literature and our own experiments. Second, build a Blokus game engine with LLM agents, applying other teams’ guidelines for requirements, design, testing and review, and document every case where a guideline failed.

The engine had to run classic Blokus (4 players, 20×20 board), and then, as a change request late in the project, the Duo variant (2 players, 14×14 board, interior starting cells), without forking the code.

My part

Approach

Results

MeasureResult
Tests passing180, up from 65 late in the first milestone
Line coverage90.7%, against a required 85%
CIruff, ruff format, mypy and pytest on every push
Duo rules pinned by testsBonus only with no squares left, ties give co-winners, AI-vs-AI games are deterministic

What I’d do differently

Three of the guidelines we applied failed in ways worth recording:

How to run it

Python 3.12 and uv are needed. From the implementation repository:

uv sync
uv run pytest
uv run python -m app --gui          # web GUI at http://127.0.0.1:8000
uv run python -m app --gui --duo    # Blokus Duo

Without --gui it plays in the terminal. The guideline package is in a separate repository.