Skip to content

Puzzle for Geniuses

A brain-training game with mini-games, a level system and a booster shop.

Overview

A game that trains memory, logic and arithmetic, using time to develop mental speed.

Tech stack

Features

Mini Game Free Flow

UX

A mental game about connecting colours.

A mental game where you connect matching colours. It has three difficulty levels — easy, medium and hard — and an engine that generates the levels.

Progress map and stars

UX

Track your progress and collect stars.

A map for tracking progress and collecting stars.

Booster shop

UX

A shop with boosters.

The booster shop.

A shop with boosters.

Sudoku

UX

A Sudoku game inside the app.

The Sudoku game inside the app.

A Sudoku game inside the app.

Deep-dive

A single :app module is split into data, domain, presentation and ui layers. Hilt wires the repositories and game engines, while seven Room entities and nine schema migrations keep local progress durable. The Sudoku engine generates deterministic boards from a seed and removes cells only while a unique solution remains.

Kotlin
fun generate(seed: Long, targetGivens: Int): Pair<IntArray, IntArray> {
    val rng = Random(seed)
    val board = IntArray(81).also { fillBoard(it, rng) }
    val solution = board.copyOf()

    for (pos in (0 until 81).shuffled(rng)) {
        if (board.count { it != 0 } <= targetGivens) break
        val saved = board[pos]
        board[pos] = 0
        if (!SudokuSolver.hasUniqueSolution(board)) board[pos] = saved
    }
    return board to solution
}