Test 2 - Memo Game

Create a Memo Game

Requirements

  • the game should have three levels - (4x4), (6x6), (8x8)
  • the user should be able to select the level on game initialization (it's up to the applicants to decide what this part should look like)
  • after the user has started the game, a grid for the chosen level should be displayed on the screen
  • every card should have two sides
    • front with an image that should be matched
    • and back with an image which is the same for every card
  • at the beginning of the game all cards are laid face down
  • when the user clicks on a card, the card turns face up
  • the maximum number of cards that can be open at the same time is 2
  • if open cards don't match, they are turned face down again (after 1s if the user doesn't do anything or tries to open a third card)
  • if open cards match, they stay face up on screen
  • the main game screen, aside from the grid, should also contain the following info
    • time that has elapsed since the beginning of the game
    • the number of clicks, i.e. card presses
    • the pause button
  • after clicking the pause button the user is able to
    • resume the current game
    • reset the current game
    • quit the game (return to the main screen)
  • the game ends when all cards are matched
  • the user should be able to share the result after the game completion (Facebook, Twitter…)
  • after the user has shared the result, a ranking list should be displayed on the screen which allows the user to enter their name if their result is among the top 10 (keep the results in the file and store the top 10 results)
    • track the results by the level of dificulty
    • the first sort criterion is the number of clicks
    • the second sort criterion is the elapsed time
  • this screen enables the user to return to the main screen that has an option to start a new game

Bonus

  • implement card rotation animation
  • implement custom transitions between screens

Note

If you have any additional questions, feel free to send an email to jobs@rbt.rs


Please create a new GitHub repo and use it to upload the test solution along with the initialization instructions. Also send us your GitHub repo link along with your job application.


The test solution grading criteria are:

  • quality of the applied algorithm
  • code readability/cleanliness
  • code performance in terms of speed