Virtual Bingo es un skill de Alexa que actúa como tu cantador de bingo personal. Alexa cantará las bolas automáticamente usando frases tradicionales del bingo español, con múltiples velocidades de juego y funciones avanzadas para una experiencia completa.
Perfecto para jugar en familia, con amigos o en eventos sociales. ¡Deja que Alexa se encargue de cantar los números mientras tú disfrutas del juego!
- 🎲 Sorteo Aleatorio: Números del 0 al 99 sin repetición
- 🗣️ Frases Tradicionales: Utiliza las frases clásicas del bingo español
- "El 22, los patitos"
- "El 33, la edad de Cristo"
- "El 88, las gorditas"
- "El 90, la viejita"
- ¡Y muchas más!
| Modo | Tiempo entre bolas | Ideal para |
|---|---|---|
| Lento | 5 segundos | Jugadores principiantes o grupos grandes |
| Normal | 3 segundos | Partidas clásicas |
| Rápido | 1.5 segundos | Jugadores experimentados |
| Turbo | 1 segundo | ¡Modo frenético para expertos! |
- ⏸️ Pausa/Reanudación: Pausa el juego en cualquier momento
- 🔄 Cambio de velocidad en tiempo real
- 🔁 Repetir último número cantado
- 📜 Histórico de números cantados
- ✅ Verificación de cartones ganadores
- Total de partidas jugadas
- Bolas cantadas por partida
- Promedio de bolas
- Fecha de última partida
- Registro de victorias
- Cuenta de Amazon Developer Console
- AWS Account (para Lambda y S3 si usas Alexa-Hosted)
- Node.js 16.x o superior (para desarrollo local)
-
Crear el Skill en Alexa Developer Console
- Ir a https://developer.amazon.com/alexa/console/ask - Click en "Create Skill" - Nombre: "Virtual Bingo" - Primary locale: Spanish (ES) - Hosting: Alexa-Hosted (Node.js) -
Importar el Interaction Model
- Ir a "Build" > "Interaction Model" > "JSON Editor" - Copiar el contenido de skill-package/interactionModels/custom/es-ES.json - Click en "Save Model" y luego "Build Model" -
Subir el código Lambda
cd lambda zip -r ../function.zip .
- Ir a "Code" tab en la consola
- Importar el archivo function.zip
- Click en "Deploy"
# Instalar ASK CLI
npm install -g ask-cli
# Configurar perfil
ask configure
# Clonar el repositorio
git clone <tu-repo>
cd Bingo_skill
# Instalar dependencias
cd lambda
npm install
cd ..
# Desplegar
ask deploy"Alexa, abre Virtual Bingo"
"Nueva partida"
"Nueva partida rápida"
"Iniciar partida en modo turbo"
"Empezar partida lenta"
"Continúa" → Canta la siguiente bola
"Pausa" → Pausa el juego
"El último número" → Repite la última bola
"Histórico" → Lista de números cantados
"Tengo línea" → Verifica tu cartón
"Cambiar a modo rápido" → Ajusta la velocidad
"Terminar partida" → Finaliza el juego
"Estadísticas" → Ver tu historial
"Ayuda" → Lista de comandos
"Acerca de" → Información del skill
| Comando | Descripción | Ejemplo |
|---|---|---|
Nueva partida [velocidad] |
Inicia una nueva partida | "Nueva partida rápida" |
Continúa / Sigue |
Canta la siguiente bola | "Sigue" |
Pausa / Detente |
Pausa el juego | "Pausa" |
Cambiar a modo [velocidad] |
Cambia la velocidad | "Cambiar a turbo" |
Terminar partida |
Finaliza la partida actual | "Terminar" |
| Comando | Descripción |
|---|---|
El último número / Repite |
Repite la última bola cantada |
Histórico / Números cantados |
Lista los números del juego |
Tengo línea / Tengo bingo |
Verifica tu cartón |
Estadísticas |
Muestra tu historial de juego |
Ayuda |
Ayuda completa |
Acerca de |
Información del skill |
Bingo_skill/
├── lambda/
│ ├── index.js # Punto de entrada principal
│ ├── package.json # Dependencias Lambda
│ ├── handlers/ # Request handlers
│ │ ├── LaunchRequestHandler.js
│ │ ├── StartGameIntentHandler.js
│ │ ├── ContinueIntentHandler.js
│ │ ├── PauseIntentHandler.js
│ │ ├── ChangeSpeedIntentHandler.js
│ │ ├── RepeatLastNumberIntentHandler.js
│ │ ├── GetHistoryIntentHandler.js
│ │ ├── VerifyCardIntentHandler.js
│ │ ├── GetStatsIntentHandler.js
│ │ ├── EndGameIntentHandler.js
│ │ ├── HelpIntentHandler.js
│ │ ├── AboutIntentHandler.js
│ │ ├── CancelAndStopIntentHandler.js
│ │ ├── SessionEndedRequestHandler.js
│ │ ├── IntentReflectorHandler.js
│ │ └── ErrorHandler.js
│ ├── utils/ # Utilidades
│ │ ├── gameLogic.js # Lógica del juego
│ │ └── persistence.js # Gestión de datos
│ └── data/ # Datos del juego
│ └── bingoData.js # Frases y configuración
├── skill-package/
│ └── interactionModels/
│ └── custom/
│ └── es-ES.json # Modelo de interacción
├── skill.json # Configuración del skill
├── package.json # Dependencias del proyecto
└── README.md # Este archivo
- ASK SDK for Node.js (v2)
- S3 Persistence Adapter para almacenamiento de datos
- AWS Lambda para hosting
- Node.js 16.x
Edita lambda/data/bingoData.js:
const BINGO_PHRASES = {
0: "El cero, la bola",
1: "El uno, tu frase personalizada",
// ... más números
};Modifica los tiempos en milisegundos:
const SPEED_CONFIG = {
lento: 5000, // 5 segundos
normal: 3000, // 3 segundos
rápido: 1500, // 1.5 segundos
turbo: 1000 // 1 segundo
};- Crea un nuevo handler en
lambda/handlers/ - Importa y registra el handler en
lambda/index.js - Añade el intent al modelo de interacción
es-ES.json - Rebuild el modelo en la consola
Las contribuciones son bienvenidas. Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
- Soporte para cartones virtuales
- Verificación automática de líneas/bingo
- Modo multijugador (4 cartones)
- Efectos de sonido profesionales (SSML)
- APL para dispositivos con pantalla
- Diferentes patrones de victoria (línea, esquinas, X, etc.)
- Temas musicales seleccionables
- Logros y badges
- Tablas de clasificación
- Integración con Smart Home
- Modo torneo
- Sincronización multi-dispositivo
- API para terceros
P: ¿Cuántos números puede cantar?
R: De 0 a 99, total 100 números únicos sin repetición.
P: ¿Puedo usar mi propio cartón de bingo?
R: ¡Por supuesto! El skill solo canta los números, tú juegas con tu cartón físico o digital.
P: ¿Funciona en todos los países hispanohablantes?
R: Sí, está disponible en español (España), español (México) y español (Estados Unidos).
P: ¿Guarda mi progreso si cierro Alexa?
R: Las estadísticas sí se guardan, pero la partida actual se perderá si sales del skill.
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
Jose Alvarez Dev
- GitHub: @JoseAlvarezDev
- Amazon Alexa Team por el excelente SDK
- Comunidad de desarrolladores de Skills
- Testers y usuarios beta
¿Te gusta el proyecto? ¡Dale una ⭐ en GitHub!