Search for question
Question

Instructions Need to complete this whole assignment | All the prompts should be followed This is the link to chapter 17 where all the files are located. https://github.com/Packt Publishing/Learning-Java-by-Building-Android- Games-Second- Edition/tree/d889b4a05385a953e45f2850e04048e54e4c61ca/Chapter17 Need to do this work in Android studio programming Report for this is needed in 2-3 pages (template provided below) "Write a one to two page report discussing the changes that you made and why you made those changes. Include as much detail as possible, however, do not just write filler, your assignment will be graded on quality, more so than quantity. If you are struggling to write a full page of high quality description, you might want to revisit the lectures." Consider this when writing a report, basically need to mention all the changes made and why those changes are important Student note: All the code is on the git. The tutor needs to modify/add more code to complete the assignment/n Final Project: Super Snake Description: In this assignment, you will be tasked with refactoring and redesigning the Snake game in Chapter 17 to improve its structure, readability, and maintainability. The goal is to separate different functions into their own classes and apply design patterns where appropriate. You will also need to enhance the gameplay by introducing new features and challenges. You can work in groups of 4 people. Use everything you've learned so far to upgrade Snake to the next level! Tasks: **Task 1: Code Refactoring** 200 Points - Review the existing Snake game codebase provided to you. - Identify areas where code can be refactored to improve readability and reduce redundancy. - Separate different functions into their own classes to increase modularity and maintainability. - Refactor code with Refactoring techniques. - Utilize the concepts from our lectures and previous assignments **Task 2: Design Pattern Implementation** (Must choose 2): 100 Points - Identify opportunities to apply design patterns within the codebase. Some ideas: - Implement the Strategy Pattern to separate audio-related functionality into the `Audio and `AudioContext` classes. - Implement the Builder Pattern to create different `Apple` types with different properties and effects on the player. - Use the Decorator Pattern for Snake to apply power ups, harmful effects, and cool features. ** These are recommended design patterns; you may use any which are applicable. ** Refer to Design patterns lecture. 1 Mandatory: Change up the design completely: ○ UI elements ○ Character models Sound elements / music Background **Task 3: Gameplay Enhancements** (Must choose 4) 200 Points Introduce randomness to assign scores to good apples and bad apples. Power-Ups: Introduce power-up items that the snake can collect. These power-ups can have various effects, such as increasing the snake's speed, making it invulnerable for a short time, or allowing it to eat bad apples without penalties. Obstacles: Add obstacles on the game board that the snake needs to avoid. Colliding with an obstacle could result in a penalty, such as a decrease in the snake's length or speed. High Scores and Leaderboards: Implement a high score system that keeps track of the best scores achieved by players. Display the current game score as well while the game is running. Sound Effects and Music: Enhance the audio experience with background music and different sound effects for various in-game actions. Progressive Difficulty: Make the game progressively harder as the player advances, with faster apples spawning, more obstacles, or additional challenges. This keeps the game interesting for longer periods. Game Over Screen: After a game over, show the player's final score and provide options to restart the game or return to the start screen. If you have other ideas, run them by me first, but be creative. These features are just suggestions. 2 Your game needs to have a "wow" factor. This could include lots of extra features, how well designed (and fun) the game is, or just good old-fashioned polish—anything that will make your game really stand out! **Submission Details** If you encounter difficulties with any part of the assignment, document your efforts and any issues faced. The goal is not just to implement design patterns but also to learn from the challenges you encounter during the refactoring process. I do expect tangible improvements to the Snake Game that are more than just a few new classes. Try your best to improve this game according to the assignment's requirements. Final Report and Submission: 100 points Thorough report of the changes you made, with proper formatting, images, a tutorial on the UI of the game and how to play the game. Also: - A zip file containing your entire Android Studio Project - Provide a screenshot of the Snake game running in the emulator to demonstrate successful implementation. - SUBMIT YOUR REPORT AS A PDF FILE WITH YOUR NAMES Git logs as well 3

Fig: 1