Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Map;
- import java.util.Scanner;
- import java.util.TreeMap;
- public class BattleManager {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- Map<String, Integer> health = new TreeMap<>();
- Map<String, Integer> energy = new TreeMap<>();
- String input = scanner.nextLine();
- while (!"Results".equals(input)) {
- String[] tokens = input.split(":");
- String command = tokens[0];
- String person = tokens[1];
- switch (command) {
- case "Add":
- int newHealth = Integer.parseInt(tokens[2]);
- if (health.containsKey(person)) {
- int currHealth = health.get(person);
- health.put(person, currHealth + newHealth);
- }
- health.putIfAbsent(person, newHealth);
- energy.putIfAbsent(person, Integer.parseInt(tokens[3]));
- break;
- case "Attack":
- String defender = tokens[2];
- int damage = Integer.parseInt(tokens[3]);
- int defenderHealth = health.get(defender);
- int attackerEnergy = energy.get(person);
- if (health.containsKey(person) && energy.containsKey(person) && health.containsKey(defender) &&
- energy.containsKey(defender)) {
- health.put(defender, defenderHealth - damage);
- if (health.get(defender) <= 0) {
- health.remove(defender);
- energy.remove(defender);
- System.out.println(String.format("%s was disqualified!", defender));
- }
- energy.put(person, attackerEnergy - 1);
- if (energy.get(person) == 0) {
- energy.remove(person);
- health.remove(person);
- System.out.println(String.format("%s was disqualified!", person));
- }
- }
- break;
- case "Delete":
- if (tokens[1].equals("All")){
- health.clear();
- energy.clear();
- }else {
- if (health.containsKey(person) && energy.containsKey(person)){
- health.remove(person);
- energy.remove(person);
- }
- }
- break;
- }
- input = scanner.nextLine();
- }
- System.out.println(String.format("People count: %d", health.size()));
- health
- .entrySet()
- .stream()
- .sorted((h1, h2) -> h2.getValue() - h1.getValue())
- .forEach(e->{
- String name = e.getKey();
- int healths = e.getValue();
- int energies = energy.get(e.getKey());
- System.out.println(String.format("%s - %d - %d", name, healths, energies));
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement