En este proyecto, utilizarás la abstracción para dibujar una pared de ladrillo.
Una imagen de un ladrillo es solo un rectángulo de un color rojo ladrillo. Sin embargo, no hay un bloque dibujar rectángulo
en Snap!. Una forma de dibujar uno es pensar en un rectángulo como una línea muy gruesa. Aquí está la idea:
Normalmente, Snap! dibuja extremos redondeados en líneas gruesas: . Esa es a menudo la mejor opción, y puedes ver por qué a continuación. Pero para ladrillos, queremos extremos de punta de lápiz plana :
, Y así lo usaremos
para activar las puntas de las líneas planas.
Como aprendiste en la Unidad 1, Laboratorio 2, Página 2: Hacer que los programas hablen, abstracción procesal (procedural abstraction) es el proceso de desarrollar un programa dividiendo un gran problema en subproblemas más pequeños.
Crear un bloque dibujar ladrillo
te permite pensar en términos de un procedimiento con un nombre relacionado con el problema que estás resolviendo. Esto hace que tu código sea más fácil de leer; una vez que hayas codificado y depurado el bloque, no necesitas pensar en cómo funciona cada vez que lo usas. Esa es la belleza de la abstracción procedimental.
Necesitarías que el bloque de "nivel superior" fuera algo como esto:
Conseguirlo requiere modularidad.
Modularidad (modularity) es el proceso de romper un problema en pedazos más pequeños. La modularidad es una forma de abstracción procedimental.
Hay dos tipos de filas, por lo que crearás bloques que se especialicen en cada uno:
dibujar ladrillo
para hacer los bloques Es posible exagerar la abstracción y construir tantos bloques que tu programa esté tan desordenado como lo estaría sin los bloques personalizados. Pero puede ser útil crear un bloque personalizado incluso cuando su definición es solo un bloque integrado. Por ejemplo, para dibujar el mortero entre bloques (los espacios en blanco), puedes usar mover (4) pasos
, pero podría tener sentido definir un bloque dibujar mortero
que use mover
dentro de él.
¿Por qué? Es posible que luego decidas que cuatro pasos son el grosor incorrecto para el mortero y que preferirías tener cinco. O quizás prefieras que el mortero sea del color del mortero, ligeramente gris. Con muchas instrucciones de mover (4) pasos
esparcidas por su programa, tendrías que encontrar y cambiar cada una. Para empeorar las cosas, tu proyecto completo podría tener bloques mover
que no se refieran al mortero. Pero con un bloque dibujar mortero
, puedes cambiar solo su definición, y se cambiará todo el mortero en tu imagen.
Depura pensando en lo que estás intentando lograr, no en tu código. Depura pensando en lo que estás intentando lograr, no en tu código. Por ejemplo...
¿extraño?
predicado de tu proyectoU2L4-BibliotecaMatemática. Aprendiste sobre exportar e importar bloques en Unidad 2 Laboratorio 3, Página 1: ¿Qué es un predicado?
dibujar pared de ladrillo
(y según sea necesario para dibujar la fila A
y dibujar la fila B
) para: