Advertisement
Guest User

Untitled

a guest
Dec 6th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.53 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. using System.Drawing;
  7. using GDIDrawer;
  8.  
  9. namespace Lab4
  10. {
  11. class Program
  12. {
  13. static void Main(string[] args)
  14. {
  15. CDrawer Canvas = new CDrawer();
  16.  
  17. do
  18. {
  19. char guess;
  20. char[] charArray = null;
  21. char[] word = null;
  22. int correct;
  23. int failure = 0;
  24. bool win;
  25. int letter = 0;
  26. bool gameLost = false;
  27.  
  28. Console.Clear();
  29. Canvas.Clear();
  30.  
  31. //title
  32. Console.WriteLine("\t\t\tLab 4 Dale Chen-Song\n");
  33.  
  34.  
  35. DrawScreen(Canvas);
  36. GetWord(ref word, out charArray);
  37. do
  38. {
  39. //user input letter to guess
  40. GetGuess("Enter a letter to guess: ", charArray, out guess);
  41.  
  42. //check guessed letter
  43. CheckGuess(guess, ref charArray, ref word, out correct, out win, ref letter);
  44.  
  45. DrawScreen(Canvas, guess, charArray, correct, ref failure, ref gameLost);
  46.  
  47. } while (!gameLost || !win);
  48. Console.Write("Do you want to play again? ");
  49. } while (Console.ReadLine().ToLower() == "yes");
  50. }
  51. static private void DrawScreen(CDrawer Canvas)
  52. {
  53. //draw gallows
  54. Canvas.AddLine(350, 100, 350, 450, Color.SandyBrown, 3);
  55. Canvas.AddLine(350, 120, 450, 120, Color.SandyBrown, 3);
  56. Canvas.AddLine(350, 400, 500, 400, Color.SandyBrown, 3);
  57. Canvas.AddLine(350, 410, 475, 445, Color.SandyBrown, 3);
  58. Canvas.AddLine(350, 445, 475, 410, Color.SandyBrown, 3);
  59. Canvas.AddLine(475, 400, 475, 450, Color.SandyBrown, 3);
  60. Canvas.AddLine(350, 140, 370, 120, Color.SandyBrown, 3);
  61. Canvas.AddLine(420, 120, 420, 150, Color.Red, 1);
  62.  
  63. Canvas.AddText("Letters used: ", 20, 200, 25, 180, 50, Color.Blue);
  64. }
  65.  
  66. static private void GetWord(ref char[] array, out char[] newArray)
  67. {
  68. string secretWord = "kitten";
  69. array = secretWord.ToCharArray();
  70. newArray = new char[array.Length];
  71.  
  72. for (int i = 0; i < newArray.Length; i++)
  73. {
  74. newArray[i] = '-';
  75. }
  76. }
  77. static private void DrawScreen(CDrawer Canvas, char input, char[] newArray, int success, ref int fail, ref bool lose)
  78. {
  79.  
  80. string correctGuess = new string(newArray);
  81.  
  82. Canvas.AddText($"Letters used: {input}", 20, 200, 25, 180, 50, Color.Blue);
  83. Canvas.AddText(correctGuess, 20, 200, 600, 200, 50, Color.Purple);
  84.  
  85. if (success <= 0)
  86. {
  87. fail++;
  88. if (fail == 1)
  89. {
  90. Canvas.AddCenteredEllipse(420, 155, 35, 35, Color.Beige);
  91. }
  92. if (fail == 2)
  93. {
  94. Canvas.AddCenteredEllipse(420, 200, 35, 60, Color.Beige);
  95. }
  96. if (fail == 3)
  97. {
  98. Canvas.AddLine(420, 170, 380, 210, Color.Beige, 3);
  99. }
  100. if (fail == 4)
  101. {
  102. Canvas.AddLine(420, 170, 460, 210, Color.Beige, 3);
  103. }
  104. if (fail == 5)
  105. {
  106. Canvas.AddLine(420, 220, 400, 270, Color.Beige, 3);
  107. }
  108. if (fail == 6)
  109. {
  110. Canvas.AddLine(420, 220, 440, 270, Color.Beige, 3);
  111. Canvas.AddText("You lose!", 80, Color.Purple);
  112. lose = true;
  113. }
  114. }
  115. }
  116.  
  117. static private void GetGuess(string prompt, char[] array, out char input)
  118. {
  119. string guess; //input guess string from user
  120. input = ' ';
  121. bool error = false;
  122.  
  123. //repeat until input is right
  124. do
  125. {
  126. //might throw an exception
  127. try
  128. {
  129. //set error to be false
  130. error = false;
  131.  
  132. //user input value for letter
  133. Console.Write(prompt);
  134. guess = Console.ReadLine();
  135. input = Convert.ToChar(guess);
  136.  
  137. //check if the input is valid
  138. if (!Char.IsLetter(input))
  139. {
  140. //display error message if invalid input, prompt user to try again
  141. Console.WriteLine("An invalid character was entered, please try again.");
  142. error = true;
  143. }
  144.  
  145. for (int i = 0; i < array.Length; i++)
  146. {
  147. if (input == array[i])
  148. {
  149. //display error message if repeat input, prompt user to try again
  150. Console.WriteLine("You have already entered that letter, please try again.");
  151. error = true;
  152. }
  153. }
  154. }
  155. //catch any exception thrown
  156. catch (Exception ex)
  157. {
  158. //display error message, set error condition to true
  159. Console.WriteLine(ex.Message);
  160. error = true;
  161. }
  162. }//continue looping until the input is correct
  163. while (error);
  164. }
  165.  
  166. static private void CheckGuess(char input, ref char[] newArray, ref char[] answer, out int success, out bool gameWon, ref int letterGuessed)
  167. {
  168. success = 0;
  169.  
  170. for (int i = 0; i < answer.Length; i++)
  171. {
  172. if (input == answer[i])
  173. {
  174. newArray[i] = input;
  175. success++;
  176. letterGuessed++;
  177. }
  178. }
  179.  
  180. Console.WriteLine(newArray);
  181. if (letterGuessed == answer.Length)
  182. {
  183. gameWon = true;
  184. }
  185. else
  186. {
  187. gameWon = false;
  188. }
  189. Console.WriteLine(gameWon);
  190. }
  191. }
  192. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement