Killer Sudoku Play
Sudoku clásico combinado con restricciones aritméticas de "jaulas". Cada jaula agrupa celdas cuya suma debe alcanzar un valor objetivo sin repetir números. Desarrollada reutilizando el 80% de la arquitectura de Sudoku Play en solo ~16 días.
6,000
Puzzles
5,900
Niveles Aventura
~80%
Código reutilizado
~940
Líneas nuevas
~16 días
Desarrollo
v1.0.0
Versión
Características principales
Gameplay Killer
Tablero con Jaulas
Grilla 9x9 con jaulas coloreadas (6 colores), etiquetas de suma, overlay de líneas 3x3 y resaltado de jaula seleccionada.
Validación Inteligente
Verificación en tiempo real de fila, columna, bloque 3x3 Y jaula. Detecta sumas excedidas y números repetidos en jaula.
Cálculo de Combinaciones
Motor que calcula combinaciones posibles para cada jaula según tamaño, suma objetivo y números ya colocados.
Sistema de Notas + Pistas
Candidatos por celda con auto-remoción configurable. Pistas con límite diario y rewarded ads.
Modos de Juego
Clásico
Partida libre por dificultad (6 niveles). Timer, errores, puntuación basada en dificultad, tiempo y precisión.
Modo Aventura
5,900 niveles en 6 mundos con corazones, estrellas por rendimiento y puertas de desbloqueo.
Desafío Diario
Puzzle diario con recompensas de monedas y XP. Contribuye al sistema de rachas.
Duelos 1v1
Desafíos contra amigos con apuestas de monedas, mismo puzzle, ganador por tiempo + errores.
Social y Progresión
Sistema de Amigos
Códigos únicos, búsqueda por username, solicitudes, leaderboard entre amigos.
XP Compartido
Sistema de experiencia y niveles compartido con Sudoku Play vía global.users en Supabase.
Economía Independiente
Monedas, streaks y shields propios del Killer, separados de Sudoku Play por schema.
Desafíos Semanales
Objetivos variables con recompensas de monedas y XP.
Monetización
AdMob
Intersticiales y rewarded (monedas, pistas, vidas extra). IDs configurados por plataforma.
Suscripción Premium
$0.99/mes o $9.99/año: sin ads, beneficios premium via react-native-iap.
Stack Tecnológico
Frontend / Mobile
React Native 0.81.5
New Architecture habilitada (JSI/Fabric)
Expo SDK 54
Builds, distribución, OTA updates
React 19.1 + TypeScript 5.9
UI con tipado estático
Zustand 5
killerGameStore, userStore, themeStore, etc.
React Navigation 7 + i18next
Navegación y ES/EN
Backend
Supabase (compartido)
Auth, DB, Edge Functions, Realtime, RLS
Edge Functions (Deno)
validate-completion, sync-events
PostgreSQL
Schema killer_sudoku separado de sudoku
Servicios
Google AdMob
Intersticiales y rewarded
Firebase Crashlytics
Crash reporting en producción
EAS Build + Update
Cloud builds y OTA por canales
Local
SQLite (expo-sqlite)
6,000 puzzles pre-generados offline
AsyncStorage
Preferencias, cola de eventos
expo-secure-store
Tokens y datos cifrados
Librerías principales
Decisiones de Arquitectura
App Separada, Backend Compartido
Monetización independiente, branding propio, presencia separada en tiendas. Mismo Supabase: auth unificada, XP compartido, monedas independientes por schema.
Schema Separation
killer_sudoku.* vs sudoku.* — aislamiento completo de datos de juego con RLS independiente, compartiendo infraestructura de auth.
Bridge Pattern
gameStoreBridge.ts y puzzleServiceBridge.ts adaptan interfaces Killer al formato de componentes compartidos, sin modificar los originales. ~8,000 líneas reutilizadas.
Puzzles desde Soluciones Existentes
Script Python genera jaulas sobre 6,000 soluciones verificadas de Sudoku Play. Clasificación automática de dificultad por cantidad de jaulas, tamaño y singles.
Event Sourcing + Offline-First
Eventos inmutables con UUID, procesamiento server-side idempotente. SQLite local con 6,000 puzzles. Funciona 100% offline.
Anti-Cheat Server-Side
Validación de solución, recalculación de score, análisis de varianza de movimientos, detección de bots. Shadow ban sin bloqueo directo.
Desafíos Técnicos
Renderizado de Jaulas sobre Grilla
Problema: Bordes punteados entre celdas de misma jaula, 6 colores diferenciados, etiquetas de suma, superpuesto sobre grilla 9x9 con líneas 3x3.
Solución: KillerBoard.tsx con bordes dashed calculados dinámicamente, colores alternados con opacidad 0.15, overlay 3x3 separado, React.memo.
→ Tablero visualmente claro y performante.
Reutilización sin Romper Interfaces
Problema: 80% del código viene de Sudoku Play, pero componentes esperan interfaces específicas que difieren de Killer.
Solución: Bridge Pattern: archivos bridge adaptan interfaces nuevas al formato esperado sin modificar componentes originales.
→ ~8,000 líneas reutilizadas, solo ~940 nuevas.
Generación de 6,000 Puzzles Killer
Problema: Generar puzzles Killer con solución única es computacionalmente costoso.
Solución: Script Python que genera jaulas sobre soluciones existentes verificadas. Clasificación automática de dificultad.
→ 6,000 puzzles en 6 niveles, exportados a SQLite.
Crash por Board Undefined
Problema: App crasheaba al abrir GameScreen porque board era undefined durante carga async de SQLite.
Solución: Guard en KillerBoard: si board es undefined, muestra ActivityIndicator en vez de intentar renderizar.
→ Eliminación completa del crash, UX fluida.
Firebase Crashlytics + Expo iOS
Problema: Conflictos con static libraries y modular headers en builds iOS.
Solución: Config plugin personalizado (withFirebaseModularHeaders.js) que inyecta headers en Podfile automáticamente.
→ Builds iOS exitosos con Crashlytics funcional.
Estado del Proyecto
Completado
- Core de juego: tipos, validación, store, 6,000 puzzles
- UI completa: KillerBoard con jaulas, todas las pantallas
- Schema killer_sudoku con RLS, triggers, índices
- Publicada en App Store
- Auth, temas, sonidos, haptics, scoring, notificaciones
- Modo Aventura con 5,900 niveles
- Duelos 1v1 y sistema de amigos
Pendiente
- Publicación en Google Play Store
- Integración final de AdMob con IDs de producción
- Configuración de IAP con product IDs específicos
Logros Destacados
80% de reutilización de código — arquitectura modular que permite crear producto nuevo en fracción del tiempo
De 0 a App Store en ~16 días — planificación, desarrollo, puzzles, testing y publicación
6,000 puzzles generados programáticamente con clasificación automática de dificultad
Arquitectura production-ready: event sourcing, anti-cheat, offline-first, RLS, crashlytics, OTA
Backend compartido inteligente: 2 apps sobre mismo Supabase con schemas separados y auth unificada
Bridge Pattern para reutilizar ~8,000 líneas de componentes sin modificarlos
Información adicional
Idiomas
Español + Inglés
Modos
Clásico, Aventura, Daily, Duelos
Basada en
Sudoku Play (~80% reuso)
Desarrollo
~16 días de 0 a App Store
Schema killer_sudoku
puzzle_catalog (cages JSONB), user_profiles, user_stats, user_completions, daily_challenges, duels, event_counters, adventure_progress, adventure_gates.
Infraestructura compartida
Mismo proyecto Supabase que Sudoku Play y Color Sudoku. Auth unificada, XP compartido vía global.users, economías independientes por schema.