iss_pc
This is a native PC port (Linux/Windows) of inFAMOUS Second Son (PS4, CUSA00223) — in development, playable; it runs your own game dump; no game or firmware files are included. Motion sensor emulation. | native port p
AI translation
Guide falling numbers into the bucket that divides them evenly. A fast divisibility puzzle for iPhone with Game Center leaderboards. Free on the App Store.
GamesDart · TypeScriptGitHub @NelsonGreyOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Math puzzle game for iOS and web — guide falling numbers into their modulo buckets.
Loading the full README.
Read the full README ↗Modulo Squares is a falling-number arcade puzzle for iOS built with Flutter, with Game Center for the leaderboard and achievements. Guide each number into one of ten divisor buckets before it lands, build combos, fill the progress grid, and chase a persistent local high score.
The repository contains the mobile app, release automation, and project documentation. It also still holds the legacy Firebase backend and React site from the 1.0.x app; they come out when that version is retired (docs/GAME_CENTER_MIGRATION.md). The public website is https://nelsongrey.com/games/modulo-squares.
flowchart TB
subgraph Client["packages/mobile (Flutter, iOS)"]
Main["main.dart: service locator (GetIt), ads, purchases"]
Game["GameScreen -> FallingModuloGameScreen\nfeatures/game/game_screen.dart"]
Engine["FallingModuloGameEngine\nfeatures/game/models/falling_modulo_game_engine.dart"]
GC["lib/gamecenter/\nconnection, leaderboard, achievement tracker"]
Services["core/services:\nAdService, PurchaseService, CacheService, ConsentService"]
end
GameCenter["Game Center\nleaderboard + 15 achievements"]
Site["nelsongrey.com/games/modulo-squares\nwebsite, privacy, support"]
Main --> Game --> Engine
Game --> GC --> GameCenter
Main --> Services
Game -. "legal links" .-> Site
There is no application backend. Identity, the leaderboard and achievements are Game Center; the best score is also stored on the device. See docs/System_Architecture.md.
The tile-resolution arithmetic below is entirely client-side; this walks through the actual resolution logic in FallingModuloGameEngine.resolveCurrentTile (packages/mobile/lib/features/game/models/falling_modulo_game_engine.dart). Reporting a new best score is a separate step: the game screen passes it to the Game Center leaderboard when the player is connected.
F spawns in the center lane of 10 lanes and begins falling after a 500 ms pause.1-9 (scoring) plus one dead bucket 0.B before it lands (180 ms move cooldown, down to 138 ms at combo 8+, from the 1.30x speed multiplier).highestDivisorFor(F) computes H, the largest bucket value 1-9 that divides F evenly.resolveCurrentTile:
B == H and H != 1 → best possible catch: scoreDelta = 2 * (F * B), fill +2, combo +1, gold "★ BONUS!" burst.H == 1 (F coprime to every other bucket) and B == 1 → flat bonus scoreDelta = F, fill +2, combo +1.F % B == 0, B != H, and B > 1 → valid but not optimal: scoreDelta = F * B, fill +1, combo +1.B == 1 and B != H (bucket 1 isn't the highest divisor) → valid catch but no reward: scoreDelta = 0, fill +1, combo +1.B == 0 (dead bucket) → scoreDelta = -F, fill -1, combo resets to 0.F % B != 0) → scoreDelta = -(F * B * remainder), fill drops by remainder, combo resets to 0.max(0, state.score + scoreDelta)); the 100-cell progress grid fills toward a level-up, and combo streaks raise the horizontal move speed multiplier up to 1.30x at combo 8+.dropIntervalForLevel, 0.96^(level-1) decay per GameDifficulty), and buckets reshuffle.Buckets carry no pre-drop hint of which are valid or optimal — the player has to work out the divisibility live. See docs/Game_Mechanics.md for the full rule table and test/models/falling_modulo_game_engine_test.dart for executable examples of every branch above.
1.1.0+1.github/workflows/ci-cd.yml3.44.2, Dart >=3.7.0, Node.js 24GameScreen -> FallingModuloGameScreencom.modulosquares.app.ios), with Game Center leaderboards and 15 achievementsSee Current State, Documentation Index, and Go-Live Runbook.
This is the beginning of the README. Read the rest at the original. Read the full README ↗