CECS 274 Project 5 Design a program to play a game. The program will consist of a Room class, a Player class, and a Tester class. A player moves through rooms looking for a demon. Each room has from one to four doors, in the directions north, south, east, and west. The player does not know which doors a room has. The player does not know which room contains the demon. The player can ask a room if it has a door in a given direction but each question costs one point. The player can ask the room it is in to beam it to the room in a given direction. If the room does not exist it costs three points and nothing happens. The player remains in the current room. When the player enters the room with the demon the game ends. The objective is to find the demon with the minimum cost. The Room class has four Room instance fields, one for each direction. These will be null if there is not a Room in that direction. The Room class also has a boolean instance field which is true if the demon is in the room. The Room constructor has one parameter, a boolean to initialize the demon field. The Room class has a setRooms method with four Room parameters that initialize the four Room instance fields. The Room class hasDemon method returns the value of the demon instance field. The Room getDoor method has a parameter which is a String representing a direction, north, south, east, or west. It returns the Room in the specified direction, which may be null. The Player class has the Room it is in and its score as instance fields. The score is initialized to 0. The constructor has a Room as a parameter and sets the Romm instance field of the Player. The getScore method returns the score. The ask method has a parameter which is a String representing a direction. It increments the score and returns true if the Room the player is in is has a door in the specified direction and false otherwise. The Player has a beam method with a String parameter representing the direction. It gets the Room in the specified direction which may be null. If the room is null it increases the score by 3 and returns false but otherwise it changes the player's room to the room in the given direction and returns true. The choose method asks the user to choose whether to ask a question or to beam. Then it asks the user for the direction for the ask or beam. Depending on the user's input it displays the value of the call to ask or the call to beam. If the player's room now has the demon it returns true else false. To start the game, in the main method create some rooms putting the demon into one, configure the doors using the setRooms method, and create the player passing it its starting room. The entire game play is one line, a while loop which calls the player's choose method until it returns true. The loop has an empty body. When it terminates output the score. On Beachboard post the code with test runs. For this assignment follow the instructions carefully and do not make changes.