Due: Wednesday 11/06 10:00am

Read the instructions in the code and write the requested methods. All the methods involve covering the screen with rectangles that produce different color patterns.

Reminder: Test next Friday, 11/08

Reference image (the gif will not run at the same speed as your program):

lab01_game

Skills Assessed

Skill Minimal Competency Developing Competency Competency Mastery
2. Controlling Color State Can set the fill or stroke color of a 2D shape. Can set the fill and stroke color of a 2D shape. Can set the fill and stroke color and the stroke weight of a 2D shape. Can control the fill and stroke colors and the stroke weights of multiple 2D shapes.
3. Using Colors Can set colors using separate Red, Green, and Blue values. Can set colors using RGB values or hexcode values. Can create and work with color variable types. Can explain how the color data type represents color values.
4. Primitive Variables and Types Can declare, initialize, and use int variables. Can declare, initialize, and use int and float variables. Can explain the differences and use the different integer and floating point variable types. Can explain the differences between, use, and explain how the different primitive variables types represent data.
5. Working with Boolean Values Understands the purpose of boolean values. Demonstrates the appropriate use of comparison operators. Demonstrates the appropriate use of comparison and boolean operators. Writes functions that take in boolean values and/or return boolean values.
6. Working with setup and draw Can write a valid setup function that sets initial conditions for a processing program. Can write a valid setup function, and can write a valid draw function that generates different program output each frame. Can create global variables that are initialized in setup and modified in draw. Can use global variables, custom functions, and setup and draw to produce a full processing program.
7. Controlling Program Speed Can set the frame rate for a processing program. Can set the frame rate based on a specified speed. Can control program output based on the current frame number. Can start and stop the action of a processing program.
8. Custom Functions Can identify the return type, name, parameter list, and body of a function. Can write a function given a header and description. Can write a function, including selecting appropriate return and parameter types. Can write multiple functions and use variable scope accurately.
9. Writing Readable Code Uses descriptive identifiers. Uses indentation and newlines to create more readable code, and descriptive identifiers. Uses inline and block comments when appropriate. Uses indentation and newlines, and descriptive identifiers. Can take a large programming task and break it up into smaller functions.
11. Conditional Statements Can use a single if statement correctly. Can use combined if and else statements correctly. Can use if, else if, and else correctly multiples times in a program. Can use multiple styles of combinations of conditional statements (i.e. nested, sequential) in a single program.
13. Handling Events Can modify the state of a running program using the keyPressed() method. Can modify the sate of a running program using multiple keys via the keyPressed() method. Can modify the state of a running program using mouePressed(), using the mouse’s coordinates in some way, as well as using keyPressed() Can work with all the keyboard and mouse event handling Processing functions.
14. Using Objects Can declare and Object variable and instantiate an Object using a constructor. Can use multiple Objects in a program by calling methods on appropriately declared and instantiated Object variables. Can use Objects in a program, describe how reference variables work, and how they are different from primitive variables. Can use Objects and accurately make heap diagrams of Object variables and data.
15. Writing Classes Can design a class by grouping together ideas that should be encapsulated into a single class. Can separate out the fields from the methods while designing a class. Can write a class with fields, a single constructor and methods. Can write classes with fields, and overloaded methods and constructors.