Advertisement
N_Damyanov

Bomb Field

Feb 23rd, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.76 KB | None | 0 0
  1. package StacksAndQueues;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class BombField {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.         int n = Integer.parseInt(scanner.nextLine());
  10.         String[] commands = scanner.nextLine().split(",");
  11.         char[][] field = new char[n][n];
  12.         int boomdsCount = 0;
  13.         int[] exit = new int[2];
  14.         int[] sapper = new int[2];
  15.         boolean end = false;
  16.  
  17.         for (int i = 0; i < n; i++) {
  18.             String line = scanner.nextLine().trim().replaceAll(" ", "");
  19.             char[] chars = line.toCharArray();
  20.             for (int j = 0; j < chars.length; j++) {
  21.                 if (chars[j] == 'B') {
  22.                     boomdsCount++;
  23.                 } else if (chars[j] == 'e') {
  24.                     exit[0] = i;
  25.                     exit[1] = j;
  26.                 } else if (chars[j] == 's') {
  27.                     sapper[0] = i;
  28.                     sapper[1] = j;
  29.                 }
  30.                 field[i][j] = chars[j];
  31.             }
  32.         }
  33.  
  34.         for (int i = 0; i < commands.length; i++) {
  35.             switch (commands[i]) {
  36.                 case "left":
  37.                     if (sapper[1] != 0) {
  38.                         if (field[sapper[0]][sapper[1] - 1] == 'B') {
  39.                             System.out.println("You found a bomb!");
  40.                             field[sapper[0]][sapper[1] - 1] = '+';
  41.                             boomdsCount--;
  42.                             sapper[1]--;
  43.                         } else {
  44.                             sapper[1]--;
  45.                         }
  46.                     }
  47.                     break;
  48.                 case "right":
  49.                     if (sapper[1] != n - 1) {
  50.                         if (field[sapper[0]][sapper[1] + 1] == 'B') {
  51.                             System.out.println("You found a bomb!");
  52.                             field[sapper[0]][sapper[1] + 1] = '+';
  53.                             boomdsCount--;
  54.                             sapper[1]++;
  55.                         } else {
  56.                             sapper[1]++;
  57.                         }
  58.                     }
  59.                     break;
  60.                 case "up":
  61.                     if (sapper[0] != 0) {
  62.                         if (field[sapper[0] - 1][sapper[1]] == 'B') {
  63.                             System.out.println("You found a bomb!");
  64.                             field[sapper[0] - 1][sapper[1]] = '+';
  65.                             boomdsCount--;
  66.                             sapper[0]--;
  67.                         } else {
  68.                             sapper[0]--;
  69.                         }
  70.                     }
  71.                     break;
  72.                 case "down":
  73.                     if (sapper[0] != n - 1) {
  74.                         if (field[sapper[0] + 1][sapper[1]] == 'B') {
  75.                             System.out.println("You found a bomb!");
  76.                             field[sapper[0] + 1][sapper[1]] = '+';
  77.                             boomdsCount--;
  78.                             sapper[0]++;
  79.                         } else {
  80.                             sapper[0]++;
  81.                         }
  82.                     }
  83.                     break;
  84.             }
  85.  
  86.             if (boomdsCount == 0) {
  87.                 System.out.println("Congratulations! You found all bombs!");
  88.                 end = true;
  89.                 break;
  90.             } else if (sapper[0] == exit[0] && sapper[1] == exit[1]) {
  91.                 System.out.printf("END! %d bombs left on the field", boomdsCount);
  92.                 end = true;
  93.                 break;
  94.             }
  95.         }
  96.         if (!end) {
  97.             System.out.printf("%d bombs left on the field. Sapper position: (%d,%d)", boomdsCount, sapper[0], sapper[1]);
  98.         }
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement