Advertisement
JoshDeel1213

Blackjack(needs to be fixed)

Jun 20th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.22 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace BlackjackCardGame
  8. {
  9. class Program
  10. {
  11. private static int dealerScore;
  12. private static int playerScore;
  13. public static int playerHandScore;
  14. public static int dealerHandScore;
  15. private static int tie;
  16. private static List<Card> dealer = new List<Card> { };
  17. private static List<Card> player = new List<Card> { };
  18. private static int total;
  19.  
  20. static void Main(string[] args)
  21. {
  22. Console.WriteLine("Welcome to the game of BlackJack! The rules are simple: ");
  23. Console.WriteLine("-Do not go over 21\n-Hit to get another card\n-Stay to stay at your current amount\n-Bust if you go over 21");
  24. //dealerScore = 0;
  25. //playerScore = 0;
  26. while (true)
  27. {
  28.  
  29. Console.Write("\nWould you like to deal the hands?\n(Y or N) ");
  30. string ans = Console.ReadLine();
  31. if (ans.ToLower().Equals("y"))
  32. {
  33. playerHandScore = 0;
  34. dealerHandScore = 0;
  35. player.Clear();
  36. dealer.Clear();
  37.  
  38. Console.WriteLine("We made it this far");
  39. for (int i = 0; i < 2; i++)
  40. {
  41. player.Add(new Card(true));
  42. System.Threading.Thread.Sleep(150);
  43. dealer.Add(new Card(true));
  44. }
  45.  
  46. //propmpt player to hit as much as they want to display the information
  47. while (true)
  48. {
  49. printHandScore(player, dealer);
  50. string answer = "";
  51. while (!answer.ToLower().Equals("hit") && !answer.ToLower().Equals("stay"))
  52. {
  53. Console.WriteLine("Would you like to Hit or Stay?");
  54. answer = Console.ReadLine();
  55. }
  56. if (answer.ToLower().Equals("hit"))
  57. {
  58. player.Add(new Card(true));
  59. }
  60. getHandScore(player, true);
  61. if (playerHandScore > 21)
  62. {
  63. Console.WriteLine("Over 21! You lose.");
  64. break;
  65. }
  66.  
  67. if (dealerHandScore <= 17)
  68. {
  69. dealer.Add(new Card(true));
  70. }
  71. getHandScore(dealer, false);
  72. if (dealerHandScore > 21)
  73. {
  74. Console.WriteLine("Dealer bust! you win!");
  75. break;
  76. }
  77. if (answer.ToLower().Equals("stay"))
  78. {
  79. Console.WriteLine("You have chosen to say with a hand score of: " + playerHandScore);
  80. while (dealerHandScore <= 17)
  81. {
  82. Console.WriteLine("\nThe dealer continues to play cards to get above 17 and try to stay under 21.");
  83. dealer.Add(new Card(true));
  84. getHandScore(dealer, false);
  85. Console.WriteLine("The dealers current score is now: " + dealerHandScore);
  86. }
  87. break;
  88. }
  89. answer = string.Empty;
  90.  
  91. }
  92. if (playerHandScore <= 21 && dealerHandScore <= 21)
  93. {
  94.  
  95. if (playerHandScore > dealerHandScore)
  96. {
  97. Console.WriteLine("Player won!");
  98. playerScore++;
  99. }
  100. else if (playerHandScore < dealerHandScore)
  101. {
  102. Console.WriteLine("Dealer Wins!");
  103. dealerScore++;
  104. }
  105. else
  106. {
  107. Console.WriteLine("It's a Tie!");
  108. tie++;
  109. }
  110. }
  111. if (playerHandScore > 21 && dealerHandScore <= 21)
  112. {
  113. Console.WriteLine("The player is over 21, dealer wins!");
  114. dealerScore++;
  115. }
  116. else if (playerHandScore <= 21 && dealerHandScore > 21)
  117. {
  118. Console.WriteLine("The dealer is over 21, player wins!");
  119. playerScore++;
  120. }
  121. else if (playerHandScore > 21 && dealerHandScore > 21)
  122. {
  123. Console.WriteLine("No one wins.");
  124. }
  125. //check winner
  126. //add scores
  127. }
  128. else if (ans.ToLower().Equals("n"))
  129. break;
  130. else
  131. Console.WriteLine("Please answer with (Y or N)");
  132.  
  133. }
  134.  
  135. }
  136. public static void getHandScore(List<Card> hand, bool player)
  137. {
  138. if (player)
  139. playerHandScore = 0;
  140. else
  141. dealerHandScore = 0;
  142. foreach (Card c in hand)
  143. {
  144. if (player)
  145. playerHandScore += c.getCardNumber();
  146. else
  147. dealerHandScore += c.getCardNumber();
  148. }
  149.  
  150. }
  151. public static void printHandScore(List<Card> Player, List<Card> Dealer)
  152. {
  153.  
  154. getHandScore(Player, true);
  155. getHandScore(Dealer, false);
  156. Console.WriteLine("\nPlayer Score: " + playerScore);
  157. Console.WriteLine("Player Hand Score: " + playerHandScore);
  158. Console.WriteLine("Dealer Score: " + dealerScore);
  159. Console.WriteLine("Dealer Hand Score: " + dealerHandScore);
  160.  
  161. }
  162. }
  163.  
  164. class Card
  165. {
  166. private string cardName;
  167. private int cardNumber;
  168. private string suit;
  169. private int suitNumber;
  170.  
  171. public Card(bool deal)
  172. {
  173. this.cardNumber = 0;
  174. this.cardName = "";
  175. this.suit = "";
  176. this.suitNumber = 0;
  177. if (deal)
  178. dealCard();
  179. }
  180.  
  181. public void dealCard()
  182. {
  183. Random rand = new Random();
  184. suitNumber = rand.Next(0, 3);
  185. if (suitNumber.Equals(0))
  186. suit = "Clubs";
  187. if (suitNumber.Equals(1))
  188. suit = "Spades";
  189. if (suitNumber.Equals(2))
  190. suit = "Diamonds";
  191. if (suitNumber.Equals(3))
  192. suit = "Hearts";
  193.  
  194. cardNumber = rand.Next(1, 10);
  195. if (cardNumber.Equals(1))
  196. cardName = "Ace";
  197. if (cardNumber.Equals(2))
  198. cardName = "Two";
  199. if (cardNumber.Equals(3))
  200. cardName = "Three";
  201. if (cardNumber.Equals(4))
  202. cardName = "Four";
  203. if (cardNumber.Equals(5))
  204. cardName = "Five";
  205. if (cardNumber.Equals(6))
  206. cardName = "Six";
  207. if (cardNumber.Equals(7))
  208. cardName = "Seven";
  209. if (cardNumber.Equals(8))
  210. cardName = "Eight";
  211. if (cardNumber.Equals(9))
  212. cardName = "Nine";
  213. if (cardNumber.Equals(10))
  214. cardName = "Ten";
  215. }
  216.  
  217. public string getCardName()
  218. {
  219. return cardName;
  220. }
  221.  
  222. public int getCardNumber()
  223. {
  224. return cardNumber;
  225. }
  226.  
  227. public string getSuit()
  228. {
  229. return suit;
  230. }
  231. }
  232. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement