Skip to content

Overview

You will repeat Part 1 of the 1024 game but now develop the iOS version.

TIP

In this part, you will be implementing only the single screen version of the game. The multi-screen navigation, game settings, game statistics, and integration with Firebase will be completed in the second part (a different assignment)

Starter Code

The starter code for this assignment has been posted on GitHub Classroom


  • For the iOS version, you are encouraged to work with a teammate. Before you accept the GH classroom invitation link, talk to your potential teammate so you can select proper team name on GitHub classroom (see below)

  • When you accept the GH classroom invitation link, you will be prompted for a team name.

    IMPORTANT

    Please include your GVSU userid(s) in the team name, so your instructor can easily identify your work.

Overall App Specifications

Game Logic

  • Your UI should not contain any application logic. The UI should be design to only handle user input events (swipes, taps, input, etc.) and updating the UI.
  • Application logic and game logic should be written elsewhere (in viewmodel)
  • Swipe actions do not always end up if similar numbers being merged. Those which do not shall not insert a new random number
  • Resetting the game shall clear the grid an insert a new number in an empty spot

Game UI Design

In addition to the widgets currently used in the starter code:

  • Change the text at the top to include your name
  • Add a text that shows the number of valid swipes, i.e. those swipes that causes the board to change
  • Add a text to show the final game status (WIN / LOSE)
  • Add a RESET button to restart the game at any time (not only after game won/lost)

The following screenshot is an example implementation by your instructor when no more numbers can be merged and the board is already full. The exact layout of the widgets of your implementation may differ, but the require information should be there.

Grading Rubrics

Grading ItemPoint
Initial placement the first number on an empty cell2
Swipe actions leaves no gap between numbers4
Neighboring numbers are merged and added correctly3
Show number of valid swaps (those which change the board)2
Insert subsequent random number only after the board changes2
Detection of winning condition2
Detection of game over (lost)3
Swipes action game won/lost shall not update the board2
Reset the game board any time2
Source code updates pushed to GitHub3
Penalty for app logic/game logic in UI-1 (per violation)
Penalty for runtime errors (null pointer, index oob, etc.)-1 (per violation)