Add ShapeContainer class to the project.
Add filled property to ShapeContainer class that tells us whether a container has a shape in it.
Add draw: method to ShapeContainer class. It draws a filled shape if it's filled and draws an outline of the shape if not.
Add a shapeContainerList property to the GameView class.
Add a method to fill the shape container list. Modify drawRect: method to draw the shape containers.
Make the path and color properties data members of the Shape class so the ShapeContainer subclass can access them when drawing.
Add ShapeContainer class to project.
Remove the data members path and color. ShapeContainer is no longer a subclass of Shape so I didn't need to have path and color as data members.
ShapeContainer is no longer a subclass of Shape. I added properties for the vertices, path, start point, fill color, and outline color.
Add a buildPath: method that creates the path for the shape container.
Remove fillShapeContainerList: method. I fill the shape container list in the fillShapeList: method since I need the shape's vertices to create the shape container.
Change the order of the properties in the ShapeContainer class to match the order in the Shape class.
Add a method to check for matches. The match involves two tests. First, I check if the shape's starting point is inside the shape container's path, there's a possible match. If there's a possible match, I compare the vertices of the shape and the shape container. If the vertices are equal, there's a match. I may want to use a different point than the shape's starting point, such as its center, to determine a possible match. But for now I have preliminary support for shape matching.