Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Arrays;
- import java.util.List;
- import java.util.Scanner;
- import java.util.stream.Collectors;
- public class MovingTargetList {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- List<Integer> targets =
- Arrays.stream(scanner.nextLine()
- .split(" "))
- .map(Integer::parseInt)
- .collect(Collectors.toList());
- while (true) {
- String line = scanner.nextLine();
- if ("End".equals(line)) {
- break;
- }
- String[] command = line.split(" ");
- switch (command[0]) {
- case "Shoot":
- int indexShoot = Integer.parseInt(command[1]);
- int power = Integer.parseInt(command[2]);
- if (indexShoot >=0 && indexShoot <= targets.size() - 1) {
- int oldValue = targets.get(indexShoot);
- targets.set(indexShoot, oldValue - power);
- } else {
- continue;
- }
- if (targets.get(indexShoot) <= 0) {
- targets.remove(indexShoot);
- }
- break;
- case "Add":
- int indexAdd = Integer.parseInt(command[1]);
- int valueAdd = Integer.parseInt(command[2]);
- if ((indexAdd >=0 && indexAdd <= targets.size() - 1 && valueAdd > 0)) {
- targets.add(indexAdd, valueAdd);
- } else {
- System.out.println("Invalid placement!");
- continue;
- }
- break;
- case "Strike":
- int indexStrike = Integer.parseInt(command[1]);
- int strikeRadius = Integer.parseInt(command[2]);
- if (indexStrike - strikeRadius >= 0 && indexStrike + strikeRadius < targets.size() -1) {
- for (int i = indexStrike + strikeRadius; i >= indexStrike - strikeRadius; i--) {
- targets.remove(i);
- }
- } else {
- System.out.println("Strike missed!");
- continue;
- }
- break;
- }
- }
- System.out.println(targets.toString().replaceAll("[\\[\\]]", "").replaceAll(", ", "|"));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement