This ongoing school project is based off of https://github.com/jakewilson/solitaire. Modifications have been made to add functionality requisitioned in the project outline.
Priority requirements are marked with [x].
For this project you will be implementing a Solitaire game.
- The first step is to consult the following rulebook: https://bicyclecards.com/how-to-play/solitaire/
a. The terms used in the game requirements are outlined in the link above. - The customer has outlined the following requirements:
a. The project must have a working UI with the following requirements
i. Cards must display both the back side and front side of the card, as appropriately based on their discard/discovery status. [x]
ii. Card suits must be appropriately displayed [x]
iii. Card values must be appropriately displayed [x]
iv. The Tableau must be displayed and functional
v. Foundations are clearly outlined and functional
vi. The stockpile must be displayed and functional
vii. The talon pile must be clearly outlined and functional
viii. Clicking/tapping a card will auto-stack it if an appropriate spot is available
b. Logic:
i. Rank of cards must be functional as outlined by the rules [x]
ii. A full deck of cards that can be shuffled must be implemented. [x]
iii. As cards are sorted into their piles, they must be subtracted from the full deck of cards. [x]
iv. Tableau cards can only be stacked in alternating colors [x]
v. Spare tableau spots can only be filled with kings [x]
vi. Foundations can only be filled starting with an ace [x]
vii. Foundations can only be stacked by matching suits
viii. Foundations can only be stacked in ascending order.
ix. Tableau undiscovered cards must be stacked in the order outlined by the rules.
x. Stacks of cards can only be moved when appropriately stacked by alternating suits.
xi. Stockpile must only contain cards that have not already been dealt
xii. Talon pile must maintain order in which stockpile cards were discarded
xiii. Stockpile must maintain order set by talon pile when re-stocking.
xiv. User must be able to start a new game, thus receiving a freshly shuffled deck of cards
c. Additional requirements:
i. A working scoring system
ii. Current score must be displayed and accurate
iii. Vegas rules should be available as additional game mode.