[Sprint 1] User Stories - paynem/AcesUpProject GitHub Wiki
Jaspreet's:
1: Card: "As a user I would like to be able to remove a top facing card if another top facing card exists with the same suit and higher value so that I can earn points by reducing the deck size"
Conversation:
- When a user clicks on a column to remove, and it meets the requirements of being removed, the top facing card in the selected column will be removed. This will allow the user to take steps towards winning the game.
- The remove button will not work if the column is empty
Confirmation:
- testJaspreetsStuff(); simulates a test by running an experimental removal rest on two opposite samples.
- Attempting to remove results in nothing during Game.java. For Test.java, attempting to remove when it does not fit the removal requirement will output the result of the function.
2: Card: "As a user, I want to be able to determine if a column has cards so that I can determine if I can move a card to that slot"
Conversation:
- Determine whether a column contains cards or not, allowing for a card to be checked for removal, or moving requirements
Confirmation:
- testJaspreetsStuff(); function in Test.java simulates a test that checks to see if columnHasCards(int); evaluates an empty set of columns and a filled column accurately.
Michael's:
1: Card: "As a user, I want four cards to be dealt and displayed (one to each pile) when I click the deal button so that I can play during my turn.”
Conversation:
- Whenever the user clicks the deal button, 4 new cards will be pulled from the deck and placed in the 4 columns
- The deal button will not work when the deck is out of cards
Confirmation:
- testMichaelsStuff(); in Test.Java by running dealFour(); from Game.Java and then running the test function multipleDeals(); (which checks to see if there are new cards in the columns).
- By manually clicking the deal button and seeing of the game gui is updated.
2: Card: “As a user, I want four cards to automatically be dealt so that I can start playing the game right away."
Conversation:
- When the game starts, 4 cards will be automatically dealt from the pre-sorted deck and displayed (1 for each column).
Confirmation:
- This is confirmed by simply running the game. ApplicationController.java starts a game of AcesUp and immediately calls dealFour();. The testing class Test.Java can duplicate this by creating a Game object and then calling shuffle(); and dealFour(); and then running multipleDeals(); to check if the columns have cards. If this works, then what ApplicationController.java is doing will work.
- By manually checking if the gui of the game is updated properly.
3: Card: “As a user, I want the deck to be shuffled prior to each game, so that no game ever plays the same."
Conversation:
- Before the game starts, the deck is randomly shuffled
Confirmation:
- testMichaelsstuff(); starts multiple instances of the game and then runs deckChecks(); on the decks of each one to see if there are suitably different from one another.
Zeyad's:
1: Card: (“As a user, I want to move the top card of any pile to an empty space whenever there’s an empty space available”)
Conversation: There should be a visual cue that tells the user that this move is available After performing this move, the game should automatically move to step 2 (removal of two or more cards of the same suit)
Confirmation:
User is prompted to move a card from any pile to an empty space if one is available Game enters card removal stage after the move
2: Card: (“As a user, I want the game to automatically discard all but the highest-ranked cards of the same suit if there are 2 or more cards of the same suit”)
Conversation:
The game should probably do this one suit at a time to avoid user confusion Would the game automatically do this or would the user have to pick to remove the card each time?
Confirmation: At least 2 cards of the same suit in play, the game automatically removes all but the highest ranked one
Max's:
Card: “As a user, I want to be notified of the outcome when the game is over so that I know if I’ve won or lost.”
Conversation:
- Once the deck is empty and no more moves are available, check to see if the user has won or lost.
- How to know if the game is won or lost?
- A win can be determined by either checking if the 4 showing cards are Aces or if there are 48 cards in the discard pile.
- If the win condition is not met, then the user did not win this round
- Have a text displayed saying if the user won or not
- Maybe include the user’s score?
Confirmation:
- Check if the deck is empty and that there are no more moves available.
- Run the win conditional which will look to see if there are 48 cards in the discard pile. (48 cards mean that there are only 4 Aces left, which means the user has won.)
- If the user has won, display text: “Congratulations, you’ve won!”
- If the user has not won, display text: “Game Over! You did not win.”