MatchEmScene Program
Assignment Name
This assignment is named: MatchEmScene.
Your app project name, and thus the project’s folder name, must be MatchEmScene
Overview
Create a game that is played as described in the Game Play section below.
This assignment, MatchEmScene, is the first of three assignments.
The entire game will be called MatchEm because the player tries to match both members of a pair of on-screen rectangles.
Each assignment has its own name.
The three assignments are:
1.
MatchEmScene –
The “Match” game screen.
2.
MatchEmTab –
Adds a tab-bar controller and controls to configure the MatchEm game.
3.
MatchEmNav –
Adds a navigation controller and controls to configure the MatchEm game.
The second and third assignments use the first assignment.
The second and third assignments will be assigned when the necessary information has been covered.
Each following assignment will likely be assigned before the previous assignment is due.
Game Play
For game play we will have:
• Pairs of rectangles are placed on the screen repeatedly at a fixed rate.
• Each rectangle of a pair will be placed on the screen at different random locations.
• Each rectangle of a pair must be the same random size and have the same random color.
• Touching …
• When a player touches a rectangle the rectangle will highlight in some manner to indicate that it has been touched. The highlighting might be have some text, including an emoji, appear.
• If the player touches the second rectangle of the pair, the second rectangle will be highlighted in the same manner as the first and then the pair will be removed from the screen.
• If the player touches a second rectangle not of the pair the highlighting of the first rectangle will be removed.
• A count of the number of pairs that have appeared will be displayed.
• A count of the number of matches that the player has made will be displayed.
• A count of the remaining seconds will be displayed.
• The game will end after a fixed amount of time.
For the assignment the fixed amount of time will be 15 seconds.
The App
Start with a single view application.
You may use any code from the instructor examples.
Use the iPhone simulator, do not use the iPad simulator. The iPad simulator requires too much screen space when run for grading.
Implementation Notes
Create the buttons/rectangles two at a time.
You will need a way to determine if two buttons are a pair or from different pairs so that matched buttons can be removed.
For this assignment there is no way to start a new game once one has ended, you will need to re-run the app.
The RandomRectangles Example
Look at the Random Rectangles example in the class examples.
Screen Shot
A screen shot:
• Game Almost Over
Model Object
This model object section may be postponed to the next assignment.
In line with the Model/View/Controller design pattern a model object is required.
The model objects should not know (refer to) any UI items.
Use the model object to keep track of the highest score.
MatchEmScene Requirements and Deductions
The general requirements and deductions apply.
MatchEmScene-specific requirements and the deductions for unfulfilled requirements:
File/Naming Requirements
Deduction
Requirement
-2
In your top-level repository directory you have a directory named MatchEmScene or a zip file named MatchEmScene.zip.
If you provide a zip file it must be at the top level of your repository folder.
-2
If you provide a zip file, when the file is unzipped there is a single directory named MatchEmScene that contains the app.
-4
There are no spaces in the project folder name.
Program Behavior/Structure Requirements
Deduction
Requirement
-3
An iPhone simulator is used.
-1
The status bar is hidden.
-1
Both rectangles in the pair are the same size.
-1
Both rectangles in the pair have the same color.
-2
A count of the number of pairs that have appeared will be displayed.
-2
A count of the number of matches that the player has made will be displayed.
-2
A count of the remaining seconds will be displayed.
-3
A touched rectangle is highlighted.
-8
Matched rectangles are removed/disappear.
-2
All rectangles/buttons are drawn within the screen bounds.
Make sure no rectangles/buttons, or parts of them, are drawn outside of the screen bounds.
-2
Literal values (specific numbers) are not used for sizes and locations.
Properties should be used.
-2
The game runs for 15 seconds.
This deduction is for the game running longer or shorter.
-10
The game has a time limit (15 seconds).
This deduction is for no game timer.
-5
A model object should not refer to a UI object.
-10
A model object is used.
-??
The game plays as described in the Game Play section.
This deduction is for game behavior substantially different from the described behavior.
The deduction varies according to the deficiency.
Turning In, Running, Late, Language Requirements
Deduction
Requirement
-50
Swift 4 is used.
Any app that uses an earlier version of Swift will have this deduction and no resubmission will be permitted.
-50
The program does not run.
See the syllabus
-?
Late.
The deduction varies according to the lateness.
-?
The General Programming Requirements apply.
The deduction varies according to the requirement.
The deduction given may be less than that listed if the error is very minor.
Assignments will not be regraded to have deductions removed.
Fulfill the requirements so you do not have deductions when your assignment is graded.
Any specified names must match exactly. This includes upper/lower-case in a name.