Project Description: In this project, I created a flower garden in Scratch by defining my own custom blocks to build different parts of a flower, such as the stem, leaves, and petals, and then combining them into a full flower. My code is organized using multiple custom blocks and scripts across different sprites, and I used key presses to trigger different actions like drawing flowers. I used parameters in my custom blocks to control things like size, color, and number of petals, and I included random values to create variation in the flowers and their placement. I also used repeat loops within my custom blocks to simplify the drawing process and avoid repeating code, which allowed me to generate multiple flowers and form a garden pattern.
Strengths: One strength of my project is that I used custom blocks to organize my code, which made it easier to build each part of the flower separately and then combine them. This helped keep my code structured instead of having everything in one long script. Another strength is that I used parameters in my custom blocks, which allowed me to change things like size, color, and number of petals without rewriting the code. I also included random values so that the flowers are not all identical, which makes the garden look more varied.
Opportunities: One way I could improve this project is by adding more user control, such as letting the user choose specific flower features instead of relying mostly on randomization. I could also improve the design by creating more distinct types of flowers instead of variations of the same structure. Another improvement would be to better organize the placement of flowers so the garden looks more intentional instead of fully random.
Understandings: From this project, I learned how defining my own custom blocks helps break a large problem into smaller parts and makes the program easier to manage. I also learned how parameters make code more flexible, since I can change values without rewriting entire sections. In addition, I understood how randomization can create variation in a program, and how repeat loops help reduce repetition in code while still producing multiple objects.
Limitations: One limitation of my project is that the flowers are still based on the same overall structure, so even with randomization they can look similar. Another limitation is that there is limited interaction for the user, since most of the output is generated automatically. There may also be some issues with spacing or overlapping flowers, since their positions are randomized rather than carefully controlled.
Coding Key:
'1': Original Blossom
'2': Randomized Blossom
'3': English Garden
'4': Geometric Garden
'5': French Garden