Advertisement
GabrielDas

Untitled

May 30th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.10 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace P10RadioactiveMutantVampireBaby
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. int[] dimensions = Console.ReadLine()
  11. .Split(" ", StringSplitOptions.RemoveEmptyEntries)
  12. .Select(int.Parse)
  13. .ToArray();
  14.  
  15. int rows = dimensions[0];
  16. int cols = dimensions[1];
  17.  
  18. var matrix = new string[rows, cols];
  19. int rowOfPlayer = 0;
  20. int colOfPlayer = 0;
  21.  
  22. for (int i = 0; i < rows; i++)
  23. {
  24. string symbols = Console.ReadLine();
  25.  
  26. for (int j = 0; j < cols; j++)
  27. {
  28. matrix[i, j] = symbols[j].ToString();
  29. if (matrix[i, j] == "P")
  30. {
  31. rowOfPlayer = i;
  32. colOfPlayer = j;
  33. }
  34.  
  35. }
  36. }
  37.  
  38. string commands = Console.ReadLine();
  39. Nullable<bool> doesWin = null;
  40.  
  41. for (int i = 0; i < commands.Length; i++)
  42. {
  43. if (commands[i] == 'U')
  44. {
  45.  
  46. if (rowOfPlayer - 1 < 0)
  47. {
  48. matrix[rowOfPlayer, colOfPlayer] = ".";
  49. doesWin = true;
  50.  
  51. }
  52. else if (matrix[rowOfPlayer - 1, colOfPlayer] == "B")
  53. {
  54. doesWin = false;
  55. matrix[rowOfPlayer, colOfPlayer] = ".";
  56. rowOfPlayer--;
  57. }
  58. else
  59. {
  60. rowOfPlayer--;
  61. matrix[rowOfPlayer, colOfPlayer] = "P";
  62. matrix[rowOfPlayer + 1, colOfPlayer] = ".";
  63. }
  64.  
  65.  
  66. }
  67. else if (commands[i] == 'D')
  68. {
  69.  
  70. if (rowOfPlayer + 1 > rows-1)
  71. {
  72. matrix[rowOfPlayer, colOfPlayer] = ".";
  73. doesWin = true;
  74.  
  75. }
  76. else if (matrix[rowOfPlayer + 1, colOfPlayer] == "B")
  77. {
  78. doesWin = false;
  79. matrix[rowOfPlayer, colOfPlayer] = ".";
  80. rowOfPlayer++;
  81.  
  82. }
  83. else
  84. {
  85. rowOfPlayer++;
  86. matrix[rowOfPlayer, colOfPlayer] = "P";
  87. matrix[rowOfPlayer - 1, colOfPlayer] = ".";
  88.  
  89. }
  90.  
  91. }
  92. else if (commands[i] == 'L')
  93. {
  94.  
  95. if (colOfPlayer - 1 < 0)
  96. {
  97. matrix[rowOfPlayer, colOfPlayer] = ".";
  98. doesWin = true;
  99. }
  100. else if (matrix[rowOfPlayer, colOfPlayer - 1] == "B")
  101. {
  102. doesWin = false;
  103. matrix[rowOfPlayer, colOfPlayer] = ".";
  104. colOfPlayer--;
  105.  
  106. }
  107. else
  108. {
  109. colOfPlayer--;
  110. matrix[rowOfPlayer, colOfPlayer] = "P";
  111. matrix[rowOfPlayer, colOfPlayer + 1] = ".";
  112. }
  113. }
  114. else if (commands[i] == 'R')
  115. {
  116.  
  117. if (colOfPlayer + 1 > cols-1)
  118. {
  119. matrix[rowOfPlayer, colOfPlayer] = ".";
  120. doesWin = true;
  121.  
  122. }
  123. else if (matrix[rowOfPlayer, colOfPlayer + 1] == "B")
  124. {
  125. doesWin = false;
  126. matrix[rowOfPlayer, colOfPlayer] = ".";
  127. colOfPlayer++;
  128.  
  129. }
  130. else
  131. {
  132. colOfPlayer++;
  133. matrix[rowOfPlayer, colOfPlayer] = "P";
  134. matrix[rowOfPlayer, colOfPlayer - 1] = ".";
  135. }
  136.  
  137. }
  138.  
  139. for (int j = 0; j < matrix.GetLength(0); j++)
  140. {
  141. for (int k = 0; k < matrix.GetLength(1); k++)
  142. {
  143. if(matrix[j,k] == "B")
  144. {
  145. if(j+1 <= rows-1 && matrix[j+1,k] != "B")
  146. {
  147. if(matrix[j+1,k] == "P")
  148. {
  149. doesWin = false;
  150.  
  151. matrix[j + 1, k] = "B";
  152. }
  153. else
  154. {
  155. matrix[j + 1, k] = "X";
  156. }
  157. }
  158.  
  159. if (j-1 >= 0 && matrix[j-1, k] != "B")
  160. {
  161. if(matrix[j-1,k] == "P")
  162. {
  163. doesWin = false;
  164.  
  165. matrix[j - 1, k] = "B";
  166. }
  167. else
  168. {
  169. matrix[j - 1, k] = "X";
  170. }
  171.  
  172. }
  173.  
  174. if(k+1 <= cols -1 && matrix[j,k+1] != "B")
  175. {
  176. if(matrix[j, k+1] == "P")
  177. {
  178. doesWin = false;
  179.  
  180. matrix[j, k + 1] = "B";
  181.  
  182. }
  183. else
  184. {
  185. matrix[j, k + 1] = "X";
  186. }
  187. }
  188.  
  189. if(k-1 >= 0 && matrix[j, k-1] != "B")
  190. {
  191. if(matrix[j, k-1] == "P")
  192. {
  193. doesWin = false;
  194.  
  195. matrix[j, k - 1] = "B";
  196. }
  197. else
  198. {
  199. matrix[j, k - 1] = "X";
  200. }
  201.  
  202. }
  203.  
  204. }
  205.  
  206.  
  207. }
  208.  
  209. }
  210.  
  211. for (int row = 0; row < matrix.GetLength(0); row++)
  212. {
  213. for (int col = 0; col < matrix.GetLength(1); col++)
  214. {
  215. if(matrix[row,col] == "X")
  216. {
  217. matrix[row, col] = "B";
  218. }
  219. }
  220.  
  221. }
  222.  
  223. if (doesWin == true || doesWin == false)
  224. {
  225. break;
  226. }
  227.  
  228. }
  229.  
  230. if (doesWin == true)
  231. {
  232. Print(matrix);
  233. Console.WriteLine($"won: {rowOfPlayer} {colOfPlayer}");
  234.  
  235. }
  236. else
  237. {
  238. Print(matrix);
  239. Console.WriteLine($"dead: {rowOfPlayer} {colOfPlayer}");
  240. }
  241.  
  242. }
  243.  
  244. public static void Print(string[,] matrix)
  245. {
  246. for (int i = 0; i < matrix.GetLength(0); i++)
  247. {
  248. for (int j = 0; j < matrix.GetLength(1); j++)
  249. {
  250. Console.Write($"{matrix[i, j]}");
  251. }
  252. Console.WriteLine();
  253. }
  254.  
  255.  
  256. }
  257. }
  258. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement