...
Ashey is a high school student. She and her friends invented this new card game, and they want to play it online. They don't know how to program, so they can't make their own multiplayer card game client for this new game. Fortunately, they can use MetaDeck to play this game.
Task analysis
Highest Level Goal: Play a card game
Subgoals:
- players have to decide on game ** decide teams?** decide rules (implicit)
- players play** deal cards** view own cards
- move cards into play
- decide on winner and losers
- play again
1) dealing
Goal: distribute x cards to y players
Subtasks:
- split cards into y stacks of x cards
Notes:
- occurs at the beginning of every round
- initiates play
-manual vs. automatic
-possible ways to deal:
-how many cards per player?
-uniform distribution among players?
-drawing(as in tractor) vs. dealing
2) shuffling
Goal: randomize card order
Subtasks:
- perform shuffling action
Notes:
-click a stack and shuffle it automatically
3) communication
Goals: convey information between users
Subtasks:
- type message
- broadcast message to other users
Notes:
- should be concurrent with all other activities
-chatbox
-voice support
4) moving cards into stacks
-drag n drop
-ability to rotate stacks
-flip cards face up/face down
5) playing various games
-trick taking games (hearts/spades/bridge)
-solo games (freecell/solitare)
-doing magic tricks
-physical action based games (ERS, 52 card pickup)
-fast paced games (spoons, kemps)
-flexible games (mao, kings)
Domain analysis
...
Task: Start a new round
Goal: Clean up from previous round and start a fresh round
Subtasks:
- Collect all the cards into one stack
- Shuffle the stack
- Deal cards by splitting the stack into different stacks
- Give the stacks to the players
Task: Communication
Goal: Convey information between players
Subtasks:
- Select which users to send message to
- Enter and send the message
Task: Play a card
Goal: Move a card from your hand onto the table
Subtasks:
- Select a card or multiple cards from your hand
- Move the cards onto the appropriate stack of the table
Task: Update the score
Goal: Keep the score consistent
Subtasks:
- Select player's score to change
- Input the new score
Task: Change games
Goal: Clean up table and set up deck for a new type of game
Subtask:
- Clear the table
- Possibly change the deck composition (# of decks, add jokers, etc)
Domain analysis
Entities
Player: A person connected to the server. Has a name, a seat position, and a score for the current game.
Hand: Represents the cards that the player is holding. Each player has exactly one hand. Only he can see the contents of his hand, others just see how many cards he is holding.
Stack: A collection of cards, representing a physical stack of cards on the table. Stacks can be rotated different ways on the table, and can be face up or face down. Hands are special instances of stacks.
Card: Represents a card in the deck. Has a number and suit, possibly a joker. Stacks contain a positive number of cards.