Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- import java.util.TreeMap;
- public class BattleManager {
- public static class Person {
- int health;
- int energy;
- public Person(int health, int energy) {
- this.health = health;
- this.energy = energy;
- }
- public Person() {
- }
- public void setEnergy(int energy) {
- this.energy = energy;
- }
- public void setHealth(int health) {
- this.health = health;
- }
- public int getEnergy() {
- return energy;
- }
- public int getHealth() {
- return health;
- }
- }
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- String[] command = sc.nextLine().split(":");
- TreeMap<String, Person> treeMap = new TreeMap<>();
- while (!command[0].equals("Results")) {
- switch (command[0]) {
- case "Add": {
- Person person = new Person();
- String name = command[1];
- int health = Integer.parseInt(command[2]);
- int energy = Integer.parseInt(command[3]);
- person.setEnergy(energy);
- person.setHealth(health);
- if (treeMap.containsKey(name)) {
- treeMap.get(name).setHealth(health + treeMap.get(name).getHealth());
- treeMap.get(name).setEnergy(energy + treeMap.get(name).getEnergy());
- } else {
- treeMap.put(name, person);
- }
- }
- break;
- case "Attack": {
- String attackerName = command[1];
- String defenderName = command[2];
- int damage = Integer.parseInt(command[3]);
- if (treeMap.containsKey(attackerName) && treeMap.containsKey(defenderName)) {
- int newHealth = treeMap.get(defenderName).getHealth() - damage;
- treeMap.get(defenderName).setHealth(newHealth);
- if (treeMap.get(defenderName).getHealth() <= 0) {
- treeMap.remove(defenderName);
- System.out.printf("%s was disqualified!%n", defenderName);
- }
- int newAttackerEnergy = treeMap.get(attackerName).getEnergy() - 1;
- treeMap.get(attackerName).setEnergy(newAttackerEnergy);
- if (treeMap.get(attackerName).getEnergy() == 0) {
- treeMap.remove(attackerName);
- System.out.printf("%s was disqualified!%n", attackerName);
- }
- }
- }
- break;
- case "Delete": {
- String username = command[1];
- if(username.equals("All")){
- treeMap = new TreeMap<>();
- } else {
- treeMap.remove(username);
- }
- }
- break;
- }
- command = sc.nextLine().split(":");
- }
- System.out.printf("People count: %d%n", treeMap.size());
- treeMap.entrySet()
- .stream()
- .sorted((e1, e2) -> {
- int first = e2.getValue().getHealth() - e1.getValue().getHealth();
- if(first == 0){
- return e1.getKey().compareTo(e2.getKey());
- }
- return first;
- }).forEach(e-> System.out.printf("%s - %d - %d%n",e.getKey(), e.getValue().getHealth(), e.getValue().getEnergy()));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement