Solitaire developed on Python with PyQt5.
Implementations:
- Cards must display both the back side and front side of the card, as appropriately based on their discard/discovery status.
- Card suits must be appropriately displayed
- Card values must be appropriately displayed
- The Tableau must be displayed and functional
- Foundations are clearly outlined and functional
- The stockpile must be displayed and functional
- The talon pile must be clearly outlined and functional
- Clicking/tapping a card will auto-stack it if an appropriate spot is available
- Vegas mode enabled (max 3 rounds of stockpile withdrawal)
- Cards from stockpile can be withdrawn by 1 card or 3 cards
- Timer displayed
- Moves counter
- Working Score System
- Save current game scores and see previous game scores
Logic:
- Rank of cards must be functional as outlined by the rules
- A full deck of cards that can be shuffled must be implemented.
- As cards are sorted into their piles, they must be subtracted from the full deck of cards.
- Tableau cards can only be stacked in alternating colors
- Spare tableau spots can only be filled with kings
- Foundations can only be filled starting with an ace
- Foundations can only be stacked by matching suits
- Foundations can only be stacked in ascending order.
- Tableau undiscovered cards must be stacked in the order outlined by the rules.
- Stacks of cards can only be moved when appropriately stacked by alternating suits.
- Stockpile must only contain cards that have not already been dealt
- Talon pile must maintain order in which stockpile cards were discarded
- Stockpile must maintain order set by talon pile when re-stocking.
- User must be able to start a new game, thus receiving a freshly shuffled deck of cards