Futoshiki Puzzle App

Constraint-based puzzle system with explainable solving logic, adaptive hint exploration, and long-term Play Store ownership.

Production — 24,000+ curated puzzles on Google PlayPeriod: 2019 – 2023, Modernized 2025
01

Origin

Existing Futoshiki puzzle apps on Google Play were outdated, with poor UX, frustrating interactions, and limited discoverability of solving logic. This quality gap presented a product opportunity: build a puzzle system where constraint-based reasoning is visible, responsive, and intellectually satisfying rather than opaque and trial-and-error.

The product required both algorithmic correctness and responsive UX. Puzzle games demand instant feedback on every move—each placement simultaneously affects row uniqueness, column uniqueness, and inequality constraints. I architected a 24,000+ curated puzzle catalog with deterministic difficulty classification, custom Canvas rendering for precise board control, and immutable state management supporting undo/redo and session persistence. The constraint validation engine provides immediate visual feedback without perceptible lag, maintaining gameplay flow.

The app was self-published to Google Play with complete product ownership: design decisions, Play Billing and AdMob monetization, user reviews, and ongoing maintenance. In 2025, I modernized the codebase with Navigation Component, Firebase Crashlytics for production monitoring, and began constraint-solving research for explainable hint generation—demonstrating continued engineering investment years after initial release.

02

Product Preview

03

Technical Challenges & Solutions

Real-Time Constraint Validation System

Problem

Every move simultaneously affects row uniqueness, column uniqueness, and inequality constraints. Puzzle games require immediate visual feedback without perceptible lag—any delay breaks gameplay flow and undermines the logic-driven experience.

Solution

Designed a layered validation architecture with deterministic rule evaluation: row/column uniqueness checks, inequality relationship validation, and candidate tracking. Optimized for sub-frame execution to maintain 60fps responsiveness while providing instant visual feedback on every placement.

Puzzle Catalog Scale & Difficulty Architecture

Problem

Avoiding repetitive gameplay requires thousands of valid puzzles across calibrated difficulty levels. Manual curation is impractical at scale, yet generated puzzles must maintain solvability and logical consistency.

Solution

Architected a <b>24,000+ curated puzzle dataset</b> with deterministic difficulty classification based on constraint complexity and logical depth. Each puzzle validated for unique solution, logical solvability (no guessing required), and appropriate difficulty tier—ensuring consistent challenge progression across Easy, Medium, and Hard classifications.

Custom Canvas Rendering Engine

Problem

Standard Android View components could not provide the visual precision and touch responsiveness required for a polished puzzle grid. Board rendering, inequality symbols, and touch detection needed exact control over positioning and interaction.

Solution

Built a custom Canvas-based rendering engine with direct drawing operations for grid lines, cells, inequality constraints, and touch zones. Enabled precise visual control, responsive touch handling across screen sizes, and smooth animations—delivering native-feeling interaction quality that distinguishes the product in a saturated category.

Production Modernization & Maintenance

Problem

After several years in production, the codebase required architectural updates to align with current Android best practices, improve maintainability, and add production observability—without breaking existing user experiences.

Solution

Migrated to Navigation Component for modern fragment management, integrated Firebase Crashlytics for production error monitoring, and established structured logging infrastructure. These changes improved code organization and observability while maintaining backward compatibility—demonstrating long-term production ownership discipline.

04

Explainable Hint Engine

Futoshiki's explainable hint engine implements deterministic solving logic that teaches players how to reason through constraints. Rather than revealing answers directly, the system guides users through progressive logical deduction: identifying single candidates, propagating constraints via inequality relationships, eliminating invalid candidates, and surfacing reasoning in accessible language. This transforms the puzzle from trial-and-error into a guided learning experience.

Problem

Puzzle games often reveal answers directly or provide vague hints, making it difficult for players to actually learn solving strategies.

Built a deterministic, explainable hint engine that progressively teaches puzzle-solving logic through contextual reasoning.

Technical depth: Constraint propagation, candidate elimination, inequality-bound reasoning, immutable puzzle state, and deterministic solving rules.

05

Extended Toolkit

KotlinAndroid SDKCustom Canvas RenderingConstraint Validation EnginePuzzle State PersistenceRoom PersistenceNavigation ComponentFirebase CrashlyticsGoogle Play BillingAdMobMVVM ArchitectureCoroutinesLocalization
06

Learnings

  • Constraint systems engineering: Implementing AC-3 constraint propagation and candidate elimination for explainable hints required translating formal mathematical reasoning into deterministic Android code—balancing correctness with performance.
  • UX for logic systems: Good hints should teach reasoning through constraint propagation, not expose answers. Explainable assistance respects player intelligence.
  • Production ownership: Self-publishing taught that Play Store releases, monetization tuning, and user review management are continuous responsibilities—not one-time milestones.
  • Product iteration discipline: Modernizing legacy code without breaking existing users requires careful migration planning, observability integration, and backward compatibility.
  • Bilingual UX complexity: English + Spanish localization revealed that locale-aware design and proper string extraction are essential for real product quality—not afterthoughts.
  • Engineering maturity: Building real constraint-based systems taught more about Kotlin, Android architecture, and algorithmic thinking than any tutorial could provide.
07

Technical Exploration

Research directions and engineering curiosity — not roadmap commitments.

Advanced Constraint-Solving Coverage

Extending current hint engine with deeper mathematical deduction strategies and paper-informed logic to improve edge-case handling and broader puzzle coverage beyond AC-3 fundamentals.

Hybrid Puzzle Generation System

Exploring hybrid puzzle-generation combining mathematical constraints with ML-assisted validation to enable infinite, non-repetitive puzzle creation at scale.

Infinite Puzzle Mode

Investigating procedural generation systems for endless unique puzzle sequences—maintaining difficulty calibration and logical solvability without repetition.

Timed & Competitive Solving Modes

Researching efficiency-based solving modes that reward constraint-reasoning speed over brute-force—encouraging strategic thinking under time pressure.

Back to AndroidFutoshiki Puzzle App