Advertisement
purshink

Pokemon Trainer Correct

Jun 12th, 2020
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.17 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.*;
  4.  
  5. class Pokemonn {
  6.  
  7. private String name;
  8. private String element;
  9. private int health;
  10.  
  11.         Pokemonn(String name, String element, int health) {
  12.         this.name = name;
  13.         this.element = element;
  14.         this.health = health;
  15.         }
  16.  
  17.  
  18.  
  19.         String getElement() {
  20.         return element;
  21.         }
  22.  
  23.  
  24.         int getHealth() {
  25.         return health;
  26.         }
  27.  
  28.         void setHealth(int health) {
  29.         this.health = health;
  30.         }
  31.         }
  32.  
  33.  
  34. class Trainerr {
  35.     private String name;
  36.     private int badges = 0;
  37.  
  38.  
  39.  
  40.     Trainerr(String name) {
  41.         this.name = name;
  42.  
  43.     }
  44.  
  45.     String getName() {
  46.         return name;
  47.     }
  48.  
  49.  
  50.     int getBadges() {
  51.         return badges;
  52.     }
  53.  
  54.     void setBadges(int badges) {
  55.         this.badges = badges;
  56.     }
  57.  
  58.  
  59. }
  60.  
  61. public class Main {
  62.     public static void main(String[] args) {
  63.  
  64.         Scanner scanner = new Scanner(System.in);
  65.  
  66.         LinkedHashMap<Trainerr, ArrayList<Pokemon>> trainers  = new LinkedHashMap<>();
  67.  
  68.  
  69.      String command;
  70.         while (!(command = scanner.nextLine()).equals("Tournament")){
  71.  
  72.             String[] tokens = command.split("\\s+");
  73.                 Trainerr trainer = null;
  74.                 boolean isFound = false;
  75.  
  76.  
  77.             for (Map.Entry<Trainerr, ArrayList<Pokemon>> entry : trainers.entrySet()) {
  78.                 if (entry.getKey().getName().equals(tokens[0])){
  79.                     isFound = true;
  80.                     trainer = entry.getKey();
  81.                     break;
  82.                 }
  83.             }
  84.  
  85.             if (!isFound){
  86.                trainer = new Trainerr(tokens[0]);
  87.                 trainers.putIfAbsent(trainer, new ArrayList<>());
  88.             }
  89.  
  90.  
  91.  
  92.  
  93.                 Pokemon pokemon = new Pokemon(tokens[1], tokens[2], Integer.parseInt(tokens[3]));
  94.  
  95.                 trainers.get(trainer).add(pokemon);
  96.  
  97.  
  98.         }
  99.             command = scanner.nextLine();
  100.         while (!command.equals("End")){
  101.  
  102.  
  103.                     for (Map.Entry<Trainerr, ArrayList<Pokemon>> entry : trainers.entrySet()) {
  104.                         boolean hasElement = false;
  105.                         switch (command) {
  106.  
  107.  
  108.                             case "Fire": {
  109.                             for (int i = 0; i < entry.getValue().size(); i++) {
  110.                                 if (entry.getValue().get(i).getElement().equals("Fire")) {
  111.                                     hasElement = true;
  112.                                     break;
  113.                                     }
  114.                                 }
  115.                                 if (hasElement){
  116.                                     entry.getKey().setBadges(entry.getKey().getBadges() + 1);
  117.                                 }
  118.                                 else {
  119.                                 for (int i = 0; i < entry.getValue().size(); i++) {
  120.  
  121.                                         entry.getValue().get(i).setHealth(entry.getValue().get(i).getHealth() - 10);
  122.  
  123.                                     if (entry.getValue().get(i).getHealth() <= 0) {
  124.                                         entry.getValue().remove(entry.getValue().get(i));
  125.                                     }
  126.                                 }
  127.                             }
  128.                         }
  129.                         break;
  130.  
  131.                             case "Water":{
  132.                                 for (int i = 0; i < entry.getValue().size(); i++) {
  133.                                     if (entry.getValue().get(i).getElement().equals("Water")) {
  134.                                         hasElement = true;
  135.                                         break;
  136.                                     }
  137.                                 }
  138.                                 if (hasElement){
  139.                                     entry.getKey().setBadges(entry.getKey().getBadges() + 1);
  140.                                 }
  141.                                 else {
  142.                                     for (int i = 0; i < entry.getValue().size(); i++) {
  143.  
  144.                                             entry.getValue().get(i).setHealth(entry.getValue().get(i).getHealth() - 10);
  145.  
  146.                                         if (entry.getValue().get(i).getHealth() <= 0) {
  147.                                             entry.getValue().remove(entry.getValue().get(i));
  148.                                         }
  149.                                     }
  150.                                 }
  151.                             }
  152.                             break;
  153.  
  154.                             case "Electricity":{
  155.                                 for (int i = 0; i < entry.getValue().size(); i++) {
  156.                                     if (entry.getValue().get(i).getElement().equals("Electricity")) {
  157.                                         hasElement = true;
  158.                                         break;
  159.                                     }
  160.                                 }
  161.                                 if (hasElement){
  162.                                     entry.getKey().setBadges(entry.getKey().getBadges() + 1);
  163.                                 }
  164.                                 else {
  165.                                     for (int i = 0; i < entry.getValue().size(); i++) {
  166.  
  167.                                             entry.getValue().get(i).setHealth(entry.getValue().get(i).getHealth() - 10);
  168.  
  169.                                         if (entry.getValue().get(i).getHealth() <= 0) {
  170.                                             entry.getValue().remove(entry.getValue().get(i));
  171.                                         }
  172.                                     }
  173.                                 }
  174.                             }
  175.                             break;
  176.                         }
  177.                     }
  178.             command = scanner.nextLine();
  179.  
  180.         }
  181.  
  182.         trainers.entrySet()
  183.                 .stream()
  184.                 .sorted((t1,t2) ->
  185.                      t2.getKey().getBadges() - t1.getKey().getBadges()
  186.                 )
  187.                 .forEach(t -> System.out.println(t.getKey().getName() + " " + t.getKey().getBadges() +" " + t.getValue().size()));
  188.  
  189.     }
  190.  
  191.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement