Tsuki11

Untitled

Jul 7th, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.34 KB | None | 0 0
  1. Main ----- package E5_FootballTeamGenerator;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.HashMap;
  7. import java.util.LinkedHashMap;
  8. import java.util.Map;
  9.  
  10. public class Main {
  11. public static void main(String[] args) throws IOException {
  12. BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  13.  
  14. String line;
  15.  
  16. Map<String, Team> storeTeams = new HashMap<>();
  17.  
  18. while (!"END".equals((line = reader.readLine()))) {
  19. String[] tokens = line.split(";");
  20. String cmd = tokens[0];
  21. String teamName = tokens[1];
  22.  
  23. try {
  24.  
  25. switch (cmd.toLowerCase()) {
  26. case "team":
  27. storeTeams.putIfAbsent(teamName, new Team(teamName));
  28.  
  29.  
  30. break;
  31. case "add":
  32. if (!storeTeams.containsKey(teamName)) {
  33. throw new IllegalArgumentException("Team " + teamName + " does not exist.");
  34. }
  35.  
  36. Player player = new Player(tokens[2], Integer.parseInt(tokens[3]), Integer.parseInt(tokens[4]),
  37. Integer.parseInt(tokens[5]), Integer.parseInt(tokens[6]), Integer.parseInt(tokens[7]));
  38. storeTeams.get(teamName).addPlayer(player);
  39.  
  40. break;
  41. case "remove":
  42. storeTeams.get(teamName).removePlayer(tokens[2]);
  43. break;
  44. case "rating":
  45. if (!storeTeams.containsKey(teamName)) {
  46. throw new IllegalArgumentException("Team " + teamName + " does not exist.");
  47. }
  48. System.out.println(storeTeams.get(teamName).toString());
  49. break;
  50. }
  51.  
  52. } catch (IllegalArgumentException e) {
  53. System.out.println(e.getMessage());
  54. }
  55.  
  56. }
  57. }
  58. }
  59. Player ---------
  60.  
  61. package E5_FootballTeamGenerator;
  62.  
  63. public class Player {
  64. private String name;
  65. private int endurance;
  66. private int sprint;
  67. private int dribble;
  68. private int passing;
  69. private int shooting;
  70.  
  71. public Player(String name, int endurance, int sprint, int dribble, int passing, int shooting) {
  72. this.setName(name);
  73. this.setEndurance(endurance);
  74. this.setSprint(sprint);
  75. this.setDribble(dribble);
  76. this.setPassing(passing);
  77. this.setShooting(shooting);
  78. }
  79.  
  80.  
  81. public String getName() {
  82. return this.name;
  83. }
  84.  
  85. private void setName(String name) {
  86. if (name.trim().isEmpty()) {
  87. throw new IllegalArgumentException("A name should not be empty.");
  88. }
  89. this.name = name;
  90. }
  91.  
  92. private void setEndurance(int endurance) {
  93. validateStats("Endurance",endurance);
  94. this.endurance = endurance;
  95. }
  96.  
  97. private void setSprint(int sprint) {
  98. validateStats( "Sprint",sprint);
  99. this.sprint = sprint;
  100. }
  101.  
  102. private void setDribble(int dribble) {
  103. validateStats("Dribble", dribble);
  104. this.dribble = dribble;
  105. }
  106.  
  107. private void setPassing(int passing) {
  108. validateStats("Passing", passing);
  109. this.passing = passing;
  110. }
  111.  
  112. private void setShooting(int shooting) {
  113. validateStats("Shooting", shooting);
  114. this.shooting = shooting;
  115. }
  116.  
  117. private void validateStats(String source, int value) {
  118. if (value < 0 || value > 100) {
  119. throw new IllegalArgumentException(source + " should be between 0 and 100.");
  120. }
  121. }
  122.  
  123. public double overallSkillLevel() {
  124. double sum = this.endurance +
  125. this.sprint +
  126. this.dribble +
  127. this.passing +
  128. this.shooting;
  129.  
  130. return sum / 5;
  131. }
  132.  
  133. }
  134.  
  135. Team --------
  136.  
  137. package E5_FootballTeamGenerator;
  138.  
  139. import java.util.ArrayList;
  140. import java.util.List;
  141.  
  142. public class Team {
  143. private String name;
  144. private List<Player> players;
  145.  
  146. public Team(String name) {
  147. this.setName(name);
  148. this.players = new ArrayList<>();
  149. }
  150.  
  151.  
  152. public String getName() {
  153. return this.name;
  154. }
  155.  
  156. private void setName(String name) {
  157. if (name == null || name.trim().isEmpty()) {
  158. throw new IllegalArgumentException("A name should not be empty.");
  159. }
  160. this.name = name;
  161. }
  162.  
  163.  
  164. public void addPlayer(Player player) {
  165. this.players.add(player);
  166. }
  167.  
  168. public void removePlayer(String name) {
  169. Player player = this.players.stream().filter(e -> e.getName().equals(name)).findFirst().orElse(null);
  170. if(player != null){
  171. this.players.remove(player);
  172. }else{
  173. throw new IllegalArgumentException("Player "+ name +" is not in Arsenal team.");
  174. }
  175.  
  176. }
  177.  
  178. public double getRating() {
  179. return Math.round(this.players.stream()
  180. .mapToDouble(Player::overallSkillLevel)
  181. .average()
  182. .orElse(0));
  183. }
  184.  
  185.  
  186. @Override
  187. public String toString() {
  188. return String.format("%s - %.0f", this.name, this.getRating());
  189. }
  190. }
Add Comment
Please, Sign In to add comment