Build a console-based (i.e. runs in terminal) unix-compatible interactive card game. You can pick Blackjack, Solitaire, Memory, or any other game of your choosing (please include game rules in this case).
Along with your code, include a design document covering:
- Instructions for running your code and any tests you may have written
- Rules for your card game, if not one of the three listed above
- A brief explanation of your design choices and any data structures or algorithms that you implemented
- Choice of tooling (language, libraries, test runner, etc.) and rationale behind those choices.
- The card game can be single or multiplayer
- Many card games rely on the cards of a player being hidden from other players. You may want to consider implementing such a feature.
- Feel free to use any programming language.
- Please cite any external libraries that you use.
- We suggest you spend no more than 3 hours on this challenge.
You will be assessed on your creativity and the quality of your code and design document. This includes, but is not limited to, the following:
- Does the game work, i.e. is it possible to play a complete game of the card game you chose?
- How thoughtful were your system design decisions?
- Is the game designed well / easily playable?
- Is the code organized, modular, and well-factored?
- What edge cases were considered and accounted for?