Advertisement
Tsuki11

Untitled

Jun 11th, 2020
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.53 KB | None | 0 0
  1. package E6_PokemonTrainer;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. public class Trainer {
  7. private String name;
  8. private List<Pokemon> pokemons;
  9. private int badges;
  10.  
  11.  
  12. public Trainer(String name) {
  13. this.name = name;
  14. this.pokemons = new ArrayList<>();
  15. badges = 0;
  16. }
  17.  
  18.  
  19. public String getName() {
  20. return name;
  21. }
  22. public int getBadges() {
  23. return badges;
  24. }
  25.  
  26.  
  27. public void setBadges(int badges) {
  28. this.badges += badges;
  29. }
  30.  
  31. public List<Pokemon> getPokemons() {
  32. return this.pokemons;
  33. }
  34.  
  35. public void addPokemon(Pokemon pokemon) {
  36. this.pokemons.add(pokemon);
  37. }
  38. }
  39. package E6_PokemonTrainer;
  40.  
  41. public class Pokemon {
  42. private String name;
  43. private String element;
  44. private int health;
  45.  
  46. public Pokemon(String name, String element, int health){
  47. this.name = name;
  48. this.element = element;
  49. this.health = health;
  50. }
  51.  
  52. public int getHealth() {
  53. return health;
  54. }
  55. public String getElement(){
  56. return this.element;
  57. }
  58.  
  59. public void decreaseHealth (){
  60. this.health -=10;
  61. }
  62. }
  63. package E6_PokemonTrainer;
  64.  
  65. import java.io.BufferedReader;
  66. import java.io.IOException;
  67. import java.io.InputStreamReader;
  68. import java.util.*;
  69.  
  70. public class Main {
  71. public static void main(String[] args) throws IOException {
  72. BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  73.  
  74. Set<Trainer> storeTrainers = new LinkedHashSet<>();
  75. Set<String> names = new HashSet<>();
  76.  
  77. String line;
  78. while (!(line = reader.readLine()).equals("Tournament")) {
  79. String[] tokens = line.split("\\s+");
  80. String nameTrainer = tokens[0];
  81. String namePokemon = tokens[1];
  82. String element = tokens[2];
  83. int health = Integer.parseInt(tokens[3]);
  84.  
  85. Pokemon pokemon = new Pokemon(namePokemon, element, health);
  86.  
  87. if (!names.contains(nameTrainer)) {
  88. Trainer trainer = new Trainer(nameTrainer);
  89. trainer.addPokemon(pokemon);
  90. storeTrainers.add(trainer);
  91. names.add(nameTrainer);
  92. } else {
  93. for (Trainer strTrainer : storeTrainers) {
  94. if (strTrainer.getName().equals(nameTrainer)) {
  95. strTrainer.addPokemon(pokemon);
  96. break;
  97. }
  98. }
  99. }
  100. }
  101.  
  102. while (!(line = reader.readLine()).equals("End")) {
  103.  
  104. for (Trainer trainer : storeTrainers) {
  105. List<Pokemon> pokemons = trainer.getPokemons();
  106. String element = line;
  107. boolean hasElement = pokemons.stream().anyMatch(a -> a.getElement().equals(element));
  108. if (hasElement) {
  109. trainer.setBadges(1);
  110. } else {
  111. decreaseHealth(trainer);
  112. }
  113. }
  114.  
  115. }
  116.  
  117. storeTrainers.stream().sorted((a1, a2) -> a2.getBadges() - a1.getBadges()).forEach(k -> {
  118. System.out.println(k.getName() + " " + k.getBadges() + " " + k.getPokemons().size());
  119. });
  120. }
  121.  
  122. private static void decreaseHealth(Trainer strTrainer) {
  123. List<Pokemon> pokemons = strTrainer.getPokemons();
  124. pokemons.forEach(Pokemon::decreaseHealth);
  125. pokemons.removeIf(pokemon -> pokemon.getHealth() <= 0);
  126. }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement