iss_pc
inFAMOUS Second Son(PS4,CUSA00223)的原生 PC 移植(Linux/Windows),开发中,可玩;运行你自己的游戏转储;不包含游戏或固件文件。动作传感器模拟。| 原生移植 p
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
Math puzzle game for iOS and web — guide falling numbers into their modulo buckets.
翻译准备中
正在加载完整 README。
查看完整 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.
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗