svephoto

Treasure Hunt [Java]

Jul 5th, 2021 (edited)
882
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.39 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 TreasureHunt {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.  
  10.         List<String> initialLoot = Arrays.stream(scanner.nextLine().split("\\|"))
  11.                 .collect(Collectors.toList());
  12.  
  13.         String line = scanner.nextLine();
  14.  
  15.         while (!"Yohoho!".equals(line)) {
  16.             List<String> treasure = Arrays.stream(line.split("\\s+")).collect(Collectors.toList());
  17.             String command = treasure.get(0);
  18.  
  19.             switch (command) {
  20.                 case "Loot":
  21.                     for (int i = 1; i < treasure.size(); i++) {
  22.                         if (!initialLoot.contains(treasure.get(i))) {
  23.                             initialLoot.add(0, treasure.get(i));
  24.                         }
  25.                     }
  26.  
  27.                     break;
  28.                 case "Drop":
  29.                     int index = Integer.parseInt(treasure.get(1));
  30.  
  31.                     if (index >= 0 && index < initialLoot.size()) {
  32.                         String item = initialLoot.get(index);
  33.                         initialLoot.remove(index);
  34.                         initialLoot.add(item);
  35.                     }
  36.  
  37.                     break;
  38.                 case "Steal":
  39.                     int count = Integer.parseInt(treasure.get(1));
  40.  
  41.                     if (count > initialLoot.size()) {
  42.                         count = initialLoot.size();
  43.                     }
  44.  
  45.                     List<String> subList = initialLoot.subList(initialLoot.size() - count, initialLoot.size());
  46.  
  47.                     System.out.println(String.join(", ", subList));
  48.  
  49.                     initialLoot = initialLoot.subList(0, initialLoot.size() - count);
  50.                    
  51.                     break;
  52.             }
  53.  
  54.             line = scanner.nextLine();
  55.         }
  56.  
  57.         if (!initialLoot.isEmpty()) {
  58.             int sumLengthItem = 0;
  59.  
  60.             for (String currentItem : initialLoot) {
  61.                 sumLengthItem += currentItem.length();
  62.             }
  63.  
  64.             double averageGain = sumLengthItem * 1.0 / initialLoot.size();
  65.  
  66.             System.out.printf("Average treasure gain: %.2f pirate credits.%n", averageGain);
  67.         } else {
  68.             System.out.println("Failed treasure hunt.");
  69.         }
  70.     }
  71. }
  72.  
Add Comment
Please, Sign In to add comment