Basic Milestones:
- selection of drawing mode using clicks and/or keys
- displays current mode/relevant information
- clear the drawing and start over
Specific Milestones:
- Basic drawing functionality and interface
- Add colors and brush sizes
- Add basic stamps (circles, squares, etc)
- Modularize code for cleanliness and ease of reading
Optional goals:
- background color selection
- “erase” functionality
- color mixing
- Add at least 2 different brush types
- [1/2] Add at least 2 “special” stamps
- [1/2] Add fill function for shapes
So I was able to achieve all of my basic milestones, and now looking back some of my optional goals were pretty far fetched. Out of the optional milestones I made 1 special stamp, a star, which is not even that special. I was hoping to make squigly lines that iterated more the farther away you clicked, or a zigzag that did the same thing. On the fill function I wanted to be able to turn on and off filling of shapes in case the user wanted just plain shapes, but once again I got stuck on the implmentation and junked the idea. The program runs fine and the functionality is alright but I can not actually control the size of the shapes, they’re all controlled by the size of the pen which is kind of confusing to me? I feel like maybe I should have separate them into two separate things but at the same time it could just not be updating the value and I don’t actually understand how global variables work. I am also unhappy with my inability to completely modularize it, while I was developing my shape functions and trying to place them into their own module it required importing from the main module which is not allowed, so I ended up just having to leave it there since I was running out of time to work on the program. I tried a variant where I moved pretty much everything outside of main and made a new modle that contained everything and main was only the import statements and three lines of code, but that did not work out either so I just scrapped that idea. Overall I think it was a good learning experience about managing the scope of a program and your time as well. I liked having optional goals cause they made me want to achieve them without the pressure of things I absolutely had to implement.