Advertisement
TwinFrame

Game VirtualBox

Jan 12th, 2020
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.07 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Clight_11_fightBoss
  4. {
  5. class Program
  6. {
  7. static void Main(string[] args)
  8. {
  9. Console.WriteLine("Приветсвуем вас в виртуальном боксе!");
  10. Console.Write("\nВведите имя вашего боксера: ");
  11. string name = Console.ReadLine();
  12. Console.WriteLine("\n" + name + ", вы готовы? Для старта нажми любую клавишу.");
  13. Console.ReadKey();
  14. Console.WriteLine("\nБокс!\n");
  15.  
  16. float live = 500;
  17. float myLive = live;
  18. float bossLive = live;
  19. float plusHealth = 50;
  20. float damage = 100;
  21. int youKick = 0;
  22. int bossKick = 0;
  23. int stepFight = 0;
  24. int myStep = 1;
  25. int preMyStep = 0;
  26. int preBossStep = 0;
  27. bool actualMyKick;
  28. bool actualBossKick;
  29. Random rand = new Random();
  30. int armor;
  31.  
  32.  
  33. while (myLive > 0 && bossLive > 0)
  34. {
  35. Console.WriteLine($"\n{name}, ваша жизнь: {myLive}");
  36. Console.WriteLine($"жизнь соперника: {bossLive}\n");
  37.  
  38. stepFight++;
  39. if (stepFight % 2 != 0)
  40. {
  41. actualMyKick = false;
  42. while (actualMyKick == false)
  43. {
  44. Console.ForegroundColor = ConsoleColor.Red;
  45. Console.WriteLine($"\nВыберете свой {myStep} удар:\n");
  46. Console.ForegroundColor = ConsoleColor.White;
  47. Console.WriteLine($"1 - Прямой. Максимум поражения - {damage / 4}");
  48. Console.WriteLine($"2 - Боковой. Максимум поражения - {damage / 2}");
  49. Console.WriteLine($"3 - Апперкот. Максимум поражения - {damage}");
  50. Console.WriteLine($"4 - Пропустить удар, но восстановить силы. +{plusHealth} здоровья");
  51. string currentChoose = Console.ReadLine();
  52. switch(currentChoose)
  53. {
  54. case "1":
  55. case "2":
  56. case "3":
  57. case "4":
  58. youKick = Convert.ToInt32(currentChoose);
  59. if (youKick == 3 && bossLive > live / 2)
  60. {
  61. Console.ForegroundColor = ConsoleColor.Yellow;
  62. Console.WriteLine($"Нельзя выбрать апперкот, пока у соперника больше {live / 2} (50% жизни). Выберете другой удар.");
  63. Console.ForegroundColor = ConsoleColor.White;
  64. }
  65. else
  66. {
  67. if (youKick == 3 && youKick == preMyStep)
  68. {
  69. Console.ForegroundColor = ConsoleColor.Yellow;
  70. Console.WriteLine("Нельзя выбрать два апперкота подряд. Выберете другой удар.");
  71. Console.ForegroundColor = ConsoleColor.White;
  72. }
  73. else
  74. {
  75. actualMyKick = true;
  76. }
  77. }
  78. break;
  79. default:
  80. Console.ForegroundColor = ConsoleColor.Yellow;
  81. Console.WriteLine("Выберете цифру, соответствующую удару.");
  82. Console.ForegroundColor = ConsoleColor.White;
  83. break;
  84.  
  85. }
  86.  
  87. }
  88. myStep++;
  89. preMyStep = youKick;
  90.  
  91. switch (youKick)
  92. {
  93. case 1:
  94. armor = rand.Next(50, 101); //каждый удар добавляет погрешность в силу поражения
  95. bossLive -= damage / 4 * armor / 100;
  96. break;
  97. case 2:
  98. armor = rand.Next(50, 101);
  99. bossLive -= damage / 2 * armor / 100;
  100. break;
  101. case 3:
  102. armor = rand.Next(50, 101);
  103. bossLive -= damage * armor / 100;
  104. break;
  105. case 4:
  106. myLive += plusHealth;
  107. break;
  108. }
  109. }
  110. else
  111. {
  112. actualBossKick = false;
  113. while (actualBossKick == false)
  114. {
  115. bossKick = rand.Next(1, 5);
  116. if (bossKick == 3 && myLive > live / 2)
  117. {
  118. Console.ForegroundColor = ConsoleColor.Yellow;
  119. Console.WriteLine("Вы блокировали апперкот соперника.");
  120. Console.ForegroundColor = ConsoleColor.White;
  121. }
  122. else
  123. {
  124. if (bossKick == 3 && bossKick == preBossStep)
  125. {
  126. Console.ForegroundColor = ConsoleColor.Yellow;
  127. Console.WriteLine("Второй подряд апперкот соперника не прошел.");
  128. Console.ForegroundColor = ConsoleColor.White;
  129. }
  130. else
  131. {
  132. actualBossKick = true;
  133. }
  134. }
  135. preBossStep = bossKick;
  136. }
  137. switch (bossKick)
  138. {
  139. case 1:
  140. Console.ForegroundColor = ConsoleColor.Green;
  141. Console.WriteLine("Соперник вас поразил прямым ударом");
  142. Console.ForegroundColor = ConsoleColor.White;
  143. armor = rand.Next(50, 101);
  144. myLive -= damage / 4 * armor / 100;
  145. break;
  146. case 2:
  147. Console.ForegroundColor = ConsoleColor.Green;
  148. Console.WriteLine("Соперник провел боковой");
  149. Console.ForegroundColor = ConsoleColor.White;
  150. armor = rand.Next(50, 101);
  151. myLive -= damage / 2 * armor / 100;
  152. break;
  153. case 3:
  154. Console.ForegroundColor = ConsoleColor.Green;
  155. Console.WriteLine("Прошел апперкот соперника");
  156. Console.ForegroundColor = ConsoleColor.White;
  157. armor = rand.Next(50, 101);
  158. myLive -= damage * armor / 100;
  159. break;
  160. case 4:
  161. Console.ForegroundColor = ConsoleColor.Green;
  162. Console.WriteLine("Соперник решил набраться сил");
  163. Console.ForegroundColor = ConsoleColor.White;
  164. bossLive += plusHealth;
  165. break;
  166. }
  167. }
  168. }
  169. if (myLive < 0)
  170. {
  171. Console.WriteLine("\nУвы, вы Проиграли. До свидания!");
  172. Console.WriteLine("\nДля выхода нажмите любую клавишу.");
  173. Console.ReadKey();
  174. }
  175. else
  176. {
  177. Console.WriteLine("\nПоздравляем с победой! Ждем вас снова!");
  178. Console.WriteLine("\nДля выхода нажмите любую клавишу.");
  179. Console.ReadKey();
  180. }
  181. }
  182. }
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement