Advertisement
Guest User

ArcheryTournament

a guest
Feb 27th, 2020
412
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.13 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.util.Scanner;
  3.  
  4. public class ArcheryTournament {
  5.     public static void main(String[] args) {
  6.         Scanner scanner = new Scanner(System.in);
  7.  
  8.         int[] targetNumbers = Arrays.stream(scanner.nextLine().split("\\|+")).mapToInt(e -> Integer.parseInt(e)).toArray();
  9.  
  10.         String[] command = scanner.nextLine().split("@+");
  11.         int sumPoints = 0;
  12.  
  13.         while (!command[0].equals("Game over")) {
  14.             switch (command[0]) {
  15.                 case "Shoot Left":
  16.                     int startIndexLeft = Integer.parseInt(command[1]);
  17.                     int lengthLeft = Integer.parseInt(command[2]);
  18.                     if (startIndexLeft >= 0 && startIndexLeft < targetNumbers.length) {
  19.                         int targetIndex = startIndexLeft - lengthLeft;
  20.                         while (targetIndex < 0) {
  21.                             targetIndex = targetNumbers.length + targetIndex;
  22.                         }
  23.                         if (targetNumbers[targetIndex] >= 5) {
  24.                             targetNumbers[targetIndex] -= 5;
  25.                             sumPoints += 5;
  26.                         } else {
  27.                             sumPoints += targetNumbers[targetIndex];
  28.                             targetNumbers[targetIndex] = 0;
  29.                         }
  30.                     }
  31.                     break;
  32.                 case "Shoot Right":
  33.                     int startIndexRight = Integer.parseInt(command[1]);
  34.                     int lengthRight = Integer.parseInt(command[2]);
  35.                     if (startIndexRight >= 0 && startIndexRight < targetNumbers.length) {
  36.                         int targetIndex = startIndexRight + lengthRight;
  37.                         while (targetIndex >= targetNumbers.length) {
  38.                             targetIndex = targetIndex - targetNumbers.length;
  39.                         }
  40.                         if (targetNumbers[targetIndex] >= 5) {
  41.                             targetNumbers[targetIndex] -= 5;
  42.                             sumPoints += 5;
  43.                         } else {
  44.                             sumPoints += targetNumbers[targetIndex];
  45.                             targetNumbers[targetIndex] = 0;
  46.                         }
  47.                     }
  48.                     break;
  49.                 case "Reverse":
  50.                     reverseNumbers(targetNumbers);
  51.                     break;
  52.             }
  53.             command = scanner.nextLine().split("@+");
  54.         }
  55.         for (int i = 0; i < targetNumbers.length - 1; i++) {
  56.             System.out.print(targetNumbers[i] + " - ");
  57.         }
  58.         System.out.println(targetNumbers[targetNumbers.length - 1]);
  59.         System.out.printf("Iskren finished the archery tournament with %d points!", sumPoints);
  60.     }
  61.  
  62.     private static int[] reverseNumbers(int[] targetNumbers) {
  63.         for (int i = 0; i < targetNumbers.length / 2; i++) {
  64.             int tempNumber = targetNumbers[i];
  65.             targetNumbers[i] = targetNumbers[targetNumbers.length - 1 - i];
  66.             targetNumbers[targetNumbers.length - 1 - i] = tempNumber;
  67.         }
  68.         return targetNumbers;
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement