Mai-spillet – Sudoku og spec-driven utvikling

22. oktober 2025 · 2 min lesetid

I tråd med mitt nyttårsfortsett er det på høy (overtid) for lage mai-spillet.

Jeg er fremdeles kraftig forsinket (dette prosjektet nok kommer til å fortsette godt ut i 2025), men her er endelig mai-spillet: iTrond Sudoku!

Sudoku!

Den ferdige løsningen kan du prøve her: Sudoku Mai-spillet

Jeg har lenge hatt lyst til å lage et digitalt Sudoku-spill, og denne gangen ville jeg prøve en litt mer strukturert tilnærming: spec-driven development med speckit. Det vil si at jeg først skrev en spesifikasjon for hvordan spillet skulle fungere, og lot denne styre hele utviklingsløpet. Dette ga en mye ryddigere prosess, og gjorde det lettere å holde oversikt over krav, edge cases og testdekning.

Denne tilnærmingen minsket også antall mistforståelser som gjør at man lett kan komme i uendelige repetisjoner av avklaringer.

Man bruker da selvfølgelig ai'en til å få hjelp til å lage spec'ene. Disse blir lagt i en egen katalog:

Spec-kit!

Det jeg hadde god erfaring med var at avklaringer gjort i chat'en ba jeg om å få ført inn i spec'en. På den måten kunne erfaringer man gjorde underveis mates tilbake i spec'en. Ganske nice! 😀

Jeg testet dette og da kom jeg frem til denne løsnigen (take 2) på med bare noen få intervensjoner fra min side:

Spec-kit!

Den ferdige løsningen kan du prøve her: Sudoku Mai-spillet

Om spillet

Sudoku-spillet er bygget med React og TypeScript, og har en moderne webapp-struktur med komponenter for brett, statistikk og spilllogikk. Alt er utviklet med utgangspunkt i en spek (spec.md), og oppgavene ble generert og fulgt opp med speckit. Dette gjorde det enkelt å holde orden på både funksjonelle og ikke-funksjonelle krav, og sikret at alle deler av spillet ble testet og dokumentert.

Terje Molle sin Sudoku-app

Min gode kompis Terje Molle har laget en ordentlig proff Sudoku-app for iOS:

SudokuWorldTournament. Den anbefales på det sterkeste hvis du vil ha en skikkelig utfordring og konkurrere mot andre!

sudokuworldtournament!

Relaterte blogginnlegg