Mobile Apps - Android and IOS All the projects here: http://git.akaver.com/itk-mobileapps-2018-fall Please use your username/fullname in project name! Homework1 - Android Deadline for leg1 - 2018-10-18 23:59 Battleship Build an console game - "Battleship". Requirements Maintain the state of a game of "Battleship", including four boards, two for each player, one for recording the current state of the players ships, and one for recording the players' attacks. We want to take care of the basic ability to control the game, and the players moves whilst keeping of track of this game state. Standard setup: In battleship, a board consists of a grid of 10 x 10, labelled vertically with the numbers 1 to 10 (from top to bottom) and labelled horizontally with the letters a to j (from left to right). A player knows: where their own ships are where their own previous attacking moves have been made, and their result where their opponent's previous attacking moves have been made and their result To play the game, each player, plays an attacking move in turn, the result of this may be a "hit" if the square is occupied by an opponent's ship, or a "miss" if the square is not. A player wins when they have "hit" every square occupied by their opponents ships. Each player should start the game with 5 ships, laid out in non-overlapping positions on their own board: Ship Size (in squares) Carrier 1 x 5 Battleship 1 x 4 Submarine 1 x 3 Cruiser 1 x 2 Patrol 1 x 1 The minimal set of operations we want to support: Create an empty board. Place a ship on the board. Create a random board with the ships already placed. Make an attacking move, determining if it is a hit or a miss and updating the game state. Keep track of events, replay them later. Determine the current state of the game, finished (and who won), in play. UI for visualising and controlling game Keep your project structured – reuse business logic later again UI has to scalable - portrait/landscape and phone/tablet https://www.thesprucecrafts.com/the-basic-rules-of-battleship-411069 http://www.boardgamecapital.com/battleship-rules.htm HomeWork2 - Android Sports navigating app (like endomondo) Application based on google map and location services. Track phone movement on google map (draw an trail) Allow user to set 1) start and stop tracking 2) set permanent checkpoint (drawn on map) 3) set temporary chceckpoint (only last one shown) Calculate stright line distance, travelled distance, movement speed (minutes for km) for all the 3 types of checkpoints (start, permanent, temporary) Using android notifications (custom layout) display the same info on lockscreen and allow user to interact with your app. DEADLINE - when examination times are set (3 fridays in January 2019) ---------------------------------------------------------------------------------------------- Homework1 - iOS Code should be uploaded to the git.akaver.com/itk-mobileapps-2018-fall Deadline – Wednesday (05.12.2018) 23:59 before next meeting Get the Memory game working as demonstrated in lectures 1 and 2. Type in all the code. Do not copy/paste from anywhere. Add more cards to the game. Add a “New Game” button to your UI which ends the current game in progress and begins a brand new game. Currently the cards in the Model are not randomized (that’s why matching cards end up always in the same place in our UI). Shuffle the cards in Memory’s init() method. Give your game the concept of a “theme”. A theme determines the set of emoji from which cards are chosen. All emoji in a given theme are related by that theme. Your game should have at least 4 different themes and should choose a random theme each time a new game starts. Your architecture must make it possible to add a new theme in a single line of code. Add a game score label to your UI and functionality to model. Score the game by giving 2 points for every match and penalizing 1 point for every previously seen card that is involved in a mismatch. Tracking the flip count almost certainly does not belong in your Controller in a proper MVC architecture. Fix it. All new UI you add should be nicely laid out and look good in portrait mode on an iPhone X.