# Misión 14 — créditos y procedencia

Actividad para primer grado, creada para la segunda clase a partir de la experiencia de `minijuegos_1ro`. Reutiliza las ideas de búsqueda, letras, conteo, teclado, memoria, asociación por arrastre y orden de planetas de la actividad anterior. No incluye píxeles.

## Código y datos reutilizados de GCompris Web

- **El código de frutas:** `vendor/algorithm.json` es una copia del banco de patrones de `src/games/algorithm/data.json` de GCompris Web. Procede de `src/activities/algorithm/algorithm.js` (SHA-256 registrado en el JSON). Se adapta la mecánica de correspondencia entre dos alfabetos visuales: modelo de ocho frutas, fila de animales con cuatro espacios resueltos y cuatro por completar. Autores fuente: Christof Petig, Ingo Konrad y Bharath M S. GPL-3.0-or-later.
- **Camino al queso:** `vendor/maze.js` es el generador de `src/games/maze/generator.ts` de GCompris Web convertido a JavaScript quitando anotaciones TypeScript. Conserva el algoritmo, orden de vecinos y bits recíprocos de paredes. Fuente GCompris `maze.js`; Bastiaan Verhoef y Stephane Mankowski. GPL-3.0-or-later. Aquí se usan tableros de 4×4, 5×5 y 6×6 y controles propios.
- **Encontrá la frutilla (juegos libres):** `libres/frutilla.js` adapta `src/games/hexagon/index.ts` de GCompris Web, procedente de `Hexagon.qml`, `HexagonItem.qml` y `hexagon.js`. Autores: Christof Petig e Ingo Konrad (GTK+), Bruno Coudoin (Qt Quick); GPL-3.0-or-later. Conserva los doce niveles, la geometría del panal y los colores según la distancia. Usa la celebración y la navegación de los juegos libres, sin guardar estrellas ni cambiar el avance del camino. `assets/gcompris-frutilla.svg` es el dibujo original de Franck Doucet (2000–2008), sin modificar, bajo [GPL-3.0-only](vendor/GPL-3.0-only.txt); procedencia: `src/activities/hexagon/resource/strawberry.svg`. Mouse, tacto o flechas y Enter/Espacio, con pistas de texto además del color.
- Referencia local actual: `gcompris-web/` en la raíz de Andamiaje. El proyecto fuente se conserva sin modificaciones y con su Git independiente.

Frutilla: `python tests/frutilla.browser.py <URL local> [carpeta de capturas]` comprueba los doce niveles, pistas y consultas repetidas, teclado, cancelación al salir, tacto emulado, movimiento reducido, acceso al completar ambos caminos y avance intacto. Simula las API para no escribir datos de clase.

El resto de las implementaciones fue escrito para esta actividad. Ordenar números, conteo hacia atrás, sudoku de dibujos toman como referencia las familias educativas presentes en GCompris; no copian sus bancos ni recursos. El Jardín es «Plantas vs Bichos» (`jardin/index.html`), un juego propio en canvas inspirado en la defensa por filas: soles, girasol, lanzaguisantes, nuez y hielo contra mariquitas, caracoles, abejas y escarabajos. Plantas, bichos y pasto están dibujados por código, sin recursos de Plants vs. Zombies. Se abre con `?nivel=0..11` en doce niveles que suman filas, bichos y plantas, arranca sin sonido y avisa a la actividad al ganar.

Esta actividad y las adaptaciones se distribuyen bajo GPL-3.0-or-later. El código fuente editable está en `app.js`, `engine.js`, `style.css`, `index.html` y `vendor/`. Texto de licencia: [GPL-3.0-or-later](vendor/GPL-3.0-or-later.txt). Sin dependencias de JavaScript, fuentes ni audio externos. Imágenes locales con las licencias indicadas a continuación y sonidos sintetizados con Web Audio.

## Uso en clase

14 juegos × 12 desafíos = 168 estrellas. Cada estrella acredita un tablero o desafío completo. Tres tramos de cuatro desafíos: Explorador, Aventurero y Experto. Sin cuenta regresiva ni penalización de estrellas; errores permiten corregir. El progreso nuevo se guarda por juego y nivel con una clave independiente de la primera actividad. Al volver se inicia el primer desafío pendiente. Completar todos los juegos es una meta que puede continuarse entre clases; no se presupone que 168 desafíos entren en una sola clase.

Arrastres: mouse/tacto, o seleccionar ficha y destino mediante clic/Enter. Flechas: teclado o botones. Palabras: teclado físico. Lectura de consigna opcional mediante Speech Synthesis; depende de las voces instaladas. Si el navegador bloquea almacenamiento, se puede jugar pero el avance no persistirá al recargar.

## Planetas

El Sol y los ocho planetas son dibujos propios en SVG (`assets/planeta-*.svg`), con tamaños aproximados entre sí, y se muestran siempre con su nombre. Los doce niveles alternan cinco minijuegos para aprender el orden desde el Sol: copiar sobre las siluetas, ordenar en casilleros numerados, viajar en cohete tocando los planetas en orden (queda dibujada la ruta), ¿cuál falta? y ¿cuál sigue? Se empieza con cuatro planetas y se llega a los ocho. En los niveles 10 y 12 el modelo se tapa a los 5 segundos y se puede volver a mirar con 👀.

## Palabras

Recupera la hoja de procesador de texto de «Escribe» (`minijuegos_1ro`): barra azul, letras grises para calcar, cursor que titila y cada palabra terminada queda escrita en la hoja. Una letra equivocada queda en rojo hasta borrarla con ←; con la palabra completa se aprieta Enter para pasar a la línea siguiente. Arriba se ven los dibujos de todas las palabras del nivel.

Niveles más largos: 8 palabras en Explorador (1–4) y 10 en Aventurero (5–8) y Experto (9–12), de las más cortas a las más largas. `palabras.js` tiene 129 palabras sin Ñ ni tildes: 77 en castellano (con algunas de acá, como PALTA, CHOCLO, FRUTILLA y MATE) y 52 en inglés simple, que se muestran con la etiqueta ENGLISH y en tinta azul. Cada nivel mezcla castellano e inglés. Ninguna palabra se repite dentro de un tramo: el mazo que queda se guarda en este navegador (`minijuegos_1ro_desafio_palabras_v1`) y vuelve a mezclarse recién al agotarse. El modo profe no consume el mazo y «Borrar el avance» lo reinicia.

## Imágenes buscadas y descargadas de internet

- **Kenney, Voxel Pack (CC0):** `assets/blocks-world.png` y `blocks-platform.png` son los ejemplos originales Sample_3D.png y Sample_2D.png; las texturas `grass_top`, `dirt_grass`, `stone_diamond`, `stone_gold`, `greystone` y el pico `pick_diamond` proceden del mismo paquete. Fuente: https://opengameart.org/content/voxel-pack . ZIP: https://opengameart.org/sites/default/files/voxel-pack-updated.zip . Licencia original en `assets/KENNEY-LICENSE.txt`. Inspiración visual de mundos de bloques estilo Minecraft; imágenes de Kenney, no de Mojang.
- **OpenMoji (CC BY-SA 4.0):** ilustraciones SVG a color y 15 contornos en blanco y negro (`assets/linea/`, para los dibujos de «Pintar»), originales y sin modificar, usadas en tarjetas, consignas, fichas, escenarios y juegos libres. Autores: OpenMoji, Hochschule für Gestaltung Schwäbisch Gmünd y colaboradores. Fuentes: https://github.com/hfg-gmuend/openmoji/tree/master/color/svg y https://github.com/hfg-gmuend/openmoji/tree/master/black/svg . Cada archivo conserva el código Unicode del recurso fuente; `assets/emoji-map.json` registra la correspondencia. Licencia en `assets/OPENMOJI-LICENSE.txt` y https://creativecommons.org/licenses/by-sa/4.0/ . Se representan a distintos tamaños sin alterar el SVG.

Todos estos archivos se sirven desde el proyecto. La descarga de imágenes de internet se realiza al preparar la actividad, no desde el navegador de los chicos. Las licencias de las imágenes se mantienen separadas de la licencia GPL del código.

- **NASA Science:** ilustración infantil de Saturno usada como ícono 🪐, descargada sin modificar de https://science.nasa.gov/saturn/ (archivo original `saturn-planets-14.en_.png` en `https://science.nasa.gov/wp-content/uploads/2023/05/`). Se conserva localmente como `saturn-nasa.png`. Crédito: NASA.

## Adaptación de lectura para primer grado

Las pantallas infantiles muestran únicamente el nombre, el nivel, la casa para volver y el juego. Los modelos necesarios para resolver cada desafío están dentro del tablero. No hay botones de audio, barra de instrucciones ni reinicio general. Los doce niveles, etiquetas accesibles y progreso se conservan. El jardín avanza automáticamente: los gusanos caminan y las flores disparan cada 2,5 segundos; plantar no adelanta el turno. Si se pierde, aparece Volver a jugar dentro del juego.

## Interfaz animada

`playful.css` recupera el estilo de fichas grandes, botones con relieve y celebraciones de la actividad original. `effects.js` agrega partículas decorativas, disparos y movimiento entre casilleros del jardín; no modifica las reglas ni el progreso. Las animaciones respetan la preferencia de movimiento reducido del sistema. La celebración permite continuar, volver al menú y navegar con teclado; salir cancela los efectos pendientes.

Validación: `node --test tests/minijuegos-desafio.test.mjs`; con el servidor estático en el puerto 4387, `python3 tests/minijuegos-desafio.browser.py` completa los 168 desafíos y `python3 tests/minijuegos-desafio-ux.browser.py` comprueba el diálogo, las cartas, la adaptación móvil y el movimiento reducido.

## Recorrido docente

En «Para el profe» se ingresa la contraseña acordada para abrir el modo de vista previa. La contraseña se verifica mediante su resumen SHA-256 en `teacher.js`; el texto ingresado se borra después de comprobarlo. El acceso dura hasta cerrar el modo o recargar la página. Selectores de juego/nivel y Anterior/Siguiente recorren los 168 desafíos, incluidos los cambios de juego entre los niveles 12 y 1. Ni saltar ni completar un desafío docente modifica el progreso guardado. Las consignas y los resultados son visuales; no se necesitan parlantes. Eco musical se retiró de la colección.

Validación: `TEACHER_PASSWORD` con la contraseña acordada al ejecutar `python3 tests/minijuegos-desafio-teacher.browser.py`, con el servidor local del resto de las pruebas. Comprueba contraseña incorrecta/correcta, todos los niveles, navegación entre juegos, progreso intacto, cierre, recarga y retorno al avance infantil.

## Aula sin parlantes

No se incluyen juegos que requieren escuchar. La actividad anterior también retira «¿Empieza?», cuya pista era una palabra hablada. Los juegos de teclado usan teclas físicas, sin teclado en pantalla.
