Advertisement
lifesaver800

Battle Manager

Apr 1st, 2020
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.25 KB | None | 0 0
  1. import java.util.Map;
  2. import java.util.Scanner;
  3. import java.util.TreeMap;
  4.  
  5. public class BattleManager {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.         Map<String, Integer> health = new TreeMap<>();
  9.         Map<String, Integer> energy = new TreeMap<>();
  10.  
  11.         String input = scanner.nextLine();
  12.  
  13.         while (!"Results".equals(input)) {
  14.             String[] tokens = input.split(":");
  15.             String command = tokens[0];
  16.             String person = tokens[1];
  17.  
  18.             switch (command) {
  19.                 case "Add":
  20.                     int newHealth = Integer.parseInt(tokens[2]);
  21.  
  22.                     if (health.containsKey(person)) {
  23.                         int currHealth = health.get(person);
  24.                         health.put(person, currHealth + newHealth);
  25.                     }
  26.                     health.putIfAbsent(person, newHealth);
  27.                     energy.putIfAbsent(person, Integer.parseInt(tokens[3]));
  28.                     break;
  29.                 case "Attack":
  30.                     String defender = tokens[2];
  31.                     int damage = Integer.parseInt(tokens[3]);
  32.                     int defenderHealth = health.get(defender);
  33.                     int attackerEnergy = energy.get(person);
  34.  
  35.                     if (health.containsKey(person) && energy.containsKey(person) && health.containsKey(defender) &&
  36.                             energy.containsKey(defender)) {
  37.                         health.put(defender, defenderHealth - damage);
  38.                         if (health.get(defender) <= 0) {
  39.                             health.remove(defender);
  40.                             energy.remove(defender);
  41.                             System.out.println(String.format("%s was disqualified!", defender));
  42.                         }
  43.                         energy.put(person, attackerEnergy - 1);
  44.                         if (energy.get(person) == 0) {
  45.                             energy.remove(person);
  46.                             health.remove(person);
  47.                             System.out.println(String.format("%s was disqualified!", person));
  48.                         }
  49.                     }
  50.                     break;
  51.                 case "Delete":
  52.                     if (tokens[1].equals("All")){
  53.                         health.clear();
  54.                         energy.clear();
  55.                     }else {
  56.                         if (health.containsKey(person) && energy.containsKey(person)){
  57.                             health.remove(person);
  58.                             energy.remove(person);
  59.                         }
  60.                     }
  61.                     break;
  62.             }
  63.  
  64.             input = scanner.nextLine();
  65.         }
  66.         System.out.println(String.format("People count: %d", health.size()));
  67.         health
  68.                 .entrySet()
  69.                 .stream()
  70.                 .sorted((h1, h2) -> h2.getValue() - h1.getValue())
  71.                 .forEach(e->{
  72.                     String name = e.getKey();
  73.                     int healths = e.getValue();
  74.                     int energies = energy.get(e.getKey());
  75.                     System.out.println(String.format("%s - %d - %d", name, healths, energies));
  76.                 });
  77.     }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement