Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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:

  1. Collect all the cards into one stack
  2. Shuffle the stack
  3. Deal cards by splitting the stack into different stacks
  4. Give the stacks to the players
Task: Communication

Goal: Convey information between players
Subtasks:

  1. Select which users to send message to
  2. Enter and send the message
Task: Play a card

Goal: Move a card from your hand onto the table
Subtasks:

  1. Select a card or multiple cards from your hand
  2. Move the cards onto the appropriate stack of the table
Task: Update the score

Goal: Keep the score consistent

Subtasks:

  1. Select player's score to change
  2. Input the new score
Task: Change games

Goal: Clean up table and set up deck for a new type of game

Subtask:

  1. Clear the table
  2. 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.

Image Added

l