Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.77 KB | None | 0 0
  1. package JavaAdvancedExam16April2019.ex1;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class matrixMainex2 {
  6. public static void main(String[] args) {
  7. Scanner scanner = new Scanner(System.in);
  8.  
  9. int energy = Integer.parseInt(scanner.nextLine());
  10. int matrixSize = Integer.parseInt(scanner.nextLine());
  11. int parisRow = 0;
  12. int parisCol = 0;
  13.  
  14.  
  15. char[][] matrix = new char[matrixSize][];
  16.  
  17. for (int i = 0; i < matrix.length; i++) {
  18. matrix[i] = scanner.nextLine().toCharArray();
  19. for (int j = 0; j < matrix[i].length; j++) {
  20. if (matrix[i][j] == 'P') {
  21. parisRow = i;
  22. parisCol = j;
  23. }
  24. }
  25. }
  26. boolean findHelen = true;
  27. matrix[parisRow][parisCol] = '-';
  28. while (energy > 0 && findHelen) {
  29. String input = scanner.nextLine();
  30. String[] tokens = input.split(" ");
  31. String direction = tokens[0];
  32. int spawnRow = Integer.parseInt(tokens[1]);
  33. int spawnCol = Integer.parseInt(tokens[2]);
  34.  
  35. matrix[spawnRow][spawnCol] = 'S';
  36.  
  37. switch (direction) {
  38. case "up":
  39. if (checkRangeUp(parisRow, matrix)) {
  40. parisRow -= 1;
  41. energy -= 1;
  42.  
  43. if (energy <= 0) {
  44. matrix[parisRow][parisCol] = 'X';
  45. System.out.printf("Paris died at %d;%d.%n", parisRow, parisCol);
  46. findHelen = false;
  47. } else if (matrix[parisRow][parisCol] == 'H') {
  48. System.out.print("Paris has successfully abducted Helen! ");
  49. System.out.printf("Energy left: %d%n", energy);
  50. matrix[parisRow][parisCol] = '-';
  51. findHelen = false;
  52. } else if (matrix[parisRow][parisCol] == 'S') {
  53. energy -= 2;
  54. if (energy <= 0) {
  55. matrix[parisRow][parisCol] = 'X';
  56. System.out.printf("Paris died at %d;%d.%n", parisRow, parisCol);
  57. findHelen = false;
  58. } else {
  59. matrix[parisRow][parisCol] = '-';
  60. }
  61. }
  62. } else {
  63. energy -= 1;
  64. if (energy <= 0) {
  65. matrix[parisRow][parisCol] = 'X';
  66. System.out.printf("Paris died at %d;%d.%n", parisRow, parisCol);
  67. findHelen = false;
  68. }
  69. }
  70.  
  71. break;
  72. case "down":
  73. if (checkRangeDown(parisRow, matrix)) {
  74. parisRow += 1;
  75. energy -= 1;
  76. if (energy <= 0) {
  77. matrix[parisRow][parisCol] = 'X';
  78. System.out.printf("Paris died at %d;%d.%n", parisRow, parisCol);
  79. findHelen = false;
  80. } else if (matrix[parisRow][parisCol] == 'H') {
  81. System.out.print("Paris has successfully abducted Helen! ");
  82. System.out.printf("Energy left: %d%n", energy);
  83. matrix[parisRow][parisCol] = '-';
  84. findHelen = false;
  85. } else if (matrix[parisRow][parisCol] == 'S') {
  86. energy -= 2;
  87. if (energy <= 0) {
  88. matrix[parisRow][parisCol] = 'X';
  89. System.out.printf("Paris died at %d;%d.%n", parisRow, parisCol);
  90. findHelen = false;
  91. } else {
  92. matrix[parisRow][parisCol] = '-';
  93. }
  94. }
  95. } else {
  96. energy -= 1;
  97. if (energy <= 0) {
  98. matrix[parisRow][parisCol] = 'X';
  99. System.out.printf("Paris died at %d;%d.%n", parisRow, parisCol);
  100. findHelen = false;
  101. }
  102. }
  103.  
  104. break;
  105. case "right":
  106. if (checkRangeRight(parisCol, matrix)) {
  107. parisCol += 1;
  108. energy -= 1;
  109. if (energy <= 0) {
  110. matrix[parisRow][parisCol] = 'X';
  111. System.out.printf("Paris died at %d;%d.%n", parisRow, parisCol);
  112. findHelen = false;
  113. } else if (matrix[parisRow][parisCol] == 'H') {
  114. System.out.print("Paris has successfully abducted Helen! ");
  115. System.out.printf("Energy left: %d%n", energy);
  116. matrix[parisRow][parisCol] = '-';
  117. findHelen = false;
  118. } else if (matrix[parisRow][parisCol] == 'S') {
  119. energy -= 2;
  120. if (energy <= 0) {
  121. matrix[parisRow][parisCol] = 'X';
  122. System.out.printf("Paris died at %d;%d.%n", parisRow, parisCol);
  123. findHelen = false;
  124. } else {
  125. matrix[parisRow][parisCol] = '-';
  126. }
  127. }
  128. } else {
  129. energy -= 1;
  130. if (energy <= 0) {
  131. matrix[parisRow][parisCol] = 'X';
  132. System.out.printf("Paris died at %d;%d.%n", parisRow, parisCol);
  133. findHelen = false;
  134. }
  135. }
  136.  
  137. break;
  138. case "left":
  139. if (checkRangeLeft(parisCol, matrix)) {
  140. parisCol -= 1;
  141. energy -= 1;
  142. if (energy <= 0) {
  143. matrix[parisRow][parisCol] = 'X';
  144. System.out.printf("Paris died at %d;%d.%n", parisRow, parisCol);
  145. findHelen = false;
  146. } else if (matrix[parisRow][parisCol] == 'H') {
  147. System.out.print("Paris has successfully abducted Helen! ");
  148. System.out.printf("Energy left: %d%n", energy);
  149. matrix[parisRow][parisCol] = '-';
  150. findHelen = false;
  151. } else if (matrix[parisRow][parisCol] == 'S') {
  152. energy -= 2;
  153. if (energy <= 0) {
  154. matrix[parisRow][parisCol] = 'X';
  155. System.out.printf("Paris died at %d;%d.%n", parisRow, parisCol);
  156. findHelen = false;
  157. } else {
  158. matrix[parisRow][parisCol] = '-';
  159. }
  160. }
  161. } else {
  162. energy -= 1;
  163. if (energy <= 0) {
  164. matrix[parisRow][parisCol] = 'X';
  165. System.out.printf("Paris died at %d;%d.%n", parisRow, parisCol);
  166. findHelen = false;
  167. }
  168. }
  169.  
  170. break;
  171. }
  172. }
  173. for (int i = 0; i < matrix.length; i++) {
  174. for (int j = 0; j < matrix[i].length; j++) {
  175. System.out.print(matrix[i][j]);
  176. }
  177. System.out.println();
  178. }
  179. }
  180.  
  181.  
  182. private static boolean checkRangeUp(int parisRow, char[][] matirx) {
  183. parisRow--;
  184. return parisRow >= 0 && parisRow < matirx.length;
  185. }
  186.  
  187. private static boolean checkRangeDown(int parisRow, char[][] matirx) {
  188. parisRow++;
  189. return parisRow >= 0 && parisRow < matirx.length;
  190. }
  191.  
  192. private static boolean checkRangeRight(int parisCol, char[][] matirx) {
  193. parisCol++;
  194. return parisCol >= 0 && parisCol < matirx.length;
  195. }
  196.  
  197. private static boolean checkRangeLeft(int parisCol, char[][] matirx) {
  198. parisCol--;
  199. return parisCol >= 0 && parisCol < matirx.length;
  200. }
  201. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement