Created a new Project Matchismo2 and incorporated the PlayingCardView and Grid classes provided by the professor.

Included triggers for pinch and swipe gestures (handling too).
Added drawing of set card based on earlier code in branch AnimationLectureExp.
SetCardView
 - Determined whether to draw (place) shapes vertical or horizontal based on size (width vs height) of area to draw

Grid
 - If user set aspect ratio is zero (<=FLT_MIN) use the aspect ratio of the overall grid. This allows to maximize screen use.
Expanded to use the Deck and CardMatchingGame classes to obtain the cards to show. Introduced two subclasses of CardGameViewController (for PlayingCard and SetCard) to delegate logic specific to a card type.
Merge branch 'feature/CGDraw_SetCard' into develop
Minor change: Not sure how this change got left out.
SetCardView - Incorporated shading for drawing. Also included drawing of border for shape.
Refactored code between PlayingCardView and SetCardView into new base class CardView
Incorporated basic card selection and scoring logic. It still needs refinement for distinguishing chosen cards vs non-chosen.
Introduced CardViewStateType enum to represent whether card view should drawn with face down, card selected, card disabled or normal.
CardView.faceUp - This is now a derived property based on CardViewState.

Included a Overlay layer - to display whether a card has been selected or has matched (no longer selectable) easily. If transparency LAYER is not used then the overlay will blank out the previous drawing (the card contents).
BugFix: Default behavior should be : Card should be face down unless selected or matched.
Match Mode titles obtained at runtime from super classes and set on view load
Used notifications from CardMatchingGame to animate selection of card and its impact.

CardView
 - Getting an overlay (semi-transparent) over card drawings to indicate Matched was not working as expected - was able to draw stroke with transparency but not draw fill with transparency. Had to use CGLayer to get desired effect.
CardGameViewController:
 - Enhanced the animation methods in this class to accept a group of views to manipulate and also accept a block for execution on animation completion.
-  Added animation for removing cards.
In preparation for feature of removing cards from the game and adding new ones, reducing the CardGameViewController (Controller) dependence on the order (and index) of cards in the CardMatchingGame (Model).
Added additional notification from Model when cards are matched to facilitate operations such as removing cards on screen.
Played around with use of __bridge and __unsafe_unretained for converting an integer (UIView.tag) into an Objective-C Object pointer (Card *). In general not a good idea to do so. Will look at storing as type id instead of integer in next update.
Used a dictionary for mapping a CardView to Card (in combination with UIView.tag)
CardMatchingGame removes cards from play once they are matched.
CardMatchingGame now sends notifications when cards are added and removed and the Controller updates the UI appropriately.
Introduced a "Cards" property separate from the "InternalCards" for the Controller to know what cards are in play and not rely on the cardAtIndex method.
Method drawAdditionalCards added to allow user to draw additional cards.

CardGameViewController - Refactored and tweaked some of the animation code in the controller.

CardView.m - BugFix: Was setting negative line width.
Feature to allow drawing additional cards.
BugFix: CardMatchingGame: Additional cards drawn not added to the list of cards sent on the event cardsAdded.
CardGameViewController - tweaked animation code - now cards added appear with animation.
Initial number of cards for SetCard configured to 12.

Auto-reformatted some files with AppCode
Added gathering cards in a pile via pinch gesture and using pan gesture to moved the stack (pile) of cards. When any of the cards are tapped the cards go back to their original position with animation.

Played around with multiple ways to animate
 - Used UIDynamicAnimator and pan gesture effectively for moving the pile of cards
 - But for the gathering of cards the dynamic option via PushBehavior and Collision behavior did not work that well