Skip to content

User Stories

Schultzy911 edited this page Jan 24, 2016 · 26 revisions

User Stories for Group 15

Alex CARD: As a user, I want to see the cards in four columns so that I know what move to make next. CONVERSATION: When I hit the draw button to begin the game, I want to see one card in each of the 4 columns. Then I will be able to discern whether or not there are moves available. If I have no remaining moves, which I will be able to tell by looking at the game board, then I will draw a new set of 4 cards. CONFIRMATION: Each time the game board is modified, the card numbers and suits will be displayed in the four columns.

Alex CARD: As a developer, I want to create an object that allows modifications to be handed from the model to the controller to the view and back, so that the code is stateless. CONVERSATION: After actions are completed by the user, data will need to be transferred outside of the model. CONFIRMATION: The object will take changes and pass them between the model, view, and controller using JSON.

Daniel CARD: As a programmer, I want to compare two numbers of the same suit, so that the user can obtain points by removing cards. CONVERSATION: Users receive points based on how many cards are withdrawn. In order to receive points, we need to ensure that the lowest number of the same suit on the top row is removed. CONFIRMATION: Need to have a function that reads the numbers and suits on the top of each column. The function will determine whether or not the cards are of the same suit, and if they are, which number is smaller and therefore removed.

Daniel CARD: As a user, I want to be able to deal four cards at once, one to each column. CONVERSATION: Need the controller to deal 4 card objects, when the cards are dealt they need to each be unique. The 4 cards should be different every time, dealing the first 4 cards in game two shouldn't give me the same cards it did in game one. CONFIRMATION: Each time a card is dealt, it is unique, and dealing 4 cards in a row deals four unique cards.

Nic CARD: As a user, I want the cards to be shuffled so that the game is fair. CONVERSATION: The 52 cards will need to be in random order rather than ace - king. CONFIRMATION: We will implement a function to ensure that the cards are randomly sorted before the cards are dealt.

Nic
CARD: As a user, I want to be able to view my score so that I can keep track of my progress.
CONVERSATION: A user's score is simply the number of cards that you have drawn from the deck. The more you draw from the deck, the better. In order to win the game, the user must reach a score of 48 meaning all cards have been drawn and only aces remain.
CONFIRMATION: Starting with a full deck of 52 cards, the initial score should be zero because no cards have been drawn. After drawing the first four cards, the score should be four since four cards were drawn. Following this, drawing any n cards from the deck should increase the score by n.

Alec CARD: As a user, I want to move the top card in a pile to an empty row if there is one so that I can progress in the game. CONVERSATION: If a column is empty, the top card of any other column can be moved to the empty slot. CONFIRMATION: Need the controller to know when a column is empty and what the top card of each column is.

Alec CARD: As a player, I want to be able click a button and reset the game at any point so that I can try again. CONVERSATION: We can implement a button that just refreshes the page, since the game is stateless and uses AJAX. CONFIRMATION: Created an HTML button the uses the Javascript 'history.go(0)' function. Passes test.

Alec CARD: As a player, I want the board to reflect the current state of the game so that I can figure out my next move. CONVERSATION: The player needs to be able to see what cards are in play, suits and numbers. The board will also need to reflect if there any empty columns. CONFIRMATION: We can implement this by having a JSON file that holds information about the current state of the game, using POST and GET methods in the controller to update and retrieve the information.

Clone this wiki locally