¿Cómo sería dibujar un cuadrado? En una unidad anterior hablamos sobre cómo hacerlo. Pero ahora, pensando en que podemos tener disponibles nuevos bloques, estaría muy bueno tener un bloque que lo dibujara. Este es parte de nuestro código para dibujar el cuadrado que ya vimos en otra unidad. Vamos a crear un nuevo bloque en Scratch y lo llamaremos dibujar cuadrado. Movemos el código dentro de la definición y para probarlo podríamos poner que al presionar la barra espaciadora utilice el bloque dibujar cuadrado. Bien, nuestro bloque dibuja un cuadrado. Si lo deseamos le podríamos agregar un bloque borrar al comienzo, antes del bloque cuadrado. Este procedimiento dibuja un cuadrado de un lado específico, esto es, cada lado tiene 100 pasos. Para hacerlo más general podríamos ampliar el programa y que preguntara qué tamaño de lado queremos y dibuje el cuadrado con ese lado. Estaría muy bueno tener un bloque dibujar cuadrado lado y pasarle como dato o parámetro el valor. Observemos lo siguiente: en Scratch hay diferentes tipos de bloques, por ejemplo en el bloque mover x pasos se debe indicar la cantidad de pasos que se desea mover. Este dato a incluir se llama parámetro. Un parámetro es un valor que se le pasa al procedimiento y sirve para cambiar una instrucción general como mover x pasos en algo concreto: mover 25 pasos. Así, los bloques, incluidos los que nosotros definimos, pueden recibir parámetros. Por ejemplo, en el caso que estamos analizando, como vimos, se podría crear un bloque para dibujar el cuadrado que reciba como dato el tamaño del lado. Agreguemos entonces el nuevo bloque y elige dentro de opciones añadir entrada numérica. Al añadir la entrada cambia el nombre que ofrece por lado. Aplicamos otra vez aquí la recomendación de poner nombres a las variables que nos ayuden a recordar su contenido. Completamos ahora el código que es casi el mismo de dibujar un cuadrado. La única diferencia es que nos moveremos una cantidad de pasos igual a lado. Podemos ver que este procedimiento para dibujar un cuadrado es una versión generalizada del procedimiento anterior para dibujarlo. Si lo deseas puedes agregarle también algún efecto de color y grosor de lápiz para que el dibujo quede más lindo. Algo muy importante que debemos tener presente cuando programamos es que en general hay varias formas de hacer las cosas. La mayoría de las veces no hay una única posible. Podrías haber programado correctamente este bloque de otra manera y sería válido también. Para probar el bloque podemos hacer un programa que dibuje varios cuadrados, por ejemplo tres y todos tendrán el extremo superior izquierdo en la misma posición. Agregamos un bloque borrar primero. El programa irá preguntando al usuario en cada caso qué lado quiere y su respuesta será el lado que le pasemos al bloque dibujar. Vamos a probarlo. ¿Cómo es que funciona? Si cuando pregunta el lado, digitamos como respuesta 80, se dibuja un cuadrado de lado 80. En forma similar, si digitamos 100, el lado a dibujar es 100. Lo mismo para el tercer cuadrado. El valor que se ingresa en respuesta se lo pasamos como parámetro al bloque dibujar cuadrado lado. La variable lado que está definida en el propio bloque, toma su valor, esto es se asigna el valor de la respuesta a la variable lado. Dentro del bloque nuevo de dibujar se usa la variable lado. >> Inés, cuando estaba creando el bloque puse un parámetro de más pero no se cómo sacarlo, ¿debo borrar todo el bloque? >> No, no es necesario. Arriba de cada parámetro te aparece una cruz que si la presionas te permite borrar ese parámetro. Esto es en el momento en que estás creando el bloque. Si ya lo definiste puedes editarlo y ajustar lo que necesites. >> Solucionado entonces. >> Bien. Otra extensión que podemos hacer es tener un bloque al cual se le pase el tamaño del lado y las coordenadas x e y de donde queremos que lo ubique. Vamos a hacerlo. Creamos un nuevo bloque dibujar cuadrado lado posición que tiene tres parámetros: el lado, x e y. Lo primero que tiene que hacer es ubicarse en la posición x e y dada y luego dibujar desde allí un cuadrado del lado indicado. Pero, ya tenemos un bloque que lo hace, lo podemos reutilizar. Para probarlo, hacemos un programa que dibuje tres cuadrados similar al de hoy, que tengan el mismo extremo superior como antes pero en el que podamos especificarle cuál será esa posición. Aquí elegiremos la posición 80 80. Bien. Si analizamos el proceso en general que hicimos en relación al cuadrado, en la unidad previa creamos una primera versión o forma del programa, la cual en esta unidad modificamos utilizando los bloques y generalizamos para dibujar cuadrados de cualquier lado y en cualquier posición. La generalización de soluciones es una práctica muy útil de la ingeniería de software. Involucra hacer nuestros programas menos específicos que un caso particular y que así pueden ser reutilizados en diferentes situaciones. Por ejemplo, si tenemos un algoritmo para hervir leche semidescremada, podríamos generalizarlo en describir cómo hervir leche o más aún, cómo hervir líquidos. En nuestro caso, cuando definimos el procedimiento dibujar cuadrado lado estábamos generalizando el procedimiento dibujar cuadrado para dibujar un cuadrado de cualquier lado. Luego lo generalizamos más aún, permitiendo dibujar cuadrados de cualquier tamaño en cualquier lugar con el procedimiento dibujar cuadrado lado posición. Es muy recomendable seguir este enfoque incremental cuando generalizamos soluciones como hicimos en este video. Es una buena idea también reutilizar nuestro propio código así como reutilizamos el procedimiento dibujar cuadrado lado cuando definimos el procedimiento dibujar cuadrado lado posición. ¿Y qué tal si ahora generalizamos el procedimiento de dibujar cuadrados más aún, por ejemplo, para dibujar figuras de cualquier cantidad de lados donde todos los lados sean del mismo largo? Te dejamos este desafío y esperamos que nos cuentes en el foro cómo te fue.