Advertisement
svephoto

Battle Manager [Java]

Dec 3rd, 2019
734
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.03 KB | None | 0 0
  1. import java.util.HashMap;
  2. import java.util.Map;
  3. import java.util.Scanner;
  4.  
  5. public class BattleManager {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.         HashMap<String, Integer> nameHealth = new HashMap<>();
  10.         HashMap<String, Integer> nameEnergy = new HashMap<>();
  11.  
  12.         String command = scanner.nextLine();
  13.  
  14.         while (!command.equals("Results")) {
  15.             String realCommand = command.split(":")[0];
  16.  
  17.             if (realCommand.equals("Add")) {
  18.                 String personName = command.split(":")[1];
  19.                 int health = Integer.parseInt(command.split(":")[2]);
  20.                 int energy = Integer.parseInt(command.split(":")[3]);
  21.  
  22.                 if (!nameHealth.containsKey(personName)) {
  23.                     nameHealth.put(personName, health);
  24.                     nameEnergy.put(personName, energy);
  25.                 } else {
  26.                     nameHealth.put(personName, nameHealth.get(personName) + health);
  27.                 }
  28.             }
  29.  
  30.             if (realCommand.equals("Attack")) {
  31.                 String attackerName = command.split(":")[1];
  32.                 String defenderName = command.split(":")[2];
  33.                 int damage = Integer.parseInt(command.split(":")[3]);
  34.  
  35.                 if (nameHealth.containsKey(attackerName) && nameHealth.containsKey(defenderName)) {
  36.                     nameHealth.put(defenderName, nameHealth.get(defenderName) - damage);
  37.                     nameEnergy.put(attackerName, nameEnergy.get(attackerName) - 1);
  38.  
  39.                     if (nameHealth.get(defenderName) <= 0) {
  40.                         nameHealth.remove(defenderName);
  41.                         System.out.println(String.format("%s was disqualified!", defenderName));
  42.                     }
  43.                     if (nameEnergy.get(attackerName) <= 0) {
  44.                         nameEnergy.remove(attackerName);
  45.                         nameHealth.remove(attackerName);
  46.                         System.out.println(String.format("%s was disqualified!", attackerName));
  47.                     }
  48.                 }
  49.             }
  50.  
  51.             if (realCommand.equals("Delete")) {
  52.                 String userName = command.split(":")[1];
  53.                 if (userName.equals("All")) {
  54.                     nameEnergy.clear();
  55.                     nameHealth.clear();
  56.                 } else {
  57.                     nameEnergy.remove(userName);
  58.                     nameHealth.remove(userName);
  59.                 }
  60.             }
  61.  
  62.             command = scanner.nextLine();
  63.         }
  64.  
  65.         System.out.println(String.format("People count: %d", nameHealth.size()));
  66.  
  67.         nameHealth.entrySet().stream().sorted(Map.Entry.<String, Integer>comparingByValue()
  68.                 .reversed().thenComparing(Map.Entry::getKey))
  69.                 .forEach(entry -> {
  70.                     int energy = nameEnergy.get(entry.getKey());
  71.                     System.out.println(String.format("%s - %d - %d", entry.getKey(), entry.getValue(), energy));
  72.                 });
  73.     }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement