NOTE: This project is purely for academic purposes for satisfying program requirements for CMPE 135 at San Jose State University
Please have wxWidgets and Boost installed before attempting to build the project.
Run these commands at root of project to compile and run
make
./bin/main
- Implement the first version of the Rock-Paper-Scissors game.
- Each game has 20 rounds.
- Prompt the human player for each round’s choice.
- The computer makes a random choice.
- Add simple machine learning algorithm (overview found here)
- Design an interface (abstract class) with pure virtual member functions to represent the computer’s choice algorithm.
- Implement the interface with the random choice class and with the simple ML choice class.
- Use a factory class to create algorithm objects.
- Code to the interface.
- Be able to swap between the two algorithms with minimal changes to the rest of the code.
- Implement a command-line option, such as -r for random and -m for machine learning. (This is implemented as menu options in our version)
- The ML version must save its frequency data at the end of each game to be read at the start of the next game.
- Minimum features
- Which round
- A way for the user to enter a choice for each round.
- The computer’s prediction of the human’s choice for the round.
- The computer’s choice for the round.
- Who the winner is (or is it a tie) of the round.
- The number of human and computer wins, and the number of ties.
- Menu Commands
- About
- Exit
- Start new game
- Provide way for human player to change number of rounds per game
- Default is 20 rounds per game