Advertisement
Guest User

BattleM

a guest
Mar 30th, 2020
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.02 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class BattleManager {
  4.     public static final String END_COMMAND = "Results";
  5.  
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.         Map<String, int[]> personHealthEnergyMap = new TreeMap<>();
  10.  
  11.         String command;
  12.         while (!END_COMMAND.equals(command = scanner.nextLine())) {
  13.             String[] tokens = command.split(":");
  14.             switch (tokens[0]) {
  15.                 case "Add":
  16.                     String person = tokens[1];
  17.                     int health = Integer.parseInt(tokens[2]);
  18.                     int energy = Integer.parseInt(tokens[3]);
  19.                     if (!personHealthEnergyMap.containsKey(person)) {
  20.                         personHealthEnergyMap.put(person, new int[2]);
  21.                         personHealthEnergyMap.get(person)[0] = health;
  22.                         personHealthEnergyMap.get(person)[1] = energy;
  23.                     } else {
  24.                         int currentHealth = personHealthEnergyMap.get(person)[0];
  25.                         personHealthEnergyMap.get(person)[0] = currentHealth + health;
  26.                     }
  27.                     break;
  28.                 case "Attack":
  29.                     String attackerName = tokens[1];
  30.                     String defenderName = tokens[2];
  31.                     int damage = Integer.parseInt(tokens[3]);
  32.                     if (personHealthEnergyMap.containsKey(attackerName) && personHealthEnergyMap.containsKey(defenderName)) {
  33.                         personHealthEnergyMap.get(defenderName)[0] = personHealthEnergyMap.get(defenderName)[0] - damage;
  34.                         if (personHealthEnergyMap.get(defenderName)[0] <= 0) {
  35.                             personHealthEnergyMap.remove(defenderName);
  36.                             System.out.printf("%s was disqualified!%n", defenderName);
  37.                         }
  38.                         personHealthEnergyMap.get(attackerName)[1] = personHealthEnergyMap.get(attackerName)[1] - 1;
  39.                         if (personHealthEnergyMap.get(attackerName)[1] <= 0) {
  40.                             personHealthEnergyMap.remove(attackerName);
  41.                             System.out.printf("%s was disqualified!%n", attackerName);
  42.                         }
  43.                     }
  44.                     break;
  45.                 case "Delete":
  46.                     String username = tokens[1];
  47.                     if (username.equals("All")) {
  48.                         personHealthEnergyMap.clear();
  49.                     } else personHealthEnergyMap.remove(username);
  50.                     break;
  51.             }
  52.         }
  53.         System.out.printf("People count: %d%n", personHealthEnergyMap.size());
  54.         personHealthEnergyMap
  55.                 .entrySet()
  56.                 .stream()
  57.                 .sorted((a, b) -> b.getValue()[0] - a.getValue()[0])
  58.                 .forEach(entry -> {
  59.                     System.out.printf("%s - %d - %d%n", entry.getKey(), entry.getValue()[0], entry.getValue()[1]);
  60.                 });
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement