Yargi

LegendaryFarming

Jul 16th, 2020
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.81 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class LegendaryFarming {
  4.     public static void main(String[] args) {
  5.         Scanner sc = new Scanner(System.in);
  6.  
  7.         Inventory x = new Inventory();
  8.         boolean quit = true;
  9.  
  10.         while (quit){
  11.  
  12.             String[] input = sc.nextLine().toLowerCase().split(" ");
  13.             for (int i = 1; i < input.length; i += 2){
  14.  
  15.                 String key = input[i];
  16.                 int value = Integer.parseInt(input[i - 1]);
  17.                 x.addItem(key, value);
  18.  
  19.                 if (x.checkQuantity()){
  20.  
  21.                     quit = false;
  22.                     break;
  23.                 }
  24.             }
  25.         }
  26.         x.printSortedInventar();
  27.         x.printSortedJunk();
  28.     }
  29. }
  30.  
  31. class Inventory{
  32.  
  33.     private final LinkedHashMap<String, Integer> inventar;
  34.     private final LinkedHashMap<String, Integer> junkmap;
  35.  
  36.     public Inventory(){
  37.        
  38.         inventar = new LinkedHashMap<>();
  39.         List<String> res = Arrays.asList("shards", "fragments", "motes");
  40.         res.forEach(e -> inventar.put(e, 0));
  41.         junkmap = new LinkedHashMap<>();
  42.     }
  43.  
  44.     public void addItem(String key, int value){
  45.        
  46.         if (inventar.containsKey(key)){
  47.        
  48.             inventar.put(key, inventar.get(key) + value);
  49.         }
  50.         else {
  51.        
  52.             junkmap.putIfAbsent(key, 0);
  53.             junkmap.put(key, junkmap.get(key) + value);
  54.         }
  55.     }
  56.  
  57.     public boolean checkQuantity(){
  58.        
  59.         for(Map.Entry<String, Integer> entry : inventar.entrySet()){
  60.        
  61.             if (!(inventar.get(entry.getKey()) < 250)){
  62.        
  63.                 switch (entry.getKey()){
  64.        
  65.                     case "shards":
  66.                         System.out.println("Shadowmourne obtained!");
  67.                         break;
  68.        
  69.                     case "fragments":
  70.                         System.out.println("Valanyr obtained!");
  71.                         break;
  72.        
  73.                     case "motes":
  74.                         System.out.println("Dragonwrath obtained!");
  75.                         break;
  76.                 }
  77.                 inventar.put(entry.getKey(), inventar.get(entry.getKey()) - 250);
  78.                 return true;
  79.             }
  80.         }
  81.         return false;
  82.     }
  83.  
  84.     public void printSortedInventar(){
  85.        
  86.         inventar.entrySet().stream()
  87.                 .sorted(Map.Entry.comparingByKey())
  88.                 .sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
  89.                 .forEach(e -> System.out.println(e.getKey() + ": " + e.getValue()));
  90.     }
  91.  
  92.     public void printSortedJunk(){
  93.        
  94.         junkmap.entrySet().stream()
  95.                 .sorted(Map.Entry.comparingByKey())
  96.                 .forEach(e -> System.out.println(e.getKey() + ": " + e.getValue()));
  97.     }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment