Advertisement
Guest User

MovingTargets

a guest
Apr 7th, 2020
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.56 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.util.List;
  3. import java.util.Scanner;
  4. import java.util.stream.Collectors;
  5.  
  6. public class MovingTargetList {
  7.  
  8.     public static void main(String[] args) {
  9.         Scanner scanner = new Scanner(System.in);
  10.  
  11.         List<Integer> targets =
  12.                 Arrays.stream(scanner.nextLine()
  13.                         .split(" "))
  14.                         .map(Integer::parseInt)
  15.                         .collect(Collectors.toList());
  16.  
  17.         while (true) {
  18.             String line = scanner.nextLine();
  19.             if ("End".equals(line)) {
  20.                 break;
  21.             }
  22.             String[] command = line.split(" ");
  23.  
  24.             switch (command[0]) {
  25.                 case "Shoot":
  26.                     int indexShoot = Integer.parseInt(command[1]);
  27.                     int power = Integer.parseInt(command[2]);
  28.                     if (indexShoot >=0 && indexShoot <= targets.size() - 1) {
  29.                         int oldValue = targets.get(indexShoot);
  30.                         targets.set(indexShoot, oldValue - power);
  31.                     } else {
  32.                         continue;
  33.                     }
  34.                     if (targets.get(indexShoot) <= 0) {
  35.                         targets.remove(indexShoot);
  36.                     }
  37.                     break;
  38.                 case "Add":
  39.                     int indexAdd = Integer.parseInt(command[1]);
  40.                     int valueAdd = Integer.parseInt(command[2]);
  41.                     if ((indexAdd >=0 && indexAdd <= targets.size() - 1 && valueAdd > 0)) {
  42.                         targets.add(indexAdd, valueAdd);
  43.                     } else {
  44.                         System.out.println("Invalid placement!");
  45.                         continue;
  46.                     }
  47.                     break;
  48.                 case "Strike":
  49.                     int indexStrike = Integer.parseInt(command[1]);
  50.                     int strikeRadius = Integer.parseInt(command[2]);
  51.  
  52.                     if (indexStrike - strikeRadius >= 0 && indexStrike + strikeRadius < targets.size() -1) {
  53.                         for (int i = indexStrike + strikeRadius; i >= indexStrike - strikeRadius; i--) {
  54.                             targets.remove(i);
  55.  
  56.                         }
  57.                     } else {
  58.                         System.out.println("Strike missed!");
  59.                         continue;
  60.                     }
  61.                     break;
  62.  
  63.  
  64.             }
  65.  
  66.         }
  67.         System.out.println(targets.toString().replaceAll("[\\[\\]]", "").replaceAll(", ",  "|"));
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement