Program 3: Binary Search Tree Program Objective The primary objective of this program is to learn to implement binary search trees and to combine their functionalities with linked lists.
Program Description In a multiplayer game, players' avatars are placed in a large game scene, and each avatar has its information in the game. Write a program to manage players' information in a multiplayer game using a Binary Search (BS) tree for a multiplayer game. A node in the BS tree represents each player. Each player should have an ID number, avatar name, and stamina level. The players will be arranged in the BS tree based on their ID numbers. If there is only one player in the game scene, it is represented by one node (root) in the tree. Once another player enters the game scene, a new node will be created and inserted in the BS tree based on the player ID number. Players during the gameplay will receive hits that reduce their stamina. If the players lose all their stamina, they vanish from the game, and they should be deleted from the tree. You are required to write the following methods: 1. Write a function to add a new player by adding a new node to the tree. 2. Write a function to search for a specific player by their ID. 3. Write a function that prints all the players' names with their specified IDs and stamina levels. 4. Write a function that prints the number of players that existed in the game. 5. Write a function that updates the stamina level for a specific player when they receive hits from another player. 6. Write a function that removes a particular player from the game by removing their node from the tree. The program deals with three files. Two input files and one output file. The description of these files is as follow: o The first input file (intialInformation.txt) contains the important information for the program which includes the number of players, the IDs, and the name for each player. o The information in this file is arranged as follow: o The first line contains the number of players. o The following lines contain the players’ IDs and names. o The commands for the system are found in the second file called commands.txt. The commands in this file are as follow: o STARTUP: This command will use the first input file (intialInformation.txt) to generate the BS tree by creating a node for each player in the tree. o ADD_PLAYER: This command has two values that represent the player ID and the player’s name who entered the game scene. The command will create a node in the tree that represents that player in the game. The default value for the stamina level will be 15. o DISPLAY_PLAYER_INFO: This command has one value which is the player ID. It will output the name and the stamina level for the specified player. If the 5 specified player is not found, it will output the “Not found any player with ID number ” message. o DISPLAY_ALL_PLAYERS: This command will output all the players in the game scene with the players’ IDs, names and stamina levels. (Similar to the output in the ouptput.txt file). o NUM_OF_PLAYERS: This command will print the total number of players in the game scene. o UPDATE_PLAYER_INFO: This command has one value which is the player ID. It will decrease the stamina level for the specified player by 5 and it will output “the player received a hit and the stamina level reduced by 5” message. If the stamina level for the specified player reaches zero, then the player will be removed from the game, and it will output the “The stamina level for the player reaches zero and left the game!” message. If the specified player is not found, it will output the “Not found any player with ID number ” message. o DELETE_PLAYER: This command has one value that represents the player’s ID who will leave the game. The command will search for this player in the tree then remove their node from the BS tree, and it will output the “The player left the game” message. If the specified player is not found it will output the “Not found any player with ID number ” message. o QUIT: This command will stop the program. o The output of the program should be written to the file name it output.txt, which content should be similar to the contents of the file provided to you. Implementation For this program, you will create the following classes: ● PlayerNode.java: This class will be used to create objects of type player and it will store the player information. ● GameTree.java: All the methods will be implemented in this class. ● MainProgram.java: This is the class that will contain the main.
input file : 8 78 pumpkin_pie 86 hummingbird 34 cute_kitty 88 dragon_flames 52 cool_guy 13 Precious 18 blossom 95 MasterCheif
Step by step
Solved in 2 steps