RGAlex

O2. Treasure Hunt / O6. Mid Exam Retake

Feb 26th, 2021
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.57 KB | None | 0 0
  1. package MidExam.O6;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.List;
  6. import java.util.Scanner;
  7. import java.util.stream.Collectors;
  8.  
  9. public class O2TreasureHunt {
  10.     public static void main(String[] args) {
  11.         Scanner scanner = new Scanner(System.in);
  12.         List<String> test = Arrays.stream(scanner.nextLine().split("\\|")).
  13.                 map(String::toString).collect(Collectors.toList());
  14.  
  15.         String input = scanner.nextLine();
  16.  
  17.         while (!input.equals("Yohoho!")) {
  18.  
  19.             List<String> a = Arrays.stream((input.split(" "))).
  20.                     map(String::toString).collect(Collectors.toList());
  21.             String command = a.get(0);
  22.             switch (command) {
  23.                 case "Loot":
  24.                     for (int i = 1; i < a.size(); i++) {
  25.                         if (!test.contains(a.get(i))) {
  26.                             test.add(0, a.get(i));
  27.                         }
  28.                     }
  29.                     break;
  30.                 case "Drop":
  31.                     int index = Integer.parseInt(a.get(1));
  32.                     if (index < 0 || index >= test.size()) {
  33.                         break;
  34.                     }
  35.                     String item = test.get(index);
  36.                     test.remove(index);
  37.                     test.add(item);
  38.                     break;
  39.                 case "Steal":
  40.                     index = Integer.parseInt(a.get(1));
  41.                     List<String> stolenItems = new ArrayList<>();
  42.                     String output = "";
  43.                    if (index>= test.size()){
  44.                        output =String.join(", ", test);
  45.                        System.out.println(output);
  46.                        test.clear();
  47.                        break;
  48.                    }else{
  49.                        for (int i = 0; i < index; i++) {
  50.                            int lastIndex = test.size() - 1;
  51.                            stolenItems.add(0, test.remove(lastIndex));
  52.                        }
  53.  
  54.                        output = String.join(", ", stolenItems);
  55.                        System.out.println(output);
  56.                    }
  57.                     break;
  58.             }
  59.             input = scanner.nextLine();
  60.         }
  61.  
  62.         if (test.size() > 0) {
  63.             double sum = 0;
  64.             for (String s : test) {
  65.                 sum += s.length();
  66.             }
  67.             System.out.printf("Average treasure gain: %.2f pirate credits.", sum / test.size());
  68.         } else {
  69.             System.out.println("Failed treasure hunt.");
  70.         }
  71.  
  72.     }
  73. }
  74.  
Advertisement
Add Comment
Please, Sign In to add comment