User Story 1. As a game player, I want to use a GUI so that the Adventure game is easier to play. Acceptance Criteria: The game uses a GUI for all commands previously available as text commands. Definition of Done: For all user stories: - GitHub main branch code runs with no warnings and a user can access a GUI to execute all commands that were possible from the command line version - All code changes are reviewed before being merged onto the main branch (see A1, tutorial 5 for instructions on the GitHub Pull Request Code Review System you must use for reviews) - All code changes are merged into the main branch - All code is unit tested and all tests pass For CS314 development: - All work is done on individual branches with frequent commits and pushes to GitHub before being merged onto the main branch (do frequent commits and pushes to prevent losing work, and do pushes so others can use your work) - Commit messages include user story and task - All user stories and point estimates are in GitHub - All tasks and time estimates and actual time taken are in GitHub - The overview.txt file for A2 has all required items in it Split Stories: A. (5 SP) As a CS 314 student, I want to refactor the Adventure game code so that it is easier to change the user interface. Acceptance Criteria: - The main branch game source code structure matches Dr. Bieman's class design. Tasks (estimation/actual time): (1hr) Infrastructure: git branches, adding new code, setting up build path in Eclipse, etc. Result all code merged into master and ready for everyone to work on. (1hr) Study class diagram and code and figure out what code needs to be moved to match class diagram. Change code accordingly. B. (8 SP) As a CS 314 student, I want to implement Dr. Bieman's model-view separation design and get the game working with this GUI. Acceptance Criteria: - The game uses a BreezeSwing GUI for all commands previously available as text commands. Tasks (estimation/actual time): (1hr) Learn BreezySwing (1hr) Learn JUnit (2hr) Study class diagram and code and figure out what code needs to be added to connect facade methods to AdventureGame code. Add code accordingly. (1hr) Create JUnit tests for allnew methods added to any class and for all methods in new classes. (1hr) Move all text string output and make sure it is included in the GUI correctly.