diff --git a/src/main/java/cz/jezek/lab11/SortedSetMain.java b/src/main/java/cz/jezek/lab11/SortedSetMain.java new file mode 100644 index 0000000000000000000000000000000000000000..b20bd778ae8e5e9812fa693a90703fe052d0d5a0 --- /dev/null +++ b/src/main/java/cz/jezek/lab11/SortedSetMain.java @@ -0,0 +1,12 @@ +package cz.jezek.lab11; + +public class SortedSetMain { + + public static void main(String[] args) { + Tournament tournament = Tournament.generate(); + + + } + + +} diff --git a/src/main/java/cz/jezek/lab11/StreamMain.java b/src/main/java/cz/jezek/lab11/StreamMain.java deleted file mode 100644 index ea4babca284042d2a29e402e622abee1e01f3158..0000000000000000000000000000000000000000 --- a/src/main/java/cz/jezek/lab11/StreamMain.java +++ /dev/null @@ -1,44 +0,0 @@ -package cz.jezek.lab11; - -public class StreamMain { - - public static void main(String[] args) { - Tournament tournament = Tournament.generate(); - - printStatAboutTournament(tournament); - - saveTournament(tournament); - loadTournament(); - } - - public static void printStatAboutTournament(Tournament tournament) { - System.out.println(tournament); - Player player = tournament.getRandomPlayer(); - - System.out.println(player); - System.out.print("Number of matches: "); - //TODO 3.a Show the number of matches played by a given player (using Streams) - - System.out.print("Goals scored: "); - //TODO 3.b Show the number of goals scored by a given player (help Streams) - - Oponents oponents = new Oponents(tournament.getRandomPlayer(), - tournament.getRandomPlayer()); - System.out.println("Mutual statistics of oponents:" + oponents); - - System.out.print("Matches: "); - //TODO 4.a List the matches played between the given players (using the stream) - System.out.print("Number of mathes: "); - //TODO 4.b Print the number of matches played between the given players (using the stream) - System.out.print("Match with the largest total number:"); - //TODO 4.c Show match with the largest total number (sum of both players) scored goals between relevant players (help Streams) - } - - public static void loadTournament() { - //TODO 5.b Load a serialized tournament from a file - } - - public static void saveTournament(Tournament tournament) { - //TODO 5.a Save the tournament to a file using object serialization. - } -} diff --git a/src/main/java/cz/jezek/lab11/Tournament.java b/src/main/java/cz/jezek/lab11/Tournament.java index 3f22efc1ae9cdb5c4bf0d16abb112baf619cdc72..036668c12ba2810ce223d6746edf9dd8c4b15308 100644 --- a/src/main/java/cz/jezek/lab11/Tournament.java +++ b/src/main/java/cz/jezek/lab11/Tournament.java @@ -1,7 +1,12 @@ package cz.jezek.lab11; -import java.util.Collections; +import static cz.jezek.lab11.RandomGenarator.random; +import static cz.jezek.lab11.RandomGenarator.selectRandom; +import static java.util.stream.Collectors.toList; + import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; public class Tournament { @@ -10,11 +15,11 @@ public class Tournament { public static Tournament generate() { // TODO 1.a Generate a list of 10 random players using the stream and then filter so that it does not contain players with the same name - List<Player> players = Collections.emptyList(); + List<Player> players = Stream.generate(Player::generateRandom).distinct().limit(10).collect(Collectors.toList()); // TODO 1.b Use the stream to generate a list of 50 matches between random players (from the list of players) with a random result. Make sure the player does not play with himself. - List<Match> matches = Collections.emptyList(); - + List<Match> matches = Stream.generate(() -> generateRandom(players)).filter(Tournament::differentOponents) + .limit(500).collect(toList()); return new Tournament(players, matches); } @@ -35,7 +40,7 @@ public class Tournament { public Player getRandomPlayer() { return RandomGenarator.selectRandom(players); } - + @Override public String toString() { StringBuilder builder = new StringBuilder(); @@ -54,4 +59,13 @@ public class Tournament { return builder.toString(); } +private static boolean differentOponents(Match m) { + return m.getOponents().getPlayer1() != m.getOponents().getPlayer2(); +} + +private static Match generateRandom(List<Player> players) { + Match result = new Match(selectRandom(players), random.nextInt(11), selectRandom(players), random.nextInt(11)); + return result; + } + }