Advertisement
Guest User

TronRacers

a guest
Oct 21st, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4.  
  5. public class TronRacers {
  6. public static void main(String[] args) throws IOException {
  7. BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  8.  
  9. int size = Integer.parseInt(reader.readLine());
  10.  
  11. String[][] matrix = new String[size][size];
  12. int[] firstPlayerPositions = new int[2];
  13. int[] secondPlayerPositions = new int[2];
  14.  
  15. for (int i = 0; i < matrix.length; i++) {
  16. String input = reader.readLine();
  17. for (int j = 0; j < input.length(); j++) {
  18. matrix[i][j] = String.valueOf(input.charAt(j));
  19. if (matrix[i][j].equals("f")) {
  20. firstPlayerPositions[0] = i;
  21. firstPlayerPositions[1] = j;
  22. }
  23. if (matrix[i][j].equals("s")) {
  24. secondPlayerPositions[0] = i;
  25. secondPlayerPositions[1] = j;
  26. }
  27. }
  28. }
  29. boolean someoneIsDead = false;
  30. while (true) {
  31. String[] command = reader.readLine().split("\\s+");
  32. String firstCommand = command[0];
  33. String secondCommand = command[1];
  34. movement(firstCommand, firstPlayerPositions, matrix);
  35. someoneIsDead = isSomeoneIsDead(firstPlayerPositions, matrix);
  36. if (someoneIsDead) {
  37. break;
  38. }
  39. movement(secondCommand, secondPlayerPositions, matrix);
  40. someoneIsDead = isSomeoneIsDead(secondPlayerPositions, matrix);
  41. if (someoneIsDead) {
  42. break;
  43. }
  44. }
  45.  
  46. for (int i = 0; i < size; i++) {
  47. for (int j = 0; j < size; j++) {
  48. System.out.print(matrix[i][j]);
  49. }
  50. System.out.println();
  51. }
  52. }
  53.  
  54. private static boolean isSomeoneIsDead(int[] playerPositions, String[][] matrix) {
  55. return matrix[playerPositions[0]][playerPositions[1]].equals("x");
  56. }
  57.  
  58.  
  59. private static void movement(String commandOfPlayer, int[] playerPositions, String[][] matrix) {
  60. int rowOfPlayer = playerPositions[0];
  61. int colOfPlayer = playerPositions[1];
  62. String symbol = matrix[rowOfPlayer][colOfPlayer];
  63. switch (commandOfPlayer) {
  64. case "up":
  65. if (rowOfPlayer - 1 >= 0) {
  66. rowOfPlayer -= 1;
  67. } else {
  68. rowOfPlayer = matrix.length - 1;
  69. }
  70. break;
  71. case "down":
  72. if (rowOfPlayer + 1 < matrix.length) {
  73. rowOfPlayer += 1;
  74. } else {
  75. rowOfPlayer = 0;
  76. }
  77. break;
  78. case "right":
  79. if (colOfPlayer + 1 < matrix.length) {
  80. colOfPlayer += 1;
  81. } else {
  82. colOfPlayer = 0;
  83. }
  84. break;
  85. case "left":
  86. if (colOfPlayer - 1 < 0) {
  87. colOfPlayer = matrix.length - 1;
  88. } else {
  89. colOfPlayer -= 1;
  90. }
  91. break;
  92.  
  93. }
  94. if (matrix[rowOfPlayer][colOfPlayer].equalsIgnoreCase("*")) {
  95. matrix[rowOfPlayer][colOfPlayer] = symbol;
  96. } else {
  97. matrix[rowOfPlayer][colOfPlayer] = "x";
  98. }
  99. playerPositions[0] = rowOfPlayer;
  100. playerPositions[1] = colOfPlayer;
  101. }
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement