Swift辅导 | CSC 214 Project #3


CSC 214
Project #3
Due: December 4, 2019 at 11:59 PM
The final project for this course is going to be a game and it is left to you to decide what
kind of game it is going to be and what to title it. It could be a card or dice game, a Tetris
clone, or anything you want barring 2 exceptions. You may not submit a memory game
like Memeo or TicTacToe. Aim high as this app could potentially be a fantastic showcase
to help you land an internship or even a job.
Final Project Proposal
In order to qualify for P3 grading you will need to submit a project proposal to your TA by
midnight Sunday, November 24, 2019. It will have a graphic and a textual component
in pdf format describing in broad strokes what you are setting out to do. The proposal
will not be graded, but your adherence to the original specifications will. That said, we
expect minor adjustments and won’t hold you to the specific placement of a button. But
you cannot propose a Domino game and then submit a sheep counting app. Proposals
are final, no exceptions made.
Broad Strokes
The MVC design principle is to be followed strictly with specific model classes. This will
also be a universal app and auto-layout applies for all screens. You will implement
persistence via Core Data or Codable and have at least one table view with custom
cells and also one UIPickerView. In addition to standard persistence you will implement
at least 3 different user defaults.
Your game will have 5 view controllers for which you may use the Master Detail App
template or any other mechanism. Navigate between the controllers via storyboard
segues. Also required are 2 UIView animations and 2 UIView transitions. Since this is a
game however you may want more.
Your game will be minimally web-enabled and feature at least 3 alerts with
one .actionSheet. Also implement at least 2 gestures. Of course there will be the usual
suspects, localization into at least one additional language, a launch screen and a
custom icon.
Finally we also want to address style. Users expect a little more than just the plain old
white background with blue accents in a game. So for this project you will customize all
views to have custom colors. Pick a standard set of 3 colors and use them to make your
game look good.
Since this is a game, you are given the option to make it landscape only. However, this
is not a shortcut and if you do you will need to make sure that the iPhone version looks
good with all view controllers and of course auto-layout still applies.
Project 3
Required Elements No.
Custom Icon √
Launch Screen √
Universal iOS app √
(2 languages min.)

UIView animations 2
UIView transitions 2
View Controllers 5
Table Views 1
Picker Views 1
Alerts (incl. actionSheet) 3
Gestures 2
Web enabled √
Custom Colors √
Core Data/Codable √
User Defaults 3
We expect a complete app in this assignment with the game state being persisted so a
user can resume where they left off should the game get interrupted or the app quit.
Make sure that your game provides a certain complexity as persisting just a couple of
Ints will negatively impact your grade. Persistence should encompass 5 parameters of
several types minimally.
View controllers could include things like a leader board, a level selection, an info
screen, maybe settings for some user adjustable preferences, rules and so on.
Consider presenting some view controllers as popovers. There are many options here.
Your animations and transitions can be used for announcements like “Game Over” or
“Next Player” and your gestures become an integral part of the game itself. Since
design and coherence will play an essential part in grading, consistently going for the
lowest hanging fruit is not a good strategy.
As always your work should be accompanied by our ReadMe file