Hola a todos!
La manera en la que Pilas permite crear mapas nunca me llamó especial atención. Sin embargo al ver algunas consultas y leer el manual, se me ocurrió que sería un buen desafío (estoy de vacaciones, no me juzguen ) crear una especie de diseñador de niveles con la peculiaridad de que nos permita obtener la “grilla” que luego le pasaremos al método:
this.pilas.crear_mapa()
Después de muchas páginas sobre cómo manipular strings logré un diseñador de niveles de 10x10 con cada cuadrado de 32x32 pixeles.
Hagan click sobre el cuadrado blanco y verán que cambia a negro, les invito a dibujar lo que sea y luego clickar donde el actor Logo. El Logo realiza toda la magia y convierte ese dibujo en una grilla que podemos pasarle al comando crear_mapa(), además agrega esa grilla al portapapeles para poder pegarla con CTR + V:
Abrir este proyecto en el editor de pilas
…
…xxxx…
…x…x…
.x…x.
.x…x.
.x…x.
.x…x.
…x…x…
…
Algunas cosas para comentar:
Manipular strings y listas es tremendamente horrible
En un momento use un método sort() el cual funciona sin saber porqué, según yo estaba incompleto.
En otro momento le agrego, cada 10 caracteres, un renglon a la grilla y quise usar un For, pero no me salió y agradecería que alguien me ayude:
let text = this.grilla.slice(0, 10) + "\n" + this.grilla.slice(10, 20) + "\n" + this.grilla.slice(20, 30) + "\n" + this.grilla.slice(30, 40) + "\n" + this.grilla.slice(40, 50) + "\n" + this.grilla.slice(50, 60) + "\n" + this.grilla.slice(60, 70) + "\n" + this.grilla.slice(70, 80) + "\n" + this.grilla.slice(90) + "\n"
Usar un bucle For en vez de esa suma permitiría que el usuario pase un largo y un ancho y se generara el mapa del tamaño que pidiese. Pero va pasar un tiempo antes que quiera volver a meterme con las listas y los strings, capaz haga un video en mi canal sobre como usar y modificar el proyecto…