Manos a la obra
¡Ahora sí!
Vamos a ponernos manos en la masa para programar e implementar variabilidad en un proyecto programado con el lenguaje Snap!, que es muy parecido a Scratch.
¿No conoces Snap!?
Si nunca has programado con Snap!, te recomendamos que hagas una pequeña pausa y realices un par de actividades antes de ponerte con el reto del laberinto variable.
- Crea un usuario en Snap! (https://snap.berkeley.edu/) y familiarízate con la interfaz. Verás que es muy similar a Scratch.
- Realiza los dos primeros laboratorios de este tutorial: https://bjc.edc.org/bjc-r/topic/topic.es.html?topic=nyc_bjc/1-intro-loops.es.topic&course=bjc4nyc.es.html
- Programa este videojuego (incluyendo la propuesta de la sección "Llevándolo más allá": https://bjc.edc.org/bjc-r/cur/programming/1-introduction/optional-projects/3-pong.es.html?topic=nyc_bjc%2F1-intro-loops.es.topic&course=bjc4nyc.es.html
Reto 5: programamos el comportamiento del enemigo
Como se explicaba en el vídeo, vamos a modificar el comportamiento del enemigo de nuestro laberinto para que, en función del nivel de dificultad seleccionado por el usuario en la pantalla de configuración, su movimiento sea más lento y simple, o más rápido y complejo.
Para ayudarte, te hemos preparado un proyecto con varias cuestiones ya implementadas. Así, simplemente tienes que hacerte una copia del proyecto para poder hacer las modificaciones que necesites.
Verás que el movimiento del personaje principal ya está implementado, los fondos, y parte del código del personaje configurador. Lo que falta es que edites el bloque "procesar características" ("process features") del personaje "Configuration". Ahí es donde vas a modificar el comportamiento del bloque "flow" (flotar), de manera que el comportamiento cambie en función del nivel de dificultad elegido.
El resultado, utilizando metaprogramación, podría ser algo así:

Una posible solución al Reto 5
Aquí te dejamos una modificación del proyecto con la variabilidad del enemigo ya implementada mediante metaprogramación.
Reto 6: imaginación al poder
Ahora que ya has entendido cómo se puede usar metaprogramación para implementar la variabilidad de un proyecto Snap!, te pedimos que des rienda suelta a tu imaginación para añadir más variabilidad a tu videojuego del laberinto.
Quizá quieras introducir nuevos enemigos en función de la dificultad, o contar con un cronómetro con distintos tiempos o velocidades por nivel, quizá cambie el tipo de movimiento, o haya que recoger diferentes recompensas... Seguro que ya se te están ocurriendo muchas ideas para modificar tu laberinto, ¿verdad?
Pues no te cortes, y ponte a implementarlas. Eso sí, cuando termines te pedimos que te asegures de que tu proyecto está compartido y está publicado, ya que nos encantará ver el resultado de tus modificaciones.
Rúbrica
| 4 Excelente | 3 Satisfactorio | 2 Mejorable | 1 Insuficiente | |
|---|---|---|---|---|
| Reinvención | El proyecto supone una reinvención clara del original, manteniendo la idea base pero con una identidad propia. (2.5) | El proyecto reinventa el original incorporando cambios significativos en estructura o comportamiento. (1.75) | El proyecto reinventa el original pero apenas incorpora nuevos cambios. (1.50) | El proyecto no reinventa el original o no incorpora nuevos cambios. (1.25) |
| Variabilidad | Se añade al menos una opción de variabilidad, implementada mediante metaprogramación. (2.5) | Se añade una opción de variabilidad, implementada mediante condicionales en el propio código de los personajes. (1.75) | Se añade una opción de variabilidad, implementada mediante clonar y personalizar. (1.50) | No se añade ninguna nueva opción de variabilidad. (1.25) |
| Publicación | El proyecto está publicado y compartido. (2.5) | El proyecto solo está publicado. (1.75) | El proyecto solo está compartido. (1.50) | El proyecto no está ni publicado ni compartido. (1.25) |
| Documentación | La descripción pública del proyecto explica claramente la variabilidad añadida y cómo se ha implementado. (2.5) | La descripción pública explica la variabilidad añadida, pero con poca claridad sobre su implementación (1.75) | La descripción pública es superficial o incompleta respecto a la variabilidad añadida. (1.50) | No hay descripción pública del proyecto o no explica la variabilidad añadida. (1.25) |
- Actividad
- Nombre
- Fecha
- Puntuación
- Notas
- Reiniciar
- Imprimir
- Aplicar
- Ventana nueva