From a5c3fda36d1dc359248762ca3f5c548ba4ac41b9 Mon Sep 17 00:00:00 2001 From: mhmd Date: Sun, 14 Apr 2024 20:49:04 +0330 Subject: [PATCH 01/12] classes created --- Answers/40230212010/.vscode/settings.json | 7 +++++++ Answers/40230212010/README.md | 18 ++++++++++++++++++ Answers/40230212010/bin/App.class | Bin 0 -> 562 bytes Answers/40230212010/src/Beater.java | 3 +++ Answers/40230212010/src/Chaser.java | 3 +++ Answers/40230212010/src/Keeper.java | 3 +++ Answers/40230212010/src/Match.java | 3 +++ Answers/40230212010/src/MyApp.java | 5 +++++ Answers/40230212010/src/Player.java | 3 +++ Answers/40230212010/src/Seeker.java | 3 +++ Answers/40230212010/src/Success.java | 3 +++ Answers/40230212010/src/Team.java | 3 +++ 12 files changed, 54 insertions(+) create mode 100644 Answers/40230212010/.vscode/settings.json create mode 100644 Answers/40230212010/README.md create mode 100644 Answers/40230212010/bin/App.class create mode 100644 Answers/40230212010/src/Beater.java create mode 100644 Answers/40230212010/src/Chaser.java create mode 100644 Answers/40230212010/src/Keeper.java create mode 100644 Answers/40230212010/src/Match.java create mode 100644 Answers/40230212010/src/MyApp.java create mode 100644 Answers/40230212010/src/Player.java create mode 100644 Answers/40230212010/src/Seeker.java create mode 100644 Answers/40230212010/src/Success.java create mode 100644 Answers/40230212010/src/Team.java diff --git a/Answers/40230212010/.vscode/settings.json b/Answers/40230212010/.vscode/settings.json new file mode 100644 index 0000000..e112a70 --- /dev/null +++ b/Answers/40230212010/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "java.project.sourcePaths": ["src"], + "java.project.outputPath": "bin", + "java.project.referencedLibraries": [ + "lib/**/*.jar" + ] +} diff --git a/Answers/40230212010/README.md b/Answers/40230212010/README.md new file mode 100644 index 0000000..7c03a53 --- /dev/null +++ b/Answers/40230212010/README.md @@ -0,0 +1,18 @@ +## Getting Started + +Welcome to the VS Code Java world. Here is a guideline to help you get started to write Java code in Visual Studio Code. + +## Folder Structure + +The workspace contains two folders by default, where: + +- `src`: the folder to maintain sources +- `lib`: the folder to maintain dependencies + +Meanwhile, the compiled output files will be generated in the `bin` folder by default. + +> If you want to customize the folder structure, open `.vscode/settings.json` and update the related settings there. + +## Dependency Management + +The `JAVA PROJECTS` view allows you to manage your dependencies. More details can be found [here](https://github.com/microsoft/vscode-java-dependency#manage-dependencies). diff --git a/Answers/40230212010/bin/App.class b/Answers/40230212010/bin/App.class new file mode 100644 index 0000000000000000000000000000000000000000..baa6c6726ecc7ff0468f1be52445c21d3cbd1d3d GIT binary patch literal 562 zcmZuu%T5A85UhcPg%t!r@U7q@L1X0T0W~p3pvy(^EZF)xBTeAD;k@v11}65I*hoOc(;`j(n75TRQFXb)%!2zCiRyJK8^C zQ)#y@V4S%vWg(1s0ue+7QdRA!t3kJ+yj$6@l|ZKIHl-?#ydcJm@zKM)LcHH%k#4(S&iQI(k+H>Dm-2@h}NXzbk z6XZq`+AZIZ-=~U_-AWA00?A8d+wOkh&h_k8(ZVX$O|1RNO} Date: Sun, 14 Apr 2024 20:58:34 +0330 Subject: [PATCH 02/12] extended --- Answers/40230212010/src/Player.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Answers/40230212010/src/Player.java b/Answers/40230212010/src/Player.java index dd2ddb8..737318b 100644 --- a/Answers/40230212010/src/Player.java +++ b/Answers/40230212010/src/Player.java @@ -1,3 +1,16 @@ -public class Player { +public class Player implements Success { + + String name; + int number; + + Player(String name, int number) { + this.name = name; + this.number = number; + } + + @Override + public boolean isSuccessful() { + return false; + } } From a8c53a327fc70063b3bdf2388c4fc8e52d164694 Mon Sep 17 00:00:00 2001 From: mhmd Date: Sun, 14 Apr 2024 21:15:04 +0330 Subject: [PATCH 03/12] Beater --- Answers/40230212010/src/Beater.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Answers/40230212010/src/Beater.java b/Answers/40230212010/src/Beater.java index b32e66c..526a7ea 100644 --- a/Answers/40230212010/src/Beater.java +++ b/Answers/40230212010/src/Beater.java @@ -1,3 +1,12 @@ -public class Beater { +public class Beater extends Player{ + Beater(String name, int number) { + super(name, number); + //TODO Auto-generated constructor stub + } + + @Override + public boolean isSuccessful() { + return Math.random() < 0.4; + } } From 5d9f2c8b865fe98d919d8290b63400e698f592d3 Mon Sep 17 00:00:00 2001 From: mhmd Date: Sun, 14 Apr 2024 21:15:26 +0330 Subject: [PATCH 04/12] Chaser --- Answers/40230212010/src/Chaser.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Answers/40230212010/src/Chaser.java b/Answers/40230212010/src/Chaser.java index b9686d1..423bf08 100644 --- a/Answers/40230212010/src/Chaser.java +++ b/Answers/40230212010/src/Chaser.java @@ -1,3 +1,13 @@ -public class Chaser { +public class Chaser extends Player{ + + Chaser(String name, int number) { + super(name, number); + //TODO Auto-generated constructor stub + } + + @Override + public boolean isSuccessful() { + return Math.random() < 0.3; + } } From d37abdb99f6f218294cadfb467e1ddf24ea0a985 Mon Sep 17 00:00:00 2001 From: mhmd Date: Sun, 14 Apr 2024 21:15:41 +0330 Subject: [PATCH 05/12] keeper --- Answers/40230212010/src/Keeper.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Answers/40230212010/src/Keeper.java b/Answers/40230212010/src/Keeper.java index a0982e3..658b8bd 100644 --- a/Answers/40230212010/src/Keeper.java +++ b/Answers/40230212010/src/Keeper.java @@ -1,3 +1,13 @@ -public class Keeper { +public class Keeper extends Player{ + + Keeper(String name, int number) { + super(name, number); + //TODO Auto-generated constructor stub + } + + @Override + public boolean isSuccessful() { + return Math.random() < 0.7; + } } From 311d6f2d8f277b318fc99f3e1243a7e42f9e0e0e Mon Sep 17 00:00:00 2001 From: mhmd Date: Sun, 14 Apr 2024 21:15:52 +0330 Subject: [PATCH 06/12] Match --- Answers/40230212010/src/Match.java | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Answers/40230212010/src/Match.java b/Answers/40230212010/src/Match.java index 998fd4e..fdd41b0 100644 --- a/Answers/40230212010/src/Match.java +++ b/Answers/40230212010/src/Match.java @@ -1,3 +1,32 @@ public class Match { + + Team team1; + Team team2; + + Match(Team team1, Team team2) { + this.team1 = team1; + this.team2 = team2; + } + + void start() { + for (int i = 0; i < 100; i++) { + team1.play(); + team2.play(); + } + + int team1Score = team1.getScore(); + int team2Score = team2.getScore(); + + System.out.println("Team 1 score: " + team1Score); + System.out.println("Team 2 score: " + team2Score); + + if (team1Score > team2Score) { + System.out.println("Team 1 wins!"); + } else if (team2Score > team1Score) { + System.out.println("Team 2 wins!"); + } else { + System.out.println("It's a draw!"); + } + } } From 2956aca7a1e2c62bc7a6116c751850381d848da9 Mon Sep 17 00:00:00 2001 From: mhmd Date: Sun, 14 Apr 2024 21:16:09 +0330 Subject: [PATCH 07/12] Seeker --- Answers/40230212010/src/Seeker.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Answers/40230212010/src/Seeker.java b/Answers/40230212010/src/Seeker.java index 0b26581..3cdf7ca 100644 --- a/Answers/40230212010/src/Seeker.java +++ b/Answers/40230212010/src/Seeker.java @@ -1,3 +1,13 @@ -public class Seeker { +public class Seeker extends Player{ + + Seeker(String name, int number) { + super(name, number); + //TODO Auto-generated constructor stub + } + + @Override + public boolean isSuccessful() { + return Math.random() < 0.05; + } } From 3cd4a832020fe7565a6de98792957366cac21c63 Mon Sep 17 00:00:00 2001 From: mhmd Date: Sun, 14 Apr 2024 21:16:20 +0330 Subject: [PATCH 08/12] Team --- Answers/40230212010/src/Team.java | 47 ++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/Answers/40230212010/src/Team.java b/Answers/40230212010/src/Team.java index dfab141..fd2a4b7 100644 --- a/Answers/40230212010/src/Team.java +++ b/Answers/40230212010/src/Team.java @@ -1,3 +1,48 @@ public class Team { + Keeper keeper; + Seeker seeker; + Chaser[] chasers = new Chaser[3]; + Beater[] beaters = new Beater[2]; + private int goals; -} + Team(Keeper keeper, Seeker seeker, Chaser[] chasers, Beater[] beaters) { + this.keeper = keeper; + this.seeker = seeker; + this.chasers = chasers; + this.beaters = beaters; + } + + private void setGoal() { + goals++; + } + + void play() { + boolean keeperSuccess = keeper.isSuccessful(); + int successfulBeaters = 0; + int successfulChasers = 0; + + for (Beater beater : beaters) { + if (beater.isSuccessful()) { + successfulBeaters++; + } + } + + for (Chaser chaser : chasers) { + if (chaser.isSuccessful()) { + successfulChasers++; + } + } + + if (keeperSuccess && successfulBeaters >= 1 && successfulChasers >= 2) { + setGoal(); + } + } + + int getGoals() { + return goals; + } + + int getScore() { + return goals * 10; + } +} \ No newline at end of file From 0fe724588a9af47fd7c3216425c558f8cd1341e0 Mon Sep 17 00:00:00 2001 From: mhmd Date: Sun, 14 Apr 2024 21:16:54 +0330 Subject: [PATCH 09/12] Main --- Answers/40230212010/src/MyApp.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Answers/40230212010/src/MyApp.java b/Answers/40230212010/src/MyApp.java index 9d5eb29..dcf7c93 100644 --- a/Answers/40230212010/src/MyApp.java +++ b/Answers/40230212010/src/MyApp.java @@ -1,5 +1,20 @@ public class MyApp { - public static void main(String[] args) throws Exception { - + public static void main(String[] args) { + // Create players for two teams + Keeper keeper1 = new Keeper("John", 1); + Seeker seeker1 = new Seeker("Mike", 2); + Chaser[] chasers1 = { new Chaser("Alice", 3), new Chaser("Bob", 4), new Chaser("Eve", 5) }; + Beater[] beaters1 = { new Beater("Charlie", 6), new Beater("David", 7) }; + Team team1 = new Team(keeper1, seeker1, chasers1, beaters1); + + Keeper keeper2 = new Keeper("Sarah", 1); + Seeker seeker2 = new Seeker("Emily", 2); + Chaser[] chasers2 = { new Chaser("Grace", 3), new Chaser("Henry", 4), new Chaser("Ivy", 5) }; + Beater[] beaters2 = { new Beater("Jack", 6), new Beater("Kelly", 7) }; + Team team2 = new Team(keeper2, seeker2, chasers2, beaters2); + + // Start the match + Match match = new Match(team1, team2); + match.start(); } } From a4c5f4cfaab53d32d70aafa9198985c55603dee2 Mon Sep 17 00:00:00 2001 From: mhmd Date: Sun, 14 Apr 2024 22:58:23 +0330 Subject: [PATCH 10/12] update team --- Answers/40230212010/src/Team.java | 63 ++++++++++++++----------------- 1 file changed, 29 insertions(+), 34 deletions(-) diff --git a/Answers/40230212010/src/Team.java b/Answers/40230212010/src/Team.java index fd2a4b7..5c9e491 100644 --- a/Answers/40230212010/src/Team.java +++ b/Answers/40230212010/src/Team.java @@ -1,48 +1,43 @@ -public class Team { - Keeper keeper; - Seeker seeker; - Chaser[] chasers = new Chaser[3]; - Beater[] beaters = new Beater[2]; - private int goals; - - Team(Keeper keeper, Seeker seeker, Chaser[] chasers, Beater[] beaters) { - this.keeper = keeper; - this.seeker = seeker; - this.chasers = chasers; - this.beaters = beaters; +class Team { + private Keeper keeper; + private Seeker seeker; + private Chaser[] chasers; + private Beater[] beaters; + private int goals = 0; + + public Team(String teamName) { + // Initialize players with example names and numbers + keeper = new Keeper(teamName + " Keeper", 1); + seeker = new Seeker(teamName + " Seeker", 2); + chasers = new Chaser[]{ + new Chaser(teamName + " Chaser1", 3), + new Chaser(teamName + " Chaser2", 4), + new Chaser(teamName + " Chaser3", 5) + }; + beaters = new Beater[]{ + new Beater(teamName + " Beater1", 6), + new Beater(teamName + " Beater2", 7) + }; } private void setGoal() { - goals++; + this.goals++; } - void play() { - boolean keeperSuccess = keeper.isSuccessful(); - int successfulBeaters = 0; - int successfulChasers = 0; - - for (Beater beater : beaters) { - if (beater.isSuccessful()) { - successfulBeaters++; - } - } - - for (Chaser chaser : chasers) { - if (chaser.isSuccessful()) { - successfulChasers++; - } - } - - if (keeperSuccess && successfulBeaters >= 1 && successfulChasers >= 2) { + public void play() { + // Check conditions and set goal if met + if (keeper.isSuccessful() && + (beaters[0].isSuccessful() || beaters[1].isSuccessful()) && + (chasers[0].isSuccessful() && chasers[1].isSuccessful() || chasers[1].isSuccessful() && chasers[2].isSuccessful() || chasers[0].isSuccessful() && chasers[2].isSuccessful())) { setGoal(); } } - int getGoals() { + public int getGoals() { return goals; } - int getScore() { - return goals * 10; + public boolean hasSeekerCaughtSnitch() { + return seeker.isSuccessful(); } } \ No newline at end of file From 00d6dc74b36fa939a439944a0ca1f836a933fbef Mon Sep 17 00:00:00 2001 From: mhmd Date: Sun, 14 Apr 2024 22:58:43 +0330 Subject: [PATCH 11/12] my app update --- Answers/40230212010/src/MyApp.java | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/Answers/40230212010/src/MyApp.java b/Answers/40230212010/src/MyApp.java index dcf7c93..60d474f 100644 --- a/Answers/40230212010/src/MyApp.java +++ b/Answers/40230212010/src/MyApp.java @@ -1,20 +1,6 @@ public class MyApp { public static void main(String[] args) { - // Create players for two teams - Keeper keeper1 = new Keeper("John", 1); - Seeker seeker1 = new Seeker("Mike", 2); - Chaser[] chasers1 = { new Chaser("Alice", 3), new Chaser("Bob", 4), new Chaser("Eve", 5) }; - Beater[] beaters1 = { new Beater("Charlie", 6), new Beater("David", 7) }; - Team team1 = new Team(keeper1, seeker1, chasers1, beaters1); - - Keeper keeper2 = new Keeper("Sarah", 1); - Seeker seeker2 = new Seeker("Emily", 2); - Chaser[] chasers2 = { new Chaser("Grace", 3), new Chaser("Henry", 4), new Chaser("Ivy", 5) }; - Beater[] beaters2 = { new Beater("Jack", 6), new Beater("Kelly", 7) }; - Team team2 = new Team(keeper2, seeker2, chasers2, beaters2); - - // Start the match - Match match = new Match(team1, team2); + Match match = new Match(); match.start(); } -} +} \ No newline at end of file From 59de98144d8fa8bb2cd7b1a32da00b94404bf644 Mon Sep 17 00:00:00 2001 From: mhmd Date: Sun, 14 Apr 2024 23:57:08 +0330 Subject: [PATCH 12/12] finish --- Answers/40230212010/src/Match.java | 48 ++++++++++++--------- Answers/40230212010/src/MyApp.java | 14 +++++- Answers/40230212010/src/Team.java | 69 +++++++++++++++++++----------- 3 files changed, 84 insertions(+), 47 deletions(-) diff --git a/Answers/40230212010/src/Match.java b/Answers/40230212010/src/Match.java index fdd41b0..190b94c 100644 --- a/Answers/40230212010/src/Match.java +++ b/Answers/40230212010/src/Match.java @@ -1,32 +1,38 @@ -public class Match { - - Team team1; - Team team2; +class Match { + private Team team1; + private Team team2; + private int rounds; - Match(Team team1, Team team2) { + public Match(Team team1, Team team2, int rounds) { this.team1 = team1; this.team2 = team2; + this.rounds = rounds; } - void start() { - for (int i = 0; i < 100; i++) { - team1.play(); + public void start() { + for (int i = 0; i < rounds; i++) { + System.out.println("Round " + (i + 1) + " begins:"); + + if (team1.play()) { + System.out.println("Team 1 wins with " + team1.getGoals() + " goals!"); + return; + } team2.play(); + if (team2.play()) { + System.out.println("Team 2 wins with " + team2.getGoals() + " goals!"); + return; + } + System.out.println("End of Round " + (i + 1) + "\n"); } - int team1Score = team1.getScore(); - int team2Score = team2.getScore(); - - System.out.println("Team 1 score: " + team1Score); - System.out.println("Team 2 score: " + team2Score); - - if (team1Score > team2Score) { - System.out.println("Team 1 wins!"); - } else if (team2Score > team1Score) { - System.out.println("Team 2 wins!"); - } else { + System.out.println("Final scores:"); + System.out.println("Team 1 goals: " + team1.getGoals()); + System.out.println("Team 2 goals: " + team2.getGoals()); + if (team1.getGoals() == team2.getGoals()) { System.out.println("It's a draw!"); + } else { + Team winner = (team1.getGoals() > team2.getGoals()) ? team1 : team2; + System.out.println("Winner: Team " + ((winner == team1) ? "1" : "2")); } } - -} +} \ No newline at end of file diff --git a/Answers/40230212010/src/MyApp.java b/Answers/40230212010/src/MyApp.java index 60d474f..e673740 100644 --- a/Answers/40230212010/src/MyApp.java +++ b/Answers/40230212010/src/MyApp.java @@ -1,6 +1,18 @@ public class MyApp { public static void main(String[] args) { - Match match = new Match(); + Keeper keeper1 = new Keeper("Keeper 1", 1); + Seeker seeker1 = new Seeker("Seeker 1", 2); + Chaser[] chasers1 = {new Chaser("Chaser 1", 3), new Chaser("Chaser 2", 4), new Chaser("Chaser 3", 5)}; + Beater[] beaters1 = {new Beater("Beater 1", 6), new Beater("Beater 2", 7)}; + Team team1 = new Team(keeper1, seeker1, chasers1, beaters1); + + Keeper keeper2 = new Keeper("Keeper 2", 1); + Seeker seeker2 = new Seeker("Seeker 2", 2); + Chaser[] chasers2 = {new Chaser("Chaser 4", 3), new Chaser("Chaser 5", 4), new Chaser("Chaser 6", 5)}; + Beater[] beaters2 = {new Beater("Beater 3", 6), new Beater("Beater 4", 7)}; + Team team2 = new Team(keeper2, seeker2, chasers2, beaters2); + + Match match = new Match(team1, team2, 100); match.start(); } } \ No newline at end of file diff --git a/Answers/40230212010/src/Team.java b/Answers/40230212010/src/Team.java index 5c9e491..3e24daa 100644 --- a/Answers/40230212010/src/Team.java +++ b/Answers/40230212010/src/Team.java @@ -3,41 +3,60 @@ class Team { private Seeker seeker; private Chaser[] chasers; private Beater[] beaters; - private int goals = 0; - - public Team(String teamName) { - // Initialize players with example names and numbers - keeper = new Keeper(teamName + " Keeper", 1); - seeker = new Seeker(teamName + " Seeker", 2); - chasers = new Chaser[]{ - new Chaser(teamName + " Chaser1", 3), - new Chaser(teamName + " Chaser2", 4), - new Chaser(teamName + " Chaser3", 5) - }; - beaters = new Beater[]{ - new Beater(teamName + " Beater1", 6), - new Beater(teamName + " Beater2", 7) - }; + private int goals; + + public Team(Keeper keeper, Seeker seeker, Chaser[] chasers, Beater[] beaters) { + this.keeper = keeper; + this.seeker = seeker; + this.chasers = chasers; + this.beaters = beaters; + this.goals = 0; } private void setGoal() { - this.goals++; + goals++; + } + + public boolean hasSeekerFoundSnitch() { + return seeker.isSuccessful(); } - public void play() { - // Check conditions and set goal if met - if (keeper.isSuccessful() && - (beaters[0].isSuccessful() || beaters[1].isSuccessful()) && - (chasers[0].isSuccessful() && chasers[1].isSuccessful() || chasers[1].isSuccessful() && chasers[2].isSuccessful() || chasers[0].isSuccessful() && chasers[2].isSuccessful())) { + public boolean play() { + if (hasSeekerFoundSnitch()) { + System.out.println("Golden Snitch found by " + seeker.name + " Team scores 150 points!"); + return true; + } + + if (keeper.isSuccessful() && atLeastOneBeaterSuccessful() && atLeastTwoChasersSuccessful()) { setGoal(); + } + return false; } - public int getGoals() { - return goals; + private boolean atLeastOneBeaterSuccessful() { + for (Beater beater : beaters) { + if (beater.isSuccessful()) { + return true; + } + } + return false; } - public boolean hasSeekerCaughtSnitch() { - return seeker.isSuccessful(); + private boolean atLeastTwoChasersSuccessful() { + int successfulChasers = 0; + for (Chaser chaser : chasers) { + if (chaser.isSuccessful()) { + successfulChasers++; + if (successfulChasers >= 2) { + return true; + } + } + } + return false; + } + + public int getGoals() { + return goals; } } \ No newline at end of file