black jack
Description
Blackjack comes from a family of games that includes baccarat, vingt-et-un and seven-and-a-half. Blackjack gained popularity in the United States during World War I as weary troops looked for interesting pastimes. Also known as Twenty-One, the game made fortunes for a number of expert "card counters" in the 1960s. These experts were able to identify points in the game when players temporarily had an edge over the house, at which time they would greatly increase the size of their bets. Casinos have since made it more difficult for players to win by adding decks and shuffling more often, but it's still a game where skillful players have a relatively good chance for a winning session.
Each player competes against the dealer, not against the other players. The object of the game is to have a higher point total than the dealer without going over 21. Each ace counts as either 1 point or 11 points, face cards (kings, queens, jacks) count 10 points each, and all other cards (2 through 9) count their face value.
(description taken from http://games.yahoo.com)
Requirements
Your job, is to write an ASCII based program that will allow up to three players to play a game of blackjack. This is to be done using the programs
Upon the start of the game, each user is given a total sum of $500. Users should be allowed to continue playing until they run out of money or decide to quit. At the start of each hand, you must allow each user to make a bet of either $20,$50,$100, $200 or $500. Note their should be heavy error checking to make sure the user does not input erroneous information (e.g. a bet that exceeds their total sum)
Dealing:
The initial deal, the dealer (which is the computer) gives each player including the dealer, two cards which are all dealt face up. Then each player will have their to turn to either "Hit", "Stand", "Double Down", or "Surrender".
Double Down:
Each player should be allowed the option to double down. This is the process of doubling the initial bet, and can only be preformed 1 time, before the player takes his first card after initial deal.
Surrender:
When a player decides to surrender he/she forfeits half of their initial bet. This means they automatically lose and are not are finished for the hand. This can only be done, prior to them taking their first card after the initial deal.
Extra rules:
You output may look similar to this: 
Additional/Optional Requirements
Concepts
Additional Concepts
Updated: