Advertisement
nikeza

Space Station Establishment

Oct 20th, 2019
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.83 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.List;
  4. import java.util.Scanner;
  5.  
  6. public class OldExam_Matrix_Space_Station_Establishment {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.  
  10.         int n = Integer.parseInt(scanner.nextLine());
  11.         char[][] matrix = new char[n][];
  12.         for (int i = 0; i < n; i++) {
  13.             matrix[i] = scanner.nextLine().toCharArray();
  14.         }
  15.         int rowStart = 0;
  16.         int colStart = 0;
  17.         List<Integer> hole = new ArrayList<>();
  18.         for (int i = 0; i < matrix.length; i++) {
  19.             for (int j = 0; j < matrix[i].length; j++) {
  20.                 if (matrix[i][j] == 'S') {
  21.                     rowStart = i;
  22.                     colStart = j;
  23.                 }
  24.                 if (matrix[i][j] == 'O') {
  25.                     hole.add(i);
  26.                     hole.add(j);
  27.                 }
  28.             }
  29.         }
  30.         int rowHoleOne = -1;
  31.         int colHoleOne = -1;
  32.         int rowHoleTwo = -1;
  33.         int colHoleTwo = -1;
  34.         if (hole.size() > 0) {
  35.             rowHoleOne = hole.get(0);
  36.             colHoleOne = hole.get(1);
  37.             rowHoleTwo = hole.get(2);
  38.             colHoleTwo = hole.get(3);
  39.         }
  40.         int starsEnerjy = 0;
  41.         int outOfGalaxy = 0;
  42.         while (starsEnerjy < 50 && outOfGalaxy == 0) {
  43.             String move = scanner.nextLine();
  44.             matrix[rowStart][colStart] = '-';
  45.             switch (move) {
  46.                 case "up":
  47.                     rowStart--;
  48.                     if (rowStart < 0) {
  49.                         outOfGalaxy = 1;
  50.                     }
  51.                     break;
  52.                 case "down":
  53.                     rowStart++;
  54.                     if (rowStart == matrix.length) {
  55.                         outOfGalaxy = 1;
  56.                     }
  57.                     break;
  58.                 case "left":
  59.                     colStart--;
  60.                     if (colStart < 0) {
  61.                         outOfGalaxy = 1;
  62.                     }
  63.                     break;
  64.                 case "right":
  65.                     colStart++;
  66.                     if (colStart == matrix.length) {
  67.                         outOfGalaxy = 1;
  68.                     }
  69.                     break;
  70.             }
  71.             if (outOfGalaxy > 0) {
  72.                 System.out.println("Bad news, the spaceship went to the void.");
  73.                 System.out.printf("Star power collected: %d", starsEnerjy);
  74.                 System.out.println();
  75.                 printMatrix(matrix);
  76.                 return;
  77.             }
  78.  
  79.             if (matrix[rowStart][colStart] == 'O') {
  80.                 if (matrix[rowStart][colStart] == matrix[rowHoleOne][colHoleOne]) {
  81.                     matrix[rowStart][colStart] = '-';
  82.                     rowStart = rowHoleTwo;
  83.                     colStart = colHoleTwo;
  84.                 } else if (matrix[rowStart][colStart] == matrix[rowHoleTwo][colHoleTwo]) {
  85.                     matrix[rowStart][colStart] = '-';
  86.                     rowStart = rowHoleOne;
  87.                     colStart = colHoleOne;
  88.                 }
  89.  
  90.             } else if (Character.isDigit(matrix[rowStart][colStart])) {
  91.                 starsEnerjy += (matrix[rowStart][colStart]) - '0';
  92.             }
  93.  
  94.         }
  95.  
  96.  
  97.         matrix[rowStart][colStart] = 'S';
  98.         System.out.println("Good news! Stephen succeeded in collecting enough star power!");
  99.         System.out.printf("Star power collected: %d", starsEnerjy);
  100.  
  101.  
  102.         System.out.println();
  103.         printMatrix(matrix);
  104.  
  105.  
  106.         //        System.out.println(matcher.toString().replaceAll("[\\[\\],]", ""));
  107.  
  108.     }
  109.  
  110.     private static void printMatrix(char[][] matrix) {
  111.         for (int i = 0; i < matrix.length; i++) {
  112.             for (int j = 0; j < matrix[i].length; j++) {
  113.                 System.out.print(matrix[i][j]);
  114.             }
  115.             System.out.println();
  116.         }
  117.     }
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement