Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import java.util.Scanner;
- public class OldExam_Matrix_Space_Station_Establishment {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int n = Integer.parseInt(scanner.nextLine());
- char[][] matrix = new char[n][];
- for (int i = 0; i < n; i++) {
- matrix[i] = scanner.nextLine().toCharArray();
- }
- int rowStart = 0;
- int colStart = 0;
- List<Integer> hole = new ArrayList<>();
- for (int i = 0; i < matrix.length; i++) {
- for (int j = 0; j < matrix[i].length; j++) {
- if (matrix[i][j] == 'S') {
- rowStart = i;
- colStart = j;
- }
- if (matrix[i][j] == 'O') {
- hole.add(i);
- hole.add(j);
- }
- }
- }
- int rowHoleOne = -1;
- int colHoleOne = -1;
- int rowHoleTwo = -1;
- int colHoleTwo = -1;
- if (hole.size() > 0) {
- rowHoleOne = hole.get(0);
- colHoleOne = hole.get(1);
- rowHoleTwo = hole.get(2);
- colHoleTwo = hole.get(3);
- }
- int starsEnerjy = 0;
- int outOfGalaxy = 0;
- while (starsEnerjy < 50 && outOfGalaxy == 0) {
- String move = scanner.nextLine();
- matrix[rowStart][colStart] = '-';
- switch (move) {
- case "up":
- rowStart--;
- if (rowStart < 0) {
- outOfGalaxy = 1;
- }
- break;
- case "down":
- rowStart++;
- if (rowStart == matrix.length) {
- outOfGalaxy = 1;
- }
- break;
- case "left":
- colStart--;
- if (colStart < 0) {
- outOfGalaxy = 1;
- }
- break;
- case "right":
- colStart++;
- if (colStart == matrix.length) {
- outOfGalaxy = 1;
- }
- break;
- }
- if (outOfGalaxy > 0) {
- System.out.println("Bad news, the spaceship went to the void.");
- System.out.printf("Star power collected: %d", starsEnerjy);
- System.out.println();
- printMatrix(matrix);
- return;
- }
- if (matrix[rowStart][colStart] == 'O') {
- if (matrix[rowStart][colStart] == matrix[rowHoleOne][colHoleOne]) {
- matrix[rowStart][colStart] = '-';
- rowStart = rowHoleTwo;
- colStart = colHoleTwo;
- } else if (matrix[rowStart][colStart] == matrix[rowHoleTwo][colHoleTwo]) {
- matrix[rowStart][colStart] = '-';
- rowStart = rowHoleOne;
- colStart = colHoleOne;
- }
- } else if (Character.isDigit(matrix[rowStart][colStart])) {
- starsEnerjy += (matrix[rowStart][colStart]) - '0';
- }
- }
- matrix[rowStart][colStart] = 'S';
- System.out.println("Good news! Stephen succeeded in collecting enough star power!");
- System.out.printf("Star power collected: %d", starsEnerjy);
- System.out.println();
- printMatrix(matrix);
- // System.out.println(matcher.toString().replaceAll("[\\[\\],]", ""));
- }
- private static void printMatrix(char[][] matrix) {
- for (int i = 0; i < matrix.length; i++) {
- for (int j = 0; j < matrix[i].length; j++) {
- System.out.print(matrix[i][j]);
- }
- System.out.println();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement