Advertisement
Prohause

Radioactive Bunny

Jun 18th, 2017
505
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.76 KB | None | 0 0
  1. using System;
  2.  
  3. namespace debbuger_new
  4. {
  5. public class StartUp
  6. {
  7. public static void Main(string[] args)
  8. {
  9. var dimensions = Console.ReadLine().Trim().Split(new[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);
  10.  
  11. var row = int.Parse(dimensions[0]);
  12. var col = int.Parse(dimensions[1]);
  13.  
  14. var cave = new char[row, col];
  15. string input;
  16. var output = string.Empty;
  17. for (var i = 0; i < row; i++)
  18. {
  19. input = Console.ReadLine().Trim();
  20. for (var j = 0; j < col; j++)
  21. {
  22. cave[i, j] = input[j];
  23. }
  24. }
  25.  
  26. var resultingCave = new char[row, col];
  27. Array.Copy(cave, resultingCave, cave.Length);
  28.  
  29.  
  30. input = Console.ReadLine().Trim();
  31. var died = false;
  32. var escaped = false;
  33.  
  34. for (var i = 0; i < input.Length; i++)
  35. {
  36. for (var j = 0; j < row; j++)
  37. {
  38. for (var k = 0; k < col; k++)
  39. {
  40. if (!cave[j, k].Equals('P')) continue;
  41. switch (input[i])
  42. {
  43. case 'U':
  44. try
  45. {
  46. if (resultingCave[j - 1, k].Equals('B'))
  47. {
  48. output = $"dead: {j - 1} {k}";
  49. resultingCave[j, k] = '.';
  50. died = true;
  51. }
  52. else
  53. {
  54. resultingCave[j - 1, k] = 'P';
  55. resultingCave[j, k] = '.';
  56. }
  57. }
  58. catch (Exception)
  59. {
  60. output = $"won: {j} {k}";
  61. escaped = true;
  62. resultingCave[j, k] = '.';
  63. }
  64. break;
  65. case 'L':
  66. try
  67. {
  68. if (resultingCave[j, k - 1].Equals('B'))
  69. {
  70. output = $"dead: {j} {k - 1}";
  71. resultingCave[j, k] = '.';
  72. died = true;
  73. }
  74. else
  75. {
  76. resultingCave[j, k - 1] = 'P';
  77. resultingCave[j, k] = '.';
  78. }
  79. }
  80. catch (Exception)
  81. {
  82. output = $"won: {j} {k}";
  83. escaped = true;
  84. resultingCave[j, k] = '.';
  85. }
  86. break;
  87. case 'R':
  88. try
  89. {
  90. if (resultingCave[j, k + 1].Equals('B'))
  91. {
  92. output = $"dead: {j} {k + 1}";
  93. resultingCave[j, k] = '.';
  94. died = true;
  95. }
  96. else
  97. {
  98. resultingCave[j, k + 1] = 'P';
  99. resultingCave[j, k] = '.';
  100. }
  101. }
  102. catch (Exception)
  103. {
  104. output = $"won: {j} {k}";
  105. escaped = true;
  106. resultingCave[j, k] = '.';
  107. }
  108. break;
  109. case 'D':
  110. try
  111. {
  112. if (resultingCave[j + 1, k].Equals('B'))
  113. {
  114. output = $"dead: {j + 1} {k}";
  115. resultingCave[j, k] = '.';
  116. died = true;
  117. }
  118. else
  119. {
  120. resultingCave[j + 1, k] = 'P';
  121. resultingCave[j, k] = '.';
  122. }
  123. }
  124. catch (Exception)
  125. {
  126. output = $"won: {j} {k}";
  127. escaped = true;
  128. resultingCave[j, k] = '.';
  129. }
  130. break;
  131. }
  132. }
  133. }
  134. for (var j = 0; j < row; j++)
  135. {
  136. for (var k = 0; k < col; k++)
  137. {
  138. if (!cave[j, k].Equals('B'))
  139. {
  140. continue;
  141. }
  142. try
  143. {
  144. var element = resultingCave[j - 1, k];
  145. if (element.Equals('P'))
  146. {
  147. died = true;
  148. output = $"dead: {j - 1} {k}";
  149. }
  150.  
  151. resultingCave[j - 1, k] = 'B';
  152.  
  153. }
  154. catch (Exception)
  155. {
  156. // ignored
  157. }
  158. try
  159. {
  160. var element = resultingCave[j + 1, k];
  161. if (element.Equals('P'))
  162. {
  163. died = true;
  164. output = $"dead: {j + 1} {k}";
  165. }
  166. resultingCave[j + 1, k] = 'B';
  167. }
  168. catch (Exception)
  169. {
  170. // ignored
  171. }
  172. try
  173. {
  174. var element = resultingCave[j, k - 1];
  175. if (element.Equals('P'))
  176. {
  177. died = true;
  178. output = $"dead: {j } {k - 1}";
  179. }
  180. resultingCave[j, k - 1] = 'B';
  181. }
  182. catch (Exception)
  183. {
  184. // ignored
  185. }
  186. try
  187. {
  188. var element = resultingCave[j, k + 1];
  189. if (element.Equals('P'))
  190. {
  191. died = true;
  192. output = $"dead: {j } {k + 1}";
  193. }
  194. resultingCave[j, k + 1] = 'B';
  195. }
  196. catch (Exception)
  197. {
  198. // ignored
  199. }
  200. resultingCave[j, k] = 'B';
  201.  
  202. }
  203.  
  204. }
  205.  
  206. Array.Copy(resultingCave, cave, resultingCave.Length);
  207. if (!died && !escaped) continue;
  208. for (var l = 0; l < row; l++)
  209. {
  210. for (var m = 0; m < col; m++)
  211. {
  212. Console.Write(resultingCave[l, m]);
  213. }
  214. Console.WriteLine();
  215. }
  216. Console.WriteLine(output);
  217. return;
  218. }
  219. }
  220. }
  221. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement