- Make sure we can compile and run your code
- The purpose of this test is to evaluate your technical skills, design skills and ability to interpret requirements.
- We value simple, readable and maintainable code.
- Use of third party libraries is acceptable, but ensure they add sufficient value.
- They are open problems and there is no right or wrong answer.
Paper-Rock-Scissors is a game for two players. Each player simultaneously opens his/her hand to display a symbol:
- Fist equals rock
- Open hand equals paper
- Showing the index and middle finger equals scissors.
The winner is determined by the following schema:
- Paper beats (wraps) rock
- Rock beats (blunts) scissors
- Scissors beats (cuts) paper.
Write a program that plays Paper-Rock-Scissors between the computer and a real player. You should be able to play the game n times before the program exits.
When starting the assignment, please consider the following advice:
- Provide a solution as console application and as if it were for a production system.
- The solution needs to meet the requirements with simple, clean, understandable and extensible code.
- Testing is important to us, so provide good test coverage.
- Demonstrate the power of Java, for instance; apply design patterns and use object oriented modeling where appropriate.
- If do you decide to use frameworks or libraries, please ensure they add sufficient value and please explain why you chose to use a particular framework or library in a README file.