[x] Add pre-existing code so that the player can choose to continue or to quit at the completion of each
round
[x] Fix the next round design so that new shape is drawn
[x] Add pre-existing code for the two game scores, round score and total score so that it is updated per
round and displayed.
Remember that the round score is the points the player earns for the round she or he completes.
The total score is the sum of the points earned from all of the completed rounds
The round score calculation must include the value of the treasure located.
2.2 Game Settings
[x] Add pre-existing ui settings and add difficulty to all puzzlers.
[ ] Complete enhancement of game difficulty to a working state
Remember that with difficulty, the difficulty level must be considered when the round score is being
calculated and the type of puzzler is being selected. To achieve this, you must implement at least
one more puzzler that is considered at a different difficulty level than one that is provided in the start-up code.
2.3 Add Game Statistics Pane
You will keep track of a set of game statistics in the game. The game statistics should have the following
[ ] The number of rounds that the user has played;
[ ] The total numbers of attempts that user has made;
[ ] The average number of attempts to answer a puzzler;
[ ] The minimum number of attempts to answer a puzzler;
[ ] The maximum number of attempts to answer a puzzler;
[ ] The average number of attempts to locate a treasure;
[ ] The minimum number of attempts to locate a treasure;
[ ] The maximum number of attempts to locate a treasure;
[ ] The round score and the total score
This all needs to be in a class named GameStatistics and a UI component is needed to satisfy this requirement
[ ] Make sure FlashEndFrame is refactored to be named GameStatistics
[ ] Make sure the Stats are seen before the user exits the game and in the flash screen when the
game starts.
2.4 Save and Load Game Statistics
[ ] The game should have a simple menu where a user can save and load the game statistics. Once
the statistics are loaded, the game should function as if there were no interruption between after the
player closes the application and restarts it. This means if the user saved his/her game while finding
the treasure, quits and loads the game again, the game should be loaded back at finding the treasure.
2.5 Display Neighboring Online Players
This game will periodically broadcast the players IP address and a listening TCP port number, perhaps some other supplementary data such as the player's name over UDP to port 62017. This game will also monitor UDP port, 62017, and receive broadcast datagram packets where the game can retrieve the IP address, the TCP port number, and other supplementary data of the senders (i.e., other instances of the game).
[ ] Add additional UI component to the game and it should display the neighbors including IP
addresses, UDP port numners, and TCP port numbers and any supplementary data in the packet.
The TCP port number can be randomly chosen. The start-up code uses a free TCP port reported by
JVM. The purpose of this TCP port number is to support multiple players' online game playing that is,
one establishes a TCP connection with the other by clicking on the UI control representing a neighbor,
which is described more in the bonus requirements.
You are encouraged to add some supplementary data such as, player's name in the broadcast
messages. If you wish to include this, you should add a UI control or JavaFX dialogue Stage (i.e. a
window) to collect a player's name when the game states. However this is NOT required.
Project Requirement Checklist
2.1 Game Round and Game Score:
2.2 Game Settings
2.3 Add Game Statistics Pane
2.4 Save and Load Game Statistics
2.5 Display Neighboring Online Players