Juego local de 3 en raya hecho con Expo + React Native + TypeScript. Se puede jugar contra la IA (con 3 niveles de dificultad) o contra otro jugador en el mismo dispositivo.
- Dos modos de juego: contra la IA o dos jugadores locales (pasa y juega).
- IA con 3 dificultades:
- Fácil: movimientos aleatorios.
- Media: mezcla de movimientos aleatorios y óptimos.
- Difícil: algoritmo minimax con poda alfa-beta (juega perfecto, en el peor caso empata).
- Elección de símbolo (X u O) al jugar contra la IA.
- Marcador de partidas ganadas (X, O y empates) durante la sesión.
- Resalta la línea ganadora al finalizar la partida.
- Botón para iniciar una nueva ronda sin perder el marcador, y volver al menú principal.
- Node.js 18+
- npm
npm installnpm run start # abre el menú de Expo (elige plataforma)
npm run android # emulador/dispositivo Android
npm run ios # simulador iOS (requiere macOS)
npm run web # navegadorApp.tsx Punto de entrada, navegación entre menú y juego
src/
types.ts Tipos compartidos (Board, Player, GameConfig, ...)
gameLogic.ts Reglas del juego: ganador, tablero lleno, casillas libres
ai.ts IA (minimax con poda alfa-beta) y niveles de dificultad
components/
Board.tsx Tablero 3x3
Cell.tsx Casilla individual
screens/
MenuScreen.tsx Selección de modo, dificultad y símbolo
GameScreen.tsx Partida, marcador y controles