Menu

Implement the following Helo Game Description Requirements and Game Engine and Game GUI Requirements of the game. Show all the steps and descriptions within the code and outside of the code. Provide d…

Implement the following Helo Game Description Requirements and Game Engine and Game GUI Requirements of the game. Show all the steps and descriptions within the code and outside of the code. Provide detail explanation of all of the steps. Provide two paper sketches of the GUI plan to build and take a photo of each sketch. Helo Game Description Requirements Helo is a wasteland game with a 10 x 10 grid maze map. The goal is to move the player around in the map to collect all treasures and leave the map at the exit gate within the time limit. To simplify the design, assume each movement, or a step, of the play equals to one time unit. The maze map consists of the following items:An entrance to the maze, which is located at the bottom left cell.An exit of the maze, which is located at the top right cell.A player, who is placed at the entrance at the beginning of a game.5 treasures, each of which is placed at a random cell.2 medical units, each of which is placed at a random cell.5 traps, each of which is placed at a random cell.Some mutants, each of which is placed at a random cell. The followings are its key features and settings.To start a new game: The player inputs an integer d in a text field to set up the difficulty level of the game. d should be in the range of 0 – 10, and it has the default value of 5.The player clicks a “Run” button to start the game, which triggers the random generation of the map. Random generation of the map:An entrance cell is placed at the bottom left cell.An exit cell is placed at the top right cell.A time limit, which is initially set up as 100 steps.The player will appear in the entrance cell with the step counter as “0”. The life of the player is set to “10”.8 treasures are placed randomly in the map.2 medical units are placed randomly in the map.5 traps are placed randomly in the map.d mutants are placed randomly in the map.The entrance, exit, treasures, medical units, traps, and mutants should not overlap. Top scores:The project has a Top 5 Plays feature, which records the 5 best plays in the game history. The GUI has a section to show this list, which includes the rank, scores, and date. E.g., an item in the list reads like “#1 125 20/04/2024”. Play a game:The player can move in 4 directions: left, right, up, and down inside the map. Each movement is considered as 1 step.After the player moves 1 step, each mutant also moves 1 step. For each mutant, it randomly selects one of the following actions: left, right, up, down, and stay. If the target cell is treasure, medical unit, or trap, the mutant will stay instead.For the player,Visiting a treasure cell collects 1 treasure. The treasure is picked up, and the cell becomes empty.Visiting a medical unit cell increases the life by 3. However, the maximum life is 10. Regardless the current life of the player, the medical unit is consumed immediately when visiting, and the cell becomes empty.Visiting a trap cell decreases the life by 2. The trap becomes empty after visiting.When visiting a mutant cell, each mutant decreases the life by 4. The mutant(s) becomes empty after visiting.The game finishes when(Win) The player is at the exit cell. The score is: 20 * number of treasures + (time limit – steps of the player).(Lose) The life reaches 0, or the step counter reaches 100. The score is -1.The score is shown at the end of a game. And if this play gets into the new top 5, a “congratulation” message is also shown. Other requirements:The game can be played in the text UI in which the interaction is enabled by typing keywords, e.g. “u” for up and “d” for down.To represent different types of cell items, inheritance or interfaces should be used to implement relevant classes.In the GUI,A player can play by clicking 4 control buttons inside the GUI. There is no need to support keyboard control.Different types of items should be displayed with different icons/symbols.Time limit of the map is displayed and updated during the play.Total number of steps of the player is displayed and updated during the play.The number of collected treasures is displayed and updated during the play.A “Help” button to get instructions on the game play.A “Save” button to save the game play into a file.A “Load” button to load a saved game. It is recommended to implement the ‘engine’ of the game first.  Should design some unit tests to check that the game logic works correctly. Then use JavaFX to add a graphical user interface (GUI) to the game, which displays the 2D board and allows the user to play the game.  Must use JavaFX, not any other Java GUI libraries.   Game Engine and Game GUI Requirements Check can run JavaFX. This project uses the ‘Gradle’ build tool to automatically download and install the necessary JavaFX and JUnit libraries when build and run the project. Data Design Decisions: Think carefully about how to represent different cells in map. Can use either inheritance or interfaces, or both. Implement and Test Your Game Engine: Generally, need to test every method in these classes. However, to keep this simpler, we do not require unit tests for: (1) constructors, (2) getters/setters, and (3) methods that involve the testing of input/output.Text-based play: The main() method of GameEngine class should support a text-based game play in the console. By the time have finished implementing the game engine, one (or several) of the tests should be stepping through a complete game via the text-based UI.Class Relationships: To get high marks, the engine needs to include several Java classes, with some association/composition relationships between them, and if possible, some inheritance/interface usage.  Think about where can best use these Java features. The goal of this stage is to use JavaFX to add an elegant and fully functional GUI to the game so that it can more easily be played on desktop computers.  The GUI should have the following features:event-handling of mouse events, including buttons for starting game and moving up/down/left/right;display of bitmap images (recommend to use some large images for the background of the whole game, and use some small images for different items/cells in the map, so that the game looks professional and entertaining);multiple panels, with a main gaming panel to display the game, plus one or more panels around the edges to display game options, score information, and control and help buttons etc.;a clean separation between the back-end (game engine) and front-end (GUI) classes using different Java package names, as described above;Start by drawing one or two paper sketches of the GUI plan to build. Take a photo of each sketch, as these will need to be included

OR