About
Gossips spread it, skeptics need two sources, and the loyal will expose you. Each turn you whisper, silence, forge or bribe before the rumor travels one more step, and every court can be won in a set number of turns.
- Swift 6
- SwiftUI
- Swift Testing
- Swift Package Manager
- XcodeGen
What I built
- A deterministic rules engine in its own Swift package, with no UI code, so every rule is unit-tested.
- A solver that proves each level's best score; tests fail if a level's par isn't the true optimum or if its new mechanic isn't actually needed.
- Swift 6 and SwiftUI, with Swift Testing and an XcodeGen project.
How it fits together
App (SwiftUI)
- Court boardCharacters, links, rumor animation
- Levels & progressStored on device
actions in, new state out
WhisperCore (Swift package, no UI)
- EngineDeterministic rules
- SolverFinds each level's best solution
- LevelLibrarylevelNN.json
checked by
Tests (Swift Testing)
- Rule testsRequired with every engine change
- Level testsPar equals the solver's optimum; each new mechanic is required