You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/es/6-space-game/6-end-condition/assignment.md

164 lines
9.4 KiB

# Construir un Juego de Ejemplo
## Resumen de la Tarea
Ahora que has dominado las condiciones de fin de juego y la funcionalidad de reinicio en tu juego espacial, es hora de aplicar estos conceptos a una experiencia de juego completamente nueva. Diseñarás y construirás tu propio juego que demuestre diferentes patrones de condiciones de fin y mecánicas de reinicio.
Esta tarea te desafía a pensar creativamente sobre el diseño de juegos mientras practicas las habilidades técnicas que has aprendido. Explorarás diferentes escenarios de victoria y derrota, implementarás la progresión del jugador y crearás experiencias atractivas de reinicio.
## Requisitos del Proyecto
### Características Núcleo del Juego
Tu juego debe incluir los siguientes elementos esenciales:
**Variedad en la Condición de Fin**: Implementa al menos dos formas diferentes en que el juego pueda terminar:
- **Victoria basada en puntos**: El jugador alcanza una puntuación objetivo o colecciona ítems específicos
- **Derrota basada en vidas**: El jugador pierde todas las vidas o puntos de salud disponibles
- **Cumplimiento de objetivos**: Todos los enemigos son derrotados, se recogen ítems específicos o se logran metas
- **Basado en tiempo**: El juego termina después de una duración establecida o cuando la cuenta regresiva llegue a cero
**Funcionalidad de Reinicio**:
- **Limpiar el estado del juego**: Elimina todos los objetos de juego previos y reinicia variables
- **Reinicializar sistemas**: Comienza fresco con nuevas estadísticas del jugador, enemigos y objetivos
- **Controles amigables para el usuario**: Proporciona instrucciones claras para reiniciar el juego
**Retroalimentación para el Jugador**:
- **Mensajes de victoria**: Celebra los logros del jugador con comentarios positivos
- **Mensajes de derrota**: Proporciona mensajes alentadores que motiven a volver a jugar
- **Indicadores de progreso**: Muestra la puntuación actual, vidas o estado de objetivos
### Ideas y Inspiración para el Juego
Elige uno de estos conceptos de juego o crea el tuyo propio:
#### 1. Juego de Aventura en Consola
Crea una aventura basada en texto con mecánicas de combate:
```
Hero> Strikes with broadsword - orc takes 3p damage
Orc> Hits with club - hero takes 2p damage
Hero> Kicks - orc takes 1p damage
Game> Orc is defeated - Hero collects 2 coins
Game> ****No more monsters, you have conquered the evil fortress****
```
**Características clave para implementar:**
- **Combate por turnos** con diferentes opciones de ataque
- **Puntos de salud** tanto para el jugador como para los enemigos
- **Sistema de inventario** para coleccionar monedas o ítems
- **Múltiples tipos de enemigos** con dificultad variable
- **Condición de victoria** cuando todos los enemigos son derrotados
#### 2. Juego de Colección
- **Objetivo**: Coleccionar ítems específicos mientras evitas obstáculos
- **Condiciones de fin**: Alcanzar la cantidad objetivo de colección o perder todas las vidas
- **Progresión**: Los ítems se vuelven más difíciles de alcanzar conforme avanza el juego
#### 3. Juego de Rompecabezas
- **Objetivo**: Resolver rompecabezas cada vez más difíciles
- **Condiciones de fin**: Completar todos los niveles o quedarse sin movimientos/tiempo
- **Reiniciar**: Volver al primer nivel con progreso borrado
#### 4. Juego de Defensa
- **Objetivo**: Proteger tu base de oleadas de enemigos
- **Condiciones de fin**: Sobrevivir todas las oleadas (victoria) o que la base sea destruida (derrota)
- **Progresión**: Las oleadas de enemigos aumentan en dificultad y número
## Guía de Implementación
### Para Comenzar
1. **Planifica el diseño de tu juego**:
- Esboza el bucle básico de juego
- Define claramente tus condiciones de fin
- Identifica qué datos necesitas reiniciar al reiniciar el juego
2. **Configura la estructura de tu proyecto**:
```
my-game/
├── index.html
├── style.css
├── game.js
└── README.md
```
3. **Crea tu bucle principal del juego**:
- Inicializa el estado del juego
- Maneja la entrada del usuario
- Actualiza la lógica del juego
- Verifica las condiciones de fin
- Renderiza el estado actual
### Requisitos Técnicos
**Usa JavaScript Moderno**:
- Aplica `const` y `let` para declaraciones de variables
- Usa funciones flecha donde sea apropiado
- Implementa características ES6+ como literales de plantilla y destructuración
**Arquitectura Orientada a Eventos**:
- Crea manejadores de eventos para interacciones del usuario
- Implementa cambios de estado del juego mediante eventos
- Usa escuchadores de eventos para la funcionalidad de reinicio
**Prácticas de Código Limpio**:
- Escribe funciones con responsabilidades únicas
- Usa nombres descriptivos para variables y funciones
- Añade comentarios explicando la lógica y reglas del juego
- Organiza el código en secciones lógicas
## Requisitos de Entrega
### Entregables
1. **Archivos completos del juego**: Todos los archivos HTML, CSS y JavaScript necesarios para ejecutar tu juego
2. **README.md**: Documentación que explique:
- Cómo jugar tu juego
- Qué condiciones de fin implementaste
- Instrucciones para reiniciar
- Cualquier característica o mecánica especial
3. **Comentarios en el código**: Explicaciones claras de la lógica y algoritmos de tu juego
### Lista de Verificación para Pruebas
Antes de entregar, verifica que tu juego:
- [ ] **Se ejecute sin errores** en la consola del navegador
- [ ] **Implemente múltiples condiciones de fin** según lo especificado
- [ ] **Se reinicie correctamente** con el estado limpio restaurado
- [ ] **Proporcione retroalimentación clara** a los jugadores sobre el estado del juego
- [ ] **Utilice sintaxis y mejores prácticas modernas de JavaScript**
- [ ] **Incluya documentación completa** en README.md
## Rubrica de Evaluación
| Criterios | Ejemplar (4) | Competente (3) | En Desarrollo (2) | Principiante (1) |
|----------|---------------|----------------|----------------|--------------|
| **Funcionalidad del Juego** | Juego completo con múltiples condiciones de fin, reinicio fluido y experiencia de juego pulida | Juego completo con condiciones de fin básicas y mecanismo de reinicio funcional | Juego parcial con algunas condiciones de fin implementadas, el reinicio puede tener problemas menores | Juego incompleto con funcionalidad limitada y errores significativos |
| **Calidad del Código** | Código limpio, bien organizado usando prácticas modernas de JavaScript, comentarios completos y excelente estructura | Buena organización del código con sintaxis moderna, comentarios adecuados y estructura clara | Organización básica del código con algunas prácticas modernas, comentarios mínimos | Pobre organización del código, sintaxis antigua, falta de comentarios y estructura |
| **Experiencia del Usuario** | Jugabilidad intuitiva con instrucciones claras, excelente retroalimentación y experiencia atractiva de fin/reinicio | Buena jugabilidad con instrucciones y retroalimentación adecuadas, fin/reinicio funcional | Jugabilidad básica con instrucciones mínimas, retroalimentación limitada sobre el estado del juego | Jugabilidad confusa con instrucciones poco claras y mala retroalimentación al usuario |
| **Implementación Técnica** | Demuestra dominio de conceptos de desarrollo de juegos, manejo de eventos y gestión de estado | Muestra buena comprensión de conceptos de juegos con buena implementación | Comprensión básica con implementación aceptable | Comprensión limitada con mala implementación |
| **Documentación** | README completo con instrucciones claras, código bien documentado y evidencia de pruebas exhaustivas | Buena documentación con instrucciones claras y comentarios adecuados en el código | Documentación básica con instrucciones mínimas | Documentación pobre o ausente |
### Escala de Calificación
- **Ejemplar (16-20 puntos)**: Supera expectativas con características creativas e implementación pulida
- **Competente (12-15 puntos)**: Cumple todos los requisitos con ejecución sólida
- **En Desarrollo (8-11 puntos)**: Cumple la mayoría de los requisitos con problemas menores
- **Principiante (4-7 puntos)**: Cumple algunos requisitos pero necesita mejoras significativas
## Recursos Adicionales para Aprendizaje
- [Guía de Desarrollo de Juegos en MDN](https://developer.mozilla.org/en-US/docs/Games)
- [Tutoriales de Desarrollo de Juegos con JavaScript](https://developer.mozilla.org/en-US/docs/Games/Tutorials)
- [Documentación de Canvas API](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API)
- [Principios de Diseño de Juegos](https://www.gamasutra.com/blogs/)
> 💡 **Consejo Profesional**: Empieza simple y agrega funciones de forma incremental. ¡Un juego simple bien pulido es mejor que un juego complejo con errores!
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Aviso Legal**:
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de cualquier malentendido o interpretación errónea derivada del uso de esta traducción.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->