Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Exam03AugustFinal;
- import java.util.LinkedHashMap;
- import java.util.Map;
- import java.util.Scanner;
- import java.util.TreeMap;
- public class BattleManager {
- public static class Person{
- int health;
- int energy;
- public int getHealth() {
- return health;
- }
- public void setHealth(int health) {
- this.health = health;
- }
- public int getEnergy() {
- return energy;
- }
- public void setEnergy(int energy) {
- this.energy = energy;
- }
- }
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- String input=scanner.nextLine();
- TreeMap<String, Person> userStats=new TreeMap<>();
- while (!"Results".equals(input)){
- String[] tokens=input.split(":");
- switch (tokens[0]){
- case "Add":
- int health=Integer.parseInt(tokens[2]);
- int energy=Integer.parseInt(tokens[3]);
- if(!userStats.containsKey(tokens[1])){
- Person person = new Person();
- person.setEnergy(energy);
- person.setHealth(health);
- userStats.put(tokens[1],person);
- }else{
- userStats.get(tokens[1]).setHealth(userStats.get(tokens[1]).getHealth()+health);
- }
- break;
- case "Attack":
- String attacker=tokens[1];
- String defender=tokens[2];
- int damage=Integer.parseInt(tokens[3]);
- if(userStats.containsKey(attacker) && userStats.containsKey(defender)) {
- userStats.get(defender).setHealth(userStats.get(defender).getHealth() - damage);
- userStats.get(attacker).setEnergy(userStats.get(attacker).getEnergy() - 1);
- if (userStats.get(defender).getHealth() <= 0) {
- System.out.printf("%s was disqualified!%n", defender);
- userStats.remove(defender);
- }
- if (userStats.get(attacker).getEnergy() <= 0) {
- System.out.printf("%s was disqualified!%n", attacker);
- userStats.remove(attacker);
- }
- }
- break;
- case "Delete":
- if(tokens[1].equals("All")){
- userStats.clear();
- }else if(userStats.containsKey(tokens[1])){
- userStats.remove(tokens[1]);
- }
- break;
- }
- input=scanner.nextLine();
- }
- System.out.printf("People count: %d%n",userStats.size());
- userStats.entrySet().stream()
- .sorted((a,b)->{
- int first=b.getValue().getHealth();
- int second=a.getValue().getHealth();
- return first-second;
- }).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