Advertisement
Guest User

Untitled

a guest
May 26th, 2019
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.03 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 ExamPreparation
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. PrintHelenAbduction();
  14. }
  15.  
  16. private static void PrintHelenAbduction()
  17. {
  18. int energy = int.Parse(Console.ReadLine());
  19. int numberOfRows = int.Parse(Console.ReadLine());
  20. var matrix = new char[numberOfRows, numberOfRows];
  21. int rowHelen = 0;
  22. int colHelen = 0;
  23. int rowParis = 0;
  24. int colParis = 0;
  25. for (int i = 0; i < matrix.GetLength(0); i++)
  26. {
  27. var input = Console.ReadLine().Trim();
  28. for (int j = 0; j < matrix.GetLength(1); j++)
  29. {
  30. matrix[i, j] = input[j];
  31. }
  32. }
  33. for (int i = 0; i < matrix.GetLength(0); i++)
  34. {
  35. for (int j = 0; j < matrix.GetLength(1); j++)
  36. {
  37. if (matrix[i, j] == 'H')
  38. {
  39. rowHelen = i;
  40. colHelen = j;
  41. }
  42. if (matrix[i, j] == 'P')
  43. {
  44. rowParis = i;
  45. colParis = j;
  46. }
  47. }
  48. }
  49. while (true)
  50. {
  51. var commanda = Console.ReadLine().Split(new char[] {' ' },StringSplitOptions.RemoveEmptyEntries).ToArray();
  52. var moves = commanda[0]?.ToLower();
  53. var rowSpartan = int.Parse(commanda[1]);
  54. var colSpartan = int.Parse(commanda[2]);
  55. if (Inside(matrix, rowSpartan, colSpartan))
  56. {
  57. matrix[rowSpartan, colSpartan] = 'S';
  58. }
  59. energy--;
  60. if (moves == "up" && (Inside(matrix, rowParis - 1, colParis)))
  61. {
  62. if (matrix[rowParis - 1, colParis ] == 'H')
  63. {
  64. Console.WriteLine($"Paris has successfully abducted Helen! Energy left: {energy}");
  65. matrix[rowParis, colParis] = '-';
  66. matrix[rowHelen, colHelen] = '-';
  67. PrintMatrix(matrix);
  68. return;
  69. }
  70. else if (matrix[rowParis - 1, colParis] == 'S')
  71. {
  72. energy -= 2;
  73. matrix[rowParis - 1, colParis] = 'P';
  74. matrix[rowParis, colParis] = '-';
  75. rowParis--;
  76. if (energy <= 0)
  77. {
  78. ParisDeid(matrix,rowParis, colParis);
  79. return;
  80. }
  81. }
  82. else if (matrix[rowParis - 1, colParis] == '-')
  83. {
  84. matrix[rowParis - 1, colParis] = 'P';
  85. matrix[rowParis, colParis] = '-';
  86. rowParis--;
  87. if (energy <= 0)
  88. {
  89. ParisDeid(matrix, rowParis, colParis);
  90. return;
  91. }
  92. }
  93. }
  94. if (moves == "down" && (Inside(matrix, rowParis+1, colParis )))
  95. {
  96. if (matrix[rowParis+1, colParis] == 'H')
  97. {
  98. Console.WriteLine($"Paris has successfully abducted Helen! Energy left: {energy}");
  99. matrix[rowParis, colParis] = '-';
  100. matrix[rowHelen, colHelen] = '-';
  101. PrintMatrix(matrix);
  102. return;
  103. }
  104. else if (matrix[rowParis + 1, colParis] == 'S')
  105. {
  106. energy -= 2;
  107. matrix[rowParis + 1, colParis] = 'P';
  108. matrix[rowParis, colParis] = '-';
  109. rowParis++;
  110. if (energy <= 0)
  111. {
  112. ParisDeid(matrix, rowParis, colParis);
  113. return;
  114. }
  115. }
  116. else if (matrix[rowParis + 1, colParis] == '-')
  117. {
  118. matrix[rowParis + 1, colParis] = 'P';
  119. matrix[rowParis, colParis] = '-';
  120. rowParis++;
  121. if (energy <= 0)
  122. {
  123. ParisDeid(matrix, rowParis, colParis);
  124. return;
  125. }
  126. }
  127. }
  128. if (moves == "left" && (Inside(matrix, rowParis , colParis-1)))
  129. {
  130. if (matrix[rowParis , colParis-1] == 'H')
  131. {
  132. Console.WriteLine($"Paris has successfully abducted Helen! Energy left: {energy}");
  133. matrix[rowParis, colParis] = '-';
  134. matrix[rowHelen, colHelen] = '-';
  135. PrintMatrix(matrix);
  136. return;
  137. }
  138. else if (matrix[rowParis , colParis-1] == 'S')
  139. {
  140. energy -= 2;
  141. matrix[rowParis, colParis - 1] = 'P';
  142. matrix[rowParis, colParis] = '-';
  143. colParis--;
  144. if (energy <= 0)
  145. {
  146. ParisDeid(matrix, rowParis, colParis);
  147. return;
  148. }
  149. }
  150. else if (matrix[rowParis , colParis-1] == '-')
  151. {
  152. matrix[rowParis, colParis - 1] = 'P';
  153. matrix[rowParis, colParis] = '-';
  154. colParis--;
  155. if (energy <= 0)
  156. {
  157. ParisDeid(matrix, rowParis, colParis);
  158. return;
  159. }
  160. }
  161. }
  162. if (moves == "right" && (Inside(matrix, rowParis, colParis - 1)))
  163. {
  164. if (matrix[rowParis, colParis + 1] == 'H')
  165. {
  166. Console.WriteLine($"Paris has successfully abducted Helen! Energy left: {energy}");
  167. matrix[rowParis, colParis] = '-';
  168. matrix[rowHelen, colHelen] = '-';
  169. PrintMatrix(matrix);
  170. return;
  171. }
  172. else if (matrix[rowParis, colParis + 1] == 'S')
  173. {
  174. energy -= 2;
  175. matrix[rowParis, colParis + 1] = 'P';
  176. matrix[rowParis, colParis] = '-';
  177. colParis++;
  178. if (energy <= 0)
  179. {
  180. ParisDeid(matrix, rowParis, colParis);
  181. return;
  182. }
  183. }
  184. else if (matrix[rowParis, colParis + 1] == '-')
  185. {
  186. matrix[rowParis, colParis + 1] = 'P';
  187. matrix[rowParis, colParis] = '-';
  188. colParis++;
  189. if (energy <=0)
  190. {
  191. ParisDeid(matrix, rowParis, colParis);
  192. return;
  193. }
  194. }
  195. }
  196. }
  197. }
  198.  
  199. private static void PrintMatrix(char[,] matrix)
  200. {
  201. for (int i = 0; i < matrix.GetLength(0); i++)
  202. {
  203. for (int j = 0; j < matrix.GetLength(1); j++)
  204. {
  205. Console.Write(matrix[i,j]);
  206. }
  207. Console.WriteLine();
  208. }
  209. }
  210.  
  211. private static void ParisDeid(char[,] matrix, int rowParis, int colParis)
  212. {
  213. matrix[rowParis , colParis] = 'X';
  214. Console.WriteLine($"Paris died at {rowParis};{colParis}.");
  215. for (int i = 0; i < matrix.GetLength(0); i++)
  216. {
  217. for (int j = 0; j < matrix.GetLength(1); j++)
  218. {
  219. Console.Write(matrix[i, j]);
  220. }
  221. Console.WriteLine();
  222. }
  223. return;
  224. }
  225.  
  226. private static bool Inside(char[,] matrix, int rowParis, int colParis)
  227. {
  228. return rowParis < matrix.GetLength(0) && rowParis >= 0
  229. && colParis < matrix.GetLength(1) && colParis >= 0;
  230. }
  231. }
  232. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement