SHARE
TWEET

Untitled

shniaga May 27th, 2019 83 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package JavaAdvancedExam_24February2019;
  2.  
  3. import java.util.Arrays;
  4. import java.util.Scanner;
  5.  
  6. public class TronRacers {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.  
  10.         int rows = Integer.parseInt(scanner.nextLine());
  11.  
  12.  
  13.         String[][] matrix = new String[rows][rows];
  14.         int firstRacerRow = 0;
  15.         int firstRacerCol = 0;
  16.         int secondRacerRow = 0;
  17.         int secondRacerCol = 0;
  18.  
  19.         for (int i = 0; i < rows; i++) {
  20.             String[] colData = scanner.nextLine().split("");
  21.  
  22.             for (int j = 0; j < rows; j++) {
  23.                 matrix[i][j] = colData[j];
  24.                 if (matrix[i][j].equals("f")) {
  25.                     firstRacerRow = i;
  26.                     firstRacerCol = j;
  27.                 } else if (matrix[i][j].equals("s")) {
  28.                     secondRacerRow = i;
  29.                     secondRacerCol = j;
  30.                 }
  31.             }
  32.         }
  33.         boolean isDead = false;
  34.         while (true) {
  35.  
  36.             if (isDead) {
  37.                 break;
  38.             }
  39.             String[] commands = scanner.nextLine().split("\\s+");
  40.             String firstCommand = commands[0];
  41.             String secondCommand = commands[1];
  42.  
  43.             switch (firstCommand) {
  44.                 case "down":
  45.                     if (firstRacerRow + 1 > matrix.length - 1) {
  46.                         firstRacerRow = -1;
  47.                     }
  48.                     if (matrix[firstRacerRow + 1][firstRacerCol].equals("s")) {
  49.                         matrix[firstRacerRow + 1][firstRacerCol] = "x";
  50.                         isDead = true;
  51.                         break;
  52.                     } else {
  53.                         matrix[firstRacerRow + 1][firstRacerCol] = "f";
  54.                         firstRacerRow = firstRacerRow + 1;
  55.                     }
  56.                     break;
  57.                 case "up":
  58.                     if (firstRacerRow - 1 < 0) {
  59.                         firstRacerRow = matrix.length;
  60.                     }
  61.                     if (matrix[firstRacerRow - 1][firstRacerCol].equals("s")) {
  62.                         matrix[firstRacerRow - 1][firstRacerCol] = "x";
  63.                         isDead = true;
  64.                         break;
  65.                     } else {
  66.                         matrix[firstRacerRow - 1][firstRacerCol] = "f";
  67.                         firstRacerRow = firstRacerRow - 1;
  68.                     }
  69.                     break;
  70.                 case "left":
  71.                     if (firstRacerCol - 1 < 0) {
  72.                         firstRacerCol = matrix[0].length;
  73.                     }
  74.                     if (matrix[firstRacerRow][firstRacerCol - 1].equals("s")) {
  75.                         matrix[firstRacerRow][firstRacerCol - 1] = "x";
  76.                         isDead = true;
  77.                         break;
  78.                     } else {
  79.                         matrix[firstRacerRow][firstRacerCol - 1] = "f";
  80.                         firstRacerCol = firstRacerCol - 1;
  81.                     }
  82.                     break;
  83.                 case "right":
  84.                     if (firstRacerCol + 1 > matrix.length - 1) {
  85.                         firstRacerCol = -1;
  86.                     }
  87.                     if (matrix[firstRacerRow][firstRacerCol + 1].equals("s")) {
  88.                         matrix[firstRacerRow][firstRacerCol + 1] = "x";
  89.                         isDead = true;
  90.                         break;
  91.                     } else {
  92.                         matrix[firstRacerRow][firstRacerCol + 1] = "f";
  93.                         firstRacerCol = firstRacerCol + 1;
  94.                     }
  95.                     break;
  96.             }
  97.             switch (secondCommand) {
  98.  
  99.                 case "down":
  100.                     if (isDead) {
  101.                         break;
  102.                     }
  103.                     if (secondRacerRow + 1 > matrix.length - 1) {
  104.                         secondRacerRow = -1;
  105.                     }
  106.                     if (matrix[secondRacerRow + 1][secondRacerCol].equals("f")) {
  107.                         matrix[secondRacerRow + 1][secondRacerCol] = "x";
  108.                         isDead = true;
  109.                         break;
  110.                     } else {
  111.                         matrix[secondRacerRow + 1][secondRacerCol] = "s";
  112.                         secondRacerRow = secondRacerRow + 1;
  113.                     }
  114.                     break;
  115.                 case "up":
  116.                     if (isDead) {
  117.                         break;
  118.                     }
  119.                     if (secondRacerRow - 1 < 0) {
  120.                         secondRacerRow = matrix.length;
  121.                     }
  122.                     if (matrix[secondRacerRow - 1][secondRacerCol].equals("f")) {
  123.                         matrix[secondRacerRow - 1][secondRacerCol] = "x";
  124.                         isDead = true;
  125.                         break;
  126.                     } else {
  127.                         matrix[secondRacerRow - 1][secondRacerCol] = "s";
  128.                         secondRacerRow = secondRacerRow - 1;
  129.                     }
  130.                     break;
  131.                 case "left":
  132.                     if (isDead) {
  133.                         break;
  134.                     }
  135.                     if (secondRacerCol - 1 < 0) {
  136.                         secondRacerCol = matrix[0].length;
  137.                     }
  138.                     if (matrix[secondRacerRow][secondRacerCol - 1].equals("f")) {
  139.                         matrix[secondRacerRow][secondRacerCol - 1] = "x";
  140.                         isDead = true;
  141.                         break;
  142.                     } else {
  143.                         matrix[secondRacerRow][secondRacerCol - 1] = "s";
  144.                         secondRacerCol = secondRacerCol - 1;
  145.                     }
  146.                     break;
  147.                 case "right":
  148.                     if (isDead) {
  149.                         break;
  150.                     }
  151.                     if (secondRacerCol + 1 > matrix.length - 1) {
  152.                         secondRacerCol = -1;
  153.                     }
  154.                     if (matrix[secondRacerRow][secondRacerCol + 1].equals("f")) {
  155.                         matrix[secondRacerRow][secondRacerCol + 1] = "x";
  156.                         isDead = true;
  157.                         break;
  158.                     } else {
  159.                         matrix[secondRacerRow][secondRacerCol + 1] = "s";
  160.                         secondRacerCol = secondRacerCol + 1;
  161.                     }
  162.                     break;
  163.             }
  164.         }
  165.         printMatrix(matrix);
  166.  
  167.  
  168.     }
  169.  
  170.     private static void printMatrix(String[][] matrix) {
  171.         for (int i = 0; i < matrix.length; i++) {
  172.             for (int j = 0; j < matrix[0].length; j++) {
  173.                 System.out.print(matrix[i][j]);
  174.             }
  175.             System.out.println();
  176.  
  177.         }
  178.     }
  179. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top