osman1997

old

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