iss_pc
inFAMOUS Second Son의 리눅스·윈도우용 네이티브 PC 포트
숫자를 골라 나눠지는 버킷에 넣는 빠른 iPhone 퍼즐, Game Center 순위 지원, 무료
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.
게임Dart · TypeScriptGitHub @NelsonGrey온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. 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 전문 보기 ↗