Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class BattleManager {
- public static final String END_COMMAND = "Results";
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- Map<String, int[]> personHealthEnergyMap = new TreeMap<>();
- String command;
- while (!END_COMMAND.equals(command = scanner.nextLine())) {
- String[] tokens = command.split(":");
- switch (tokens[0]) {
- case "Add":
- String person = tokens[1];
- int health = Integer.parseInt(tokens[2]);
- int energy = Integer.parseInt(tokens[3]);
- if (!personHealthEnergyMap.containsKey(person)) {
- personHealthEnergyMap.put(person, new int[2]);
- personHealthEnergyMap.get(person)[0] = health;
- personHealthEnergyMap.get(person)[1] = energy;
- } else {
- int currentHealth = personHealthEnergyMap.get(person)[0];
- personHealthEnergyMap.get(person)[0] = currentHealth + health;
- }
- break;
- case "Attack":
- String attackerName = tokens[1];
- String defenderName = tokens[2];
- int damage = Integer.parseInt(tokens[3]);
- if (personHealthEnergyMap.containsKey(attackerName) && personHealthEnergyMap.containsKey(defenderName)) {
- personHealthEnergyMap.get(defenderName)[0] = personHealthEnergyMap.get(defenderName)[0] - damage;
- if (personHealthEnergyMap.get(defenderName)[0] <= 0) {
- personHealthEnergyMap.remove(defenderName);
- System.out.printf("%s was disqualified!%n", defenderName);
- }
- personHealthEnergyMap.get(attackerName)[1] = personHealthEnergyMap.get(attackerName)[1] - 1;
- if (personHealthEnergyMap.get(attackerName)[1] <= 0) {
- personHealthEnergyMap.remove(attackerName);
- System.out.printf("%s was disqualified!%n", attackerName);
- }
- }
- break;
- case "Delete":
- String username = tokens[1];
- if (username.equals("All")) {
- personHealthEnergyMap.clear();
- } else personHealthEnergyMap.remove(username);
- break;
- }
- }
- System.out.printf("People count: %d%n", personHealthEnergyMap.size());
- personHealthEnergyMap
- .entrySet()
- .stream()
- .sorted((a, b) -> b.getValue()[0] - a.getValue()[0])
- .forEach(entry -> {
- System.out.printf("%s - %d - %d%n", entry.getKey(), entry.getValue()[0], entry.getValue()[1]);
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement