vermiculus / se-blackjack

Software Engineering Blackjack Project
0 stars 1 forks source link

Software Engineering - Blackjack

Just a git for the Blackjack Project


No Dice!

Typical Software Engineering Roles

Adapted from a Developer.com article by Robert Bogue.

As you surely know by now, we don't need that many roles. This is a game of Blackjack for a class. Irregardless, there are several roles that we can fill out to make this a successful venture:

For intangible reasons that seem innately obvious, we should all be taking on the roles of Developer and Quality Assurance.

Since we all know our skills and talents, let's fill in the roles we would be comfortable fulfilling. (Note that we will all be taking on multiple roles, and not all roles we say we are okay with doing will be our actual roles.) I've checked off roles that I think fit the bill, but please, please, please correct me if you want to do something else or if you don't want to do something listed.

Name SME FA SA DEV QA
Josh
Molly
Mat
Sean

Simon also mentioned in a previous class that there is often a language specialist, and Sean knows C# really, really well (although not quite as well as MSDN). Feel free to ask him any questions through either Facebook or email. For those of you who know Ashok, feel free to bother him about it as well. He'll love that. Yeah.

Questions for Class

  1. What if both the Player and Dealer bust on the same hand (or during a Hit)?
  2. Does the Dealer win the round if the Dealer draws a hand totaling 21?
  3. What if the Player does not have the minimum bet requirement?
    • Do they bet all their money?
    • Does the game end as if they had reached $0?
  4. Menu Structure
    • File -> Exit
    • File -> Restart…
    • Help -> About
  5. Reshuffling happen during restart?
    • Fresh deck.
  6. All cards used up?
    • Fresh deck.
  7. If deck expires during deal out,
    • shuffle used cards and continue deal out.
  8. Saving game?
    • No
  9. Due?
    • near end of the semester (check syllabus)

Requirements Document

This game shall be a GUI-driven program to emulate the interactive play of Blackjack between the user ('the Player') and the computer ('the Dealer').

Constraints

Example Execution

  1. The Dealer will ask for the Player's first name upon startup.
  2. The Player is given $500 of initial in-game betting money ('Cash') to start with.
  3. Four cards from the deck are randomly distributed to both the Player and the Dealer in alternating order. At this point, both the Player and the Dealer have two cards each. The faces of both cards of the Player are visible, while only one card of the Dealer is visible to the Player.
  4. The user places their bet (constrained by a minimum bet of $20 and a maximum of their current available Cash).
  5. The Player chooses one of three actions for the current hand:
    • Hit
    • Stand
    • Split
  6. The Player's bet is then deducted from their Cash and placed in the betting box, displayed on-screen.
  7. Depending on the Player's previous action, one of three things will happen:

    • Hit
      The Dealer deals both the Player and himself a single card from the deck.

      • If the Player's hand then totals over 21, he 'busts'. A message appears on the screen with the caption "BUST!".
      • If the Player's hand totals exactly 21, the Player wins the round.
      • If the Dealer busts (with a hand totaling greater than 21), the Player is decalred the winner.

      In each case, the value of the betting box is reset to zero.

    • Stand
      The Dealer deals himself cards one-by-one until his hand totals 17 or greater. If the Dealer busts, the Player is determined the winner of the round.
    • Split
      This action should only be available if the Player has exactly two cards of equal rank. The Player's hand is split into two hands, each with their own totals. The Player effectively becomes two Players, whose 'Hit' and 'Stand' actions will affect both hands.
  8. A dialogue window appears asking the Player if he wants to 'Play Again?' with the options 'Yes' and 'No.'
    • Yes: the statistics are recorded and a new hand is dealt.
    • No: the program exits.

The game ends when the Player runs out of Cash.

Special Considerations

Interface Design