Advertisement
Tsuki11

BattleManager

Mar 29th, 2020
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.45 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Task_3_BattleManager {
  4. public static void main(String[] args) {
  5. Scanner scan = new Scanner(System.in);
  6.  
  7. Map<String, List<Integer>> records = new HashMap<>();
  8.  
  9. String input = scan.nextLine();
  10. while (!"Results".equals(input)) {
  11. String[] tokens = input.split(":");
  12. String command = tokens[0].trim();
  13. String username = tokens[1].trim();
  14. switch (command) {
  15.  
  16. case "Add":
  17.  
  18. int health = Integer.parseInt(tokens[2]);
  19. if (records.containsKey(username)) {
  20. int currentHealth = records.get(username).get(0);
  21. int updateHealth = health + currentHealth;
  22. records.get(username).set(0, updateHealth);
  23. } else {
  24. int energy = Integer.parseInt(tokens[3]);
  25. records.put(username, new ArrayList<>());
  26. records.get(username).add(0, health);
  27. records.get(username).add(1, energy);
  28. }
  29. break;
  30. case "Attack":
  31. String defender = tokens[2];
  32. int damage = Integer.parseInt(tokens[3].trim());
  33.  
  34. if (records.containsKey(username) && records.containsKey(defender)) {
  35. //defender
  36. int defenderCurrHealth = records.get(defender).get(0);
  37. int afterHealth = defenderCurrHealth - damage;
  38.  
  39. if (afterHealth <= 0) {
  40. records.remove(defender);
  41. System.out.printf("%s was disqualified!\n", defender);
  42. } else {
  43. records.get(defender).set(0, afterHealth);
  44. }
  45. //attacker reduce energy
  46. int attackerCurrEnergy = records.get(username).get(1);
  47. int afterEnergy = attackerCurrEnergy - 1;
  48. if (afterEnergy <= 0) {
  49. records.remove(username);
  50. System.out.printf("%s was disqualified!\n", username);
  51. } else {
  52. records.get(username).set(1, afterEnergy);
  53. }
  54. }
  55. break;
  56. case "Delete":
  57. if (username.equals("All")) {
  58. records.clear();
  59. } else {
  60. records.remove(username);
  61. }
  62. break;
  63. }
  64. input = scan.nextLine();
  65. }
  66. System.out.println("People count: " + records.keySet().size());
  67.  
  68. records.entrySet().stream()
  69. .sorted((a, b) -> {
  70. int h1 = a.getValue().get(0);
  71. int h2 = b.getValue().get(0);
  72. int comp = h2 - h1;
  73. if (comp == 0) {
  74. comp = a.getKey().compareTo(b.getKey());
  75. }
  76. return comp;
  77. })
  78. .forEach(a -> {
  79. System.out.print(a.getKey() + " - ");
  80. System.out.printf("%d - %d%n", a.getValue().get(0), a.getValue().get(1));
  81. });
  82.  
  83. }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement