Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package PredvaritelnoAdvanced.Tesove.SampleExam;
- import java.util.Arrays;
- import java.util.Scanner;
- public class Sneaking {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int size = Integer.parseInt(scanner.nextLine());
- char[][] mas = new char[size][];
- int rowNick = 0;
- int colNick = 0;
- int rowSam = 0;
- int colSam = 0;
- for (int row = 0; row < mas.length; row++) {
- String[] data = scanner.nextLine().split("");
- mas[row] = new char[data.length];
- for (int col = 0; col < mas[row].length; col++) {
- mas[row][col] = data[col].charAt(0);
- if (mas[row][col] == 'N') {
- rowNick = row;
- colNick = col;
- } else if (mas[row][col] == 'S') {
- rowSam = row;
- colSam = col;
- }
- }
- }
- String[] commands = scanner.nextLine().split("");
- loop:
- for (int i = 0; i < commands.length; i++) {
- for (int row = 0; row < mas.length; row++) {
- for (int col = 0; col < mas[row].length; col++) {
- if (mas[row][col] == 'b') {
- if (col + 1 == mas[row].length) {
- mas[row][col] = 'd';
- } else {
- mas[row][col] = '.';
- mas[row][col + 1] = 'b';
- }
- if (isEnemyOnRow(mas, rowSam, rowNick, colNick)) {
- break loop;
- }
- break;
- } else if (mas[row][col] == 'd') {
- if (col - 1 == -1) {
- mas[row][col] = 'b';
- } else {
- mas[row][col] = '.';
- mas[row][col - 1] = 'd';
- }
- if (isEnemyOnRow(mas, rowSam, rowNick, colNick)) {
- break loop;
- }
- break;
- }
- }
- }
- switch (commands[i]) {
- case "U":
- mas[rowSam][colSam] = '.';
- mas[rowSam - 1][colSam] = 'S';
- rowSam--;
- break;
- case "D":
- mas[rowSam][colSam] = '.';
- mas[rowSam + 1][colSam] = 'S';
- rowSam++;
- break;
- case "R":
- mas[rowSam][colSam] = '.';
- mas[rowSam][colSam + 1] = 'S';
- colSam++;
- break;
- case "L":
- mas[rowSam][colSam] = '.';
- mas[rowSam][colSam - 1] = 'S';
- colSam--;
- break;
- }
- if (isEnemyOnRow(mas, rowSam, rowNick, colNick)) {
- break;
- }
- }
- if (mas[rowNick][colNick] == 'X') {
- System.out.println("Nikoladze killed!");
- } else if (mas[rowSam][colSam] == 'X') {
- System.out.println("Sam died at " + rowSam + ", " + colSam);
- }
- for (char[] arr : mas) {
- System.out.println(Arrays.toString(arr).replaceAll("[\\[\\], ]", ""));
- }
- }
- private static boolean isEnemyOnRow(char[][] mas, int rowSam, int rowNick, int colNick) {
- for (int searchOnCol = 0; searchOnCol < mas[rowSam].length; searchOnCol++) {
- if (mas[rowSam][searchOnCol] == 'b') {
- for (int colToRight = searchOnCol + 1; colToRight < mas[rowSam].length; colToRight++) {
- if (mas[rowSam][colToRight] == 'S') {
- mas[rowSam][colToRight] = 'X';
- return true;
- }
- }
- return false;
- } else if (mas[rowSam][searchOnCol] == 'd') {
- for (int colToLeft = searchOnCol - 1; colToLeft >= 0; colToLeft--) {
- if (mas[rowSam][colToLeft] == 'S') {
- mas[rowSam][colToLeft] = 'X';
- return true;
- }
- }
- return false;
- } else if (mas[rowSam][searchOnCol] == 'N') {
- mas[rowNick][colNick] = 'X';
- return true;
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement