Buenas, gente. ¿Cómo están? Yo feliz porque puedo volver a traerles otro proyecto de Makecode Arcade. Me encanta programar jueguitos, hacerles la portada y adornarlos con alguna corta historia. Acabo de tener la idea de comprar antiguos disquetes de PC y cargarlos con los proyectos de esta categoría. ¿Qué opinan? Desde ya, sería poco práctico - dado que casi ninguna computadora hoy posee disquetera - pero siento que podría quedar muy épico. Un disquete de 1,44 MB por cada jueguito de Makecode Arcade (con su imagen de presentación y todo). "¿Entra el juego, profe?" ¡Sí! Para que te des una idea, el proyecto de hoy pesa nada más y nada menos que 652 KB. Hermoso. ¡Bienvenidos a una nueva actividad!
Te despertaste y no entendés qué pasa. Te convirtieron en una pelotita y estás en un lugar en donde hace mucho calor. Detrás de una pared, hay un hombre de aspecto macabro que no para de mirarte fijamente. “Bienvenido, amiguito. Mi nombre es Mesties y soy el anfitrión de la quinta pesadilla de esta noche. Son las 4:30 de la mañana en el mundo real y tu jornada de sueño no viene muy bien que digamos. Te quedan tres horas de descanso, si es que podemos llamarlo así, y quería proponerte lo siguiente: Si superas el juego que diseñé para hoy, te garantizo un excelente cierre de noche. De lo contrario, despertarás en el mundo real y no conseguirás volver a dormir. Esquiva los proyectiles y apártate de las baldosas movedizas, evitando así caer a la lava. Sólo serán 30 segundos. ¿Te sientes capaz? ¡Vamos! Yo te tengo fé”.
Ganar “El piso es lava” es todo un reto. Creo que, fácil, habré perdido unas siete veces antes de llegar a mi gloriosa victoria. Las baldosas se van cayendo aleatoriamente y los proyectiles nos impiden, más de una vez, quedarnos quietos y seguros en un mismo lugar. Me traumó tanto que ahora cada vez que me despierte a la madrugada voy a decir: “¡Otra vez perdí en el desafío de Mesties!” ¿Quieren probarlo ustedes? El personaje se mueve con las típicas flechitas de dirección o con las letras “W,A,S,D”. Buena suerte.
Link ACÁ
(Botones de "Show Code" y "Edit Code" disponibles).
En lo que al código respecta, yo diría que - hasta ahora - es uno de los más extensos que hice. Me gustaría hablar de tiempos, pero eso ya depende de la experiencia de cada curso en particular. Si podría decirles, por ejemplo, que es una actividad que yo implementaría a partir del nivel secundario. El proyecto exige diseño de mapa, comprensión del espacio, manejo de variables, aleatoriedad, bucles, condicionales, eventos, etc. No es tan simple.
¿Qué les parece si lo chusmeamos un poco? Vayamos parte por parte.
Tenemos el bloque de “Al iniciar” que configura cosas como el mapa, los personajes, la posición, tipo (jugador, enemigo, etc.) y tamaño de los mismos; los controles, la cámara y la duración del juego.
Uno de mis bloques "Para siempre" (bucle que se ejecuta de manera infinita y sin descanso) posee la tarea de elegir baldosas al azar (guardando su fila y columna en una variable) para luego transformarlas en lava. En mi caso, para que el cambio no se haga de manera inmediata y sin previo aviso, coloque un bucle que hace que la baldosa cambie 4 veces de color antes de ser reemplazada por un bloque de lava. ¿Qué trucazo, no?
Por otra parte, también de manera "infinita", necesito ir lanzando proyectiles que impidan que el jugador se quede quieto. ¿De dónde salen estos proyectiles? Desde el costado izquierdo del mapa hacia una dirección totalmente aleatoria; fruto de una combinación azarosa de valores 'x' e 'y'. "¿Por qué 'x' de 0 a 160? ¿Por qué 'y' de 0 a 120?" Bueno. Veamos cómo se distribuyen las coordenadas en Makecode Arcade:
Mediante la combinación 'x' = 0-160 e 'y' = 0-120 consigo que un proyectil pueda ir, literalmente, hacia cualquier punto del mapa. Estoy abarcando todo el rango posible.
Finalmente, tenemos que analizar cuáles son los acontecimientos que me hacen perder y cuáles son los que me hacen ganar. Caer en la lava o ser impactado por un proyectil, lógicamente, me harían perder. Por otra parte, sobrevivir hasta el final de la cuenta regresiva es algo que me haría ganar. "¿Y por qué pusiste que también ganas si llegas hasta una escalera?" Esa escalera es la que está en la habitación del enemigo. Para llegar hasta ahí, tendrías que pasar desde la zona de baldosas movedizas hasta la zona donde está "Mesties"; de una forma TAN pero TAN sublime que hasta siquiera lo veo matemáticamente posible. No hay forma de no tocar la lava y perder. Aún así, dejemos la puerta abierta. Quién sabe...
Desde ya, profes, espero les haya gustado este proyecto. Me pone muy feliz el hecho de que podamos sumar otro jueguito a la colección. Éxitos en la implementación de esta actividad. Les mando un gran abrazo.
~ Marcos.
Posdata: Si alguno/a lográ "hackear" el mapa, mande el video. ¡Queremos ver!