From d24a3ce917b747dd3a1ac50547ad93a8a74b48f0 Mon Sep 17 00:00:00 2001 From: Yujin Date: Mon, 22 May 2023 12:21:43 +0900 Subject: [PATCH 01/18] =?UTF-8?q?feat=20:=20Soccer=20=EC=B6=94=EC=83=81?= =?UTF-8?q?=ED=99=94=20=ED=81=B4=EB=9E=98=EC=8A=A4=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Soccer.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/main/java/Soccer.java diff --git a/src/main/java/Soccer.java b/src/main/java/Soccer.java new file mode 100644 index 0000000..f8fa5d7 --- /dev/null +++ b/src/main/java/Soccer.java @@ -0,0 +1,13 @@ +public abstract class Soccer{ + private String name; + + Soccer(String name){ + this.name = name; + } + public String getName(){ + return name; + } + + abstract boolean shoot(); + +} From 86c09236969b59e6677cafe8e0a2bce604c0a208 Mon Sep 17 00:00:00 2001 From: Yujin Date: Mon, 22 May 2023 12:21:56 +0900 Subject: [PATCH 02/18] =?UTF-8?q?feat=20:=20Attacker=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Attacker.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/main/java/Attacker.java diff --git a/src/main/java/Attacker.java b/src/main/java/Attacker.java new file mode 100644 index 0000000..e6ae216 --- /dev/null +++ b/src/main/java/Attacker.java @@ -0,0 +1,12 @@ +import java.util.Random; + +public class Attacker extends Soccer{ + Attacker(String name){ + super(name); + } + + @Override + public boolean shoot(){ + + } +} From 35584e36dfb75fbbe0ea72aed43845ae95eadcff Mon Sep 17 00:00:00 2001 From: Yujin Date: Mon, 22 May 2023 12:23:58 +0900 Subject: [PATCH 03/18] =?UTF-8?q?feat=20:=20Midfielder=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Midfielder.java | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/main/java/Midfielder.java diff --git a/src/main/java/Midfielder.java b/src/main/java/Midfielder.java new file mode 100644 index 0000000..07928f4 --- /dev/null +++ b/src/main/java/Midfielder.java @@ -0,0 +1,9 @@ +public class Midfielder extends Soccer{ + Midfielder(String name){ + super(name); + } + + public boolean shoot(){ + return true; + } +} From 85e75c30a9fb5dca84af75d6fbcb819a7fdc8801 Mon Sep 17 00:00:00 2001 From: Yujin Date: Mon, 22 May 2023 12:24:55 +0900 Subject: [PATCH 04/18] =?UTF-8?q?feat=20:=20Keeper=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Keeper.java | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/main/java/Keeper.java diff --git a/src/main/java/Keeper.java b/src/main/java/Keeper.java new file mode 100644 index 0000000..35b0590 --- /dev/null +++ b/src/main/java/Keeper.java @@ -0,0 +1,9 @@ +public class Keeper extends Soccer{ + Keeper(String name){ + super(name); + } + + public boolean shoot(){ + return false; + } +} From 46577a086253d3db6fa04a43c9369ad57752c558 Mon Sep 17 00:00:00 2001 From: Yujin Date: Mon, 22 May 2023 13:39:07 +0900 Subject: [PATCH 05/18] =?UTF-8?q?feat=20:=20=EC=9D=B4=EB=A6=84=20=EC=9E=85?= =?UTF-8?q?=EB=A0=A5=EB=B0=9B=EA=B8=B0=20=EA=B8=B0=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/SoccerGameApplication.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/main/java/SoccerGameApplication.java b/src/main/java/SoccerGameApplication.java index 6185014..cae68f1 100644 --- a/src/main/java/SoccerGameApplication.java +++ b/src/main/java/SoccerGameApplication.java @@ -1,5 +1,25 @@ +import java.util.Scanner; + public class SoccerGameApplication { public static void main(String[] args) { + String[] names = inputNames("공격수"); + Attacker attacker1 = new Attacker(names[0]); + Attacker attacker2 = new Attacker(names[1]); + + names = inputNames("미드필더"); + Midfielder midfielder1 = new Midfielder(names[0]); + Midfielder midfielder2 = new Midfielder(names[1]); + + names = inputNames("골키퍼"); + Keeper keeper = new Keeper(names[0]); + + } + + static String[] inputNames(String position){ + Scanner sc = new Scanner(System.in); + System.out.printf("%s의 이름을 입력하세요 : ", position); + String[] names = sc.nextLine().split(", "); + return names; } } From 90d38d51097b28ffeef5dbda337d47d1f219f55f Mon Sep 17 00:00:00 2001 From: Yujin Date: Mon, 22 May 2023 13:47:38 +0900 Subject: [PATCH 06/18] =?UTF-8?q?feat=20:=20=EA=B3=B5=EC=B0=A8=EA=B8=B0=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Attacker.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/Attacker.java b/src/main/java/Attacker.java index e6ae216..fa568da 100644 --- a/src/main/java/Attacker.java +++ b/src/main/java/Attacker.java @@ -7,6 +7,11 @@ public class Attacker extends Soccer{ @Override public boolean shoot(){ + Random random = new Random(); + int shoot1 = random.nextInt(10); + int shoot2 = random.nextInt(10); + + return true; } } From f0e8a65c2de61331840c20dd7cee7ff618b63d75 Mon Sep 17 00:00:00 2001 From: Yujin Date: Mon, 22 May 2023 13:51:59 +0900 Subject: [PATCH 07/18] =?UTF-8?q?feat=20:=20=EA=B3=B5=EC=B0=A8=EA=B8=B0=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Midfielder.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/Midfielder.java b/src/main/java/Midfielder.java index 07928f4..e63713b 100644 --- a/src/main/java/Midfielder.java +++ b/src/main/java/Midfielder.java @@ -1,9 +1,15 @@ +import java.util.Random; + public class Midfielder extends Soccer{ Midfielder(String name){ super(name); } public boolean shoot(){ + Random random = new Random(); + + int shoot = random.nextInt(10); + return true; } } From 93f5be197018310c7a391348e3744e4235c839c8 Mon Sep 17 00:00:00 2001 From: Yujin Date: Tue, 23 May 2023 16:55:01 +0900 Subject: [PATCH 08/18] =?UTF-8?q?feat=20:=20=EA=B3=B5=EB=A7=89=EA=B8=B0=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Keeper.java | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main/java/Keeper.java b/src/main/java/Keeper.java index 35b0590..d695770 100644 --- a/src/main/java/Keeper.java +++ b/src/main/java/Keeper.java @@ -1,9 +1,28 @@ +import java.util.Random; + public class Keeper extends Soccer{ + private int keep_count = 3; + private boolean check = false; Keeper(String name){ super(name); } - public boolean shoot(){ + public boolean shoot(Keeper keeper){ + return false; + } + + public boolean block(int shoot){ + Random random = new Random(); + int blockShoot = random.nextInt(5) + 3; + if (shoot >= 2 && shoot <= 7 && keep_count > 0){ + keep_count -= 1; + return shoot != blockShoot; + } + if (shoot >= 2 && shoot <= 8){ + return true; + } return false; } + + } From 32c3fe146bb5b8e1809812e5eaffb6f559d12457 Mon Sep 17 00:00:00 2001 From: Yujin Date: Tue, 23 May 2023 16:56:06 +0900 Subject: [PATCH 09/18] =?UTF-8?q?feat=20:=20=EA=B3=A8=20=EC=A0=90=EC=88=98?= =?UTF-8?q?=20=EC=B6=9C=EB=A0=A5=20=EA=B8=B0=EB=8A=A5,=20=EC=8A=B9?= =?UTF-8?q?=EC=9E=90=EC=9D=98=20=EC=9D=B4=EB=A6=84=20=EC=B6=9C=EB=A0=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Attacker.java | 12 ++++-- src/main/java/Midfielder.java | 16 ++++++-- src/main/java/Soccer.java | 16 +++++++- src/main/java/SoccerGameApplication.java | 49 ++++++++++++++++++++++++ 4 files changed, 85 insertions(+), 8 deletions(-) diff --git a/src/main/java/Attacker.java b/src/main/java/Attacker.java index fa568da..48cd67c 100644 --- a/src/main/java/Attacker.java +++ b/src/main/java/Attacker.java @@ -6,11 +6,17 @@ public class Attacker extends Soccer{ } @Override - public boolean shoot(){ + public boolean shoot(Keeper keeper){ Random random = new Random(); - int shoot1 = random.nextInt(10); - int shoot2 = random.nextInt(10); + int shoot1 = random.nextInt(11); + int shoot2 = random.nextInt(11); + + if (keeper.block(shoot1) || keeper.block(shoot2)){ + goal(); + } + + print(getScore()); return true; } diff --git a/src/main/java/Midfielder.java b/src/main/java/Midfielder.java index e63713b..31f83b6 100644 --- a/src/main/java/Midfielder.java +++ b/src/main/java/Midfielder.java @@ -1,14 +1,22 @@ import java.util.Random; -public class Midfielder extends Soccer{ - Midfielder(String name){ +public class Midfielder extends Soccer { + Midfielder(String name) { super(name); } - public boolean shoot(){ + public boolean shoot(Keeper keeper) { Random random = new Random(); - int shoot = random.nextInt(10); + int shoot = random.nextInt(11); + + boolean shootBool = keeper.block(shoot); + + if (shootBool){ + goal(); + } + + print(getScore()); return true; } diff --git a/src/main/java/Soccer.java b/src/main/java/Soccer.java index f8fa5d7..3a4ade4 100644 --- a/src/main/java/Soccer.java +++ b/src/main/java/Soccer.java @@ -1,13 +1,27 @@ public abstract class Soccer{ private String name; + private int score; Soccer(String name){ this.name = name; + this.score = 0; } public String getName(){ return name; } - abstract boolean shoot(); + public void goal(){ + this.score += 1; + } + + abstract boolean shoot(Keeper keeper); + + public int getScore() { return score; } + + public void print(int score){ + for(int i = 0; i < score; i++){ + System.out.print("-"); + } + } } diff --git a/src/main/java/SoccerGameApplication.java b/src/main/java/SoccerGameApplication.java index cae68f1..5c71ead 100644 --- a/src/main/java/SoccerGameApplication.java +++ b/src/main/java/SoccerGameApplication.java @@ -1,3 +1,4 @@ +import javax.accessibility.AccessibleTable; import java.util.Scanner; public class SoccerGameApplication { @@ -13,6 +14,25 @@ public static void main(String[] args) { names = inputNames("골키퍼"); Keeper keeper = new Keeper(names[0]); + int matchPoint = inputMatchPoint(); + boolean bool = true; + + int count = 1; + + while(bool){ + System.out.printf("\n%d번째 슈팅결과\n", count); + System.out.printf("%s: ", attacker1.getName()); + attacker1.shoot(keeper); + System.out.printf("\n%s: ", attacker2.getName()); + attacker2.shoot(keeper); + System.out.printf("\n%s: ", midfielder1.getName()); + midfielder1.shoot(keeper); + System.out.printf("\n%s: ", midfielder2.getName()); + midfielder2.shoot(keeper); + count++; + bool = check(attacker1, attacker2, midfielder1, midfielder2, matchPoint); + } + } static String[] inputNames(String position){ @@ -22,4 +42,33 @@ static String[] inputNames(String position){ return names; } + + static int inputMatchPoint(){ + Scanner sc = new Scanner(System.in); + System.out.print("매치포인트를 입력하세요 : "); + + int matchPoint = sc.nextInt(); + + return matchPoint; + } + + static boolean check(Attacker attacker1, Attacker attacker2, Midfielder midfielder1, Midfielder midfielder2, int matchPoint){ + if (attacker1.getScore() == matchPoint){ + System.out.printf("\n\n승리자는 %s 입니다.", attacker1.getName()); + return false; + } + if (attacker2.getScore() == matchPoint){ + System.out.printf("\n\n승리자는 %s 입니다.", attacker2.getName()); + return false; + } + if (midfielder1.getScore() == matchPoint){ + System.out.printf("\n\n승리자는 %s 입니다.", midfielder1.getName()); + return false; + }if (midfielder2.getScore() == matchPoint){ + System.out.printf("\n\n승리자는 %s 입니다.", midfielder2.getName()); + return false; + } + return true; + } + } From 7e0c692f0bdb19f1664b8f4272932203c9f5f2fc Mon Sep 17 00:00:00 2001 From: Yujin Date: Tue, 23 May 2023 17:33:29 +0900 Subject: [PATCH 10/18] =?UTF-8?q?refactor=20:=20=EA=B3=A8=20=EC=A0=90?= =?UTF-8?q?=EC=88=98=20=EC=B6=9C=EB=A0=A5=EA=B8=B0=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/SoccerGameApplication.java | 25 +++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/main/java/SoccerGameApplication.java b/src/main/java/SoccerGameApplication.java index 5c71ead..9649b73 100644 --- a/src/main/java/SoccerGameApplication.java +++ b/src/main/java/SoccerGameApplication.java @@ -19,16 +19,11 @@ public static void main(String[] args) { int count = 1; + Soccer[] soccers = new Soccer[] {attacker1, attacker2, midfielder1, midfielder2}; + while(bool){ - System.out.printf("\n%d번째 슈팅결과\n", count); - System.out.printf("%s: ", attacker1.getName()); - attacker1.shoot(keeper); - System.out.printf("\n%s: ", attacker2.getName()); - attacker2.shoot(keeper); - System.out.printf("\n%s: ", midfielder1.getName()); - midfielder1.shoot(keeper); - System.out.printf("\n%s: ", midfielder2.getName()); - midfielder2.shoot(keeper); + System.out.printf("\n%d번째 슈팅결과", count); + printResult(soccers, keeper); count++; bool = check(attacker1, attacker2, midfielder1, midfielder2, matchPoint); } @@ -52,7 +47,7 @@ static int inputMatchPoint(){ return matchPoint; } - static boolean check(Attacker attacker1, Attacker attacker2, Midfielder midfielder1, Midfielder midfielder2, int matchPoint){ + static boolean check(Attacker attacker1, Attacker attacker2, Midfielder midfielder1, Midfielder midfielder2 ,int matchPoint){ if (attacker1.getScore() == matchPoint){ System.out.printf("\n\n승리자는 %s 입니다.", attacker1.getName()); return false; @@ -64,11 +59,19 @@ static boolean check(Attacker attacker1, Attacker attacker2, Midfielder midfield if (midfielder1.getScore() == matchPoint){ System.out.printf("\n\n승리자는 %s 입니다.", midfielder1.getName()); return false; - }if (midfielder2.getScore() == matchPoint){ + } + if (midfielder2.getScore() == matchPoint){ System.out.printf("\n\n승리자는 %s 입니다.", midfielder2.getName()); return false; } return true; } + static void printResult(Soccer[] soccers, Keeper keeper){ + for (Soccer soccer : soccers){ + System.out.printf("\n%s: ", soccer.getName()); + soccer.shoot(keeper); + } + } + } From 599bca93e7b09d6aa96e3c7fa65d4afce0bf36ea Mon Sep 17 00:00:00 2001 From: Yujin Date: Fri, 26 May 2023 12:29:57 +0900 Subject: [PATCH 11/18] =?UTF-8?q?refactor=20:=20Soccer=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=EB=A5=BC=20SoccerPlayer=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Attacker.java | 2 +- src/main/java/Midfielder.java | 2 +- src/main/java/SoccerGameApplication.java | 8 ++++---- src/main/java/{Soccer.java => SoccerPlayer.java} | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) rename src/main/java/{Soccer.java => SoccerPlayer.java} (86%) diff --git a/src/main/java/Attacker.java b/src/main/java/Attacker.java index 48cd67c..8f67627 100644 --- a/src/main/java/Attacker.java +++ b/src/main/java/Attacker.java @@ -1,6 +1,6 @@ import java.util.Random; -public class Attacker extends Soccer{ +public class Attacker extends SoccerPlayer{ Attacker(String name){ super(name); } diff --git a/src/main/java/Midfielder.java b/src/main/java/Midfielder.java index 31f83b6..17891c5 100644 --- a/src/main/java/Midfielder.java +++ b/src/main/java/Midfielder.java @@ -1,6 +1,6 @@ import java.util.Random; -public class Midfielder extends Soccer { +public class Midfielder extends SoccerPlayer { Midfielder(String name) { super(name); } diff --git a/src/main/java/SoccerGameApplication.java b/src/main/java/SoccerGameApplication.java index 9649b73..961fbe7 100644 --- a/src/main/java/SoccerGameApplication.java +++ b/src/main/java/SoccerGameApplication.java @@ -19,11 +19,11 @@ public static void main(String[] args) { int count = 1; - Soccer[] soccers = new Soccer[] {attacker1, attacker2, midfielder1, midfielder2}; + SoccerPlayer[] players = new SoccerPlayer[] {attacker1, attacker2, midfielder1, midfielder2}; while(bool){ System.out.printf("\n%d번째 슈팅결과", count); - printResult(soccers, keeper); + printResult(players, keeper); count++; bool = check(attacker1, attacker2, midfielder1, midfielder2, matchPoint); } @@ -67,8 +67,8 @@ static boolean check(Attacker attacker1, Attacker attacker2, Midfielder midfield return true; } - static void printResult(Soccer[] soccers, Keeper keeper){ - for (Soccer soccer : soccers){ + static void printResult(SoccerPlayer[] players, Keeper keeper){ + for (SoccerPlayer soccer : players){ System.out.printf("\n%s: ", soccer.getName()); soccer.shoot(keeper); } diff --git a/src/main/java/Soccer.java b/src/main/java/SoccerPlayer.java similarity index 86% rename from src/main/java/Soccer.java rename to src/main/java/SoccerPlayer.java index 3a4ade4..007a653 100644 --- a/src/main/java/Soccer.java +++ b/src/main/java/SoccerPlayer.java @@ -1,8 +1,8 @@ -public abstract class Soccer{ +public abstract class SoccerPlayer{ private String name; private int score; - Soccer(String name){ + SoccerPlayer(String name){ this.name = name; this.score = 0; } From 20436efdbdbe9f32aead5fda1441844aa549d72e Mon Sep 17 00:00:00 2001 From: Yujin Date: Fri, 26 May 2023 12:31:45 +0900 Subject: [PATCH 12/18] =?UTF-8?q?refactor=20:=20=EC=83=81=EC=86=8D=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Keeper.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/main/java/Keeper.java b/src/main/java/Keeper.java index d695770..ebe5099 100644 --- a/src/main/java/Keeper.java +++ b/src/main/java/Keeper.java @@ -1,14 +1,10 @@ import java.util.Random; -public class Keeper extends Soccer{ +public class Keeper { + private String name; private int keep_count = 3; - private boolean check = false; Keeper(String name){ - super(name); - } - - public boolean shoot(Keeper keeper){ - return false; + this.name = name; } public boolean block(int shoot){ From 11b202fc0a207758a15f5adef7c5c800dc4d2b40 Mon Sep 17 00:00:00 2001 From: Yujin Date: Fri, 26 May 2023 14:28:05 +0900 Subject: [PATCH 13/18] =?UTF-8?q?refactor=20:=20shoot=20=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=20=EC=9E=90=EB=A3=8C=ED=98=95=EC=9D=84=20void?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Attacker.java | 4 +--- src/main/java/Midfielder.java | 4 +--- src/main/java/SoccerPlayer.java | 2 +- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/main/java/Attacker.java b/src/main/java/Attacker.java index 8f67627..42fb929 100644 --- a/src/main/java/Attacker.java +++ b/src/main/java/Attacker.java @@ -6,7 +6,7 @@ public class Attacker extends SoccerPlayer{ } @Override - public boolean shoot(Keeper keeper){ + public void shoot(Keeper keeper){ Random random = new Random(); int shoot1 = random.nextInt(11); @@ -17,7 +17,5 @@ public boolean shoot(Keeper keeper){ } print(getScore()); - - return true; } } diff --git a/src/main/java/Midfielder.java b/src/main/java/Midfielder.java index 17891c5..20beb68 100644 --- a/src/main/java/Midfielder.java +++ b/src/main/java/Midfielder.java @@ -5,7 +5,7 @@ public class Midfielder extends SoccerPlayer { super(name); } - public boolean shoot(Keeper keeper) { + public void shoot(Keeper keeper) { Random random = new Random(); int shoot = random.nextInt(11); @@ -17,7 +17,5 @@ public boolean shoot(Keeper keeper) { } print(getScore()); - - return true; } } diff --git a/src/main/java/SoccerPlayer.java b/src/main/java/SoccerPlayer.java index 007a653..586d3b5 100644 --- a/src/main/java/SoccerPlayer.java +++ b/src/main/java/SoccerPlayer.java @@ -14,7 +14,7 @@ public void goal(){ this.score += 1; } - abstract boolean shoot(Keeper keeper); + abstract void shoot(Keeper keeper); public int getScore() { return score; } From dc46d386d669d6cddf890422d8b0469da6c95707 Mon Sep 17 00:00:00 2001 From: jyj1289 Date: Sat, 27 May 2023 15:12:33 +0900 Subject: [PATCH 14/18] =?UTF-8?q?refactor=20:=20names,=20players=EC=9D=98?= =?UTF-8?q?=20=EC=9E=90=EB=A3=8C=ED=98=95=EC=9D=84=20List=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/SoccerGameApplication.java | 74 +++++++++++------------- 1 file changed, 35 insertions(+), 39 deletions(-) diff --git a/src/main/java/SoccerGameApplication.java b/src/main/java/SoccerGameApplication.java index 961fbe7..58976c3 100644 --- a/src/main/java/SoccerGameApplication.java +++ b/src/main/java/SoccerGameApplication.java @@ -1,41 +1,56 @@ import javax.accessibility.AccessibleTable; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.Scanner; public class SoccerGameApplication { public static void main(String[] args) { - String[] names = inputNames("공격수"); - Attacker attacker1 = new Attacker(names[0]); - Attacker attacker2 = new Attacker(names[1]); + List names = inputNames("공격수"); + Attacker attacker1 = new Attacker(names.get(0)); + Attacker attacker2 = new Attacker(names.get(1)); names = inputNames("미드필더"); - Midfielder midfielder1 = new Midfielder(names[0]); - Midfielder midfielder2 = new Midfielder(names[1]); + Midfielder midfielder1 = new Midfielder(names.get(0)); + Midfielder midfielder2 = new Midfielder(names.get(1)); names = inputNames("골키퍼"); - Keeper keeper = new Keeper(names[0]); + Keeper keeper = new Keeper(names.get(0)); int matchPoint = inputMatchPoint(); - boolean bool = true; + boolean isNotGameDone = true; int count = 1; - SoccerPlayer[] players = new SoccerPlayer[] {attacker1, attacker2, midfielder1, midfielder2}; + List players = new ArrayList(); + players.add(attacker1); + players.add(attacker2); + players.add(midfielder1); + players.add(midfielder2); - while(bool){ + while(isNotGameDone){ System.out.printf("\n%d번째 슈팅결과", count); printResult(players, keeper); count++; - bool = check(attacker1, attacker2, midfielder1, midfielder2, matchPoint); + isNotGameDone = check(attacker1, matchPoint) && check(attacker2, matchPoint) + && check(midfielder1, matchPoint) && check(midfielder2, matchPoint); } } - static String[] inputNames(String position){ - Scanner sc = new Scanner(System.in); - System.out.printf("%s의 이름을 입력하세요 : ", position); - String[] names = sc.nextLine().split(", "); + static void printResult(List players, Keeper keeper){ + for (SoccerPlayer soccer : players){ + System.out.printf("\n%s: ", soccer.getName()); + soccer.shoot(keeper); + } + } - return names; + static boolean check(SoccerPlayer players ,int matchPoint){ + if (players.getScore() == matchPoint){ + System.out.printf("\n\n승리자는 %s 입니다.", players.getName()); + return false; + } + return true; } static int inputMatchPoint(){ @@ -47,31 +62,12 @@ static int inputMatchPoint(){ return matchPoint; } - static boolean check(Attacker attacker1, Attacker attacker2, Midfielder midfielder1, Midfielder midfielder2 ,int matchPoint){ - if (attacker1.getScore() == matchPoint){ - System.out.printf("\n\n승리자는 %s 입니다.", attacker1.getName()); - return false; - } - if (attacker2.getScore() == matchPoint){ - System.out.printf("\n\n승리자는 %s 입니다.", attacker2.getName()); - return false; - } - if (midfielder1.getScore() == matchPoint){ - System.out.printf("\n\n승리자는 %s 입니다.", midfielder1.getName()); - return false; - } - if (midfielder2.getScore() == matchPoint){ - System.out.printf("\n\n승리자는 %s 입니다.", midfielder2.getName()); - return false; - } - return true; - } + static List inputNames(String position){ + Scanner sc = new Scanner(System.in); + System.out.printf("%s의 이름을 입력하세요 : ", position); + List names = Arrays.asList(sc.nextLine().split(", ")); - static void printResult(SoccerPlayer[] players, Keeper keeper){ - for (SoccerPlayer soccer : players){ - System.out.printf("\n%s: ", soccer.getName()); - soccer.shoot(keeper); - } + return names; } } From d790e2d15b40bdbdac865ec199c0a66431fcf497 Mon Sep 17 00:00:00 2001 From: jyj1289 Date: Sat, 27 May 2023 15:13:20 +0900 Subject: [PATCH 15/18] =?UTF-8?q?refactor=20:=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=EC=9D=98=20=EC=9D=B4=EB=A6=84=EC=9D=84=20SoccerPlayer?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD,=20print=20=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/SoccerPlayer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/SoccerPlayer.java b/src/main/java/SoccerPlayer.java index 586d3b5..a2d07c9 100644 --- a/src/main/java/SoccerPlayer.java +++ b/src/main/java/SoccerPlayer.java @@ -18,10 +18,11 @@ public void goal(){ public int getScore() { return score; } - public void print(int score){ + public void printScore(){ for(int i = 0; i < score; i++){ System.out.print("-"); } } + } From ebf0a55d4148cee7d0b4514b6e0b7f338da504c0 Mon Sep 17 00:00:00 2001 From: jyj1289 Date: Sat, 27 May 2023 15:13:59 +0900 Subject: [PATCH 16/18] =?UTF-8?q?refactor=20:=20=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=20=ED=98=B8=EC=B6=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Attacker.java | 2 +- src/main/java/Midfielder.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/Attacker.java b/src/main/java/Attacker.java index 42fb929..3e3feb8 100644 --- a/src/main/java/Attacker.java +++ b/src/main/java/Attacker.java @@ -16,6 +16,6 @@ public void shoot(Keeper keeper){ goal(); } - print(getScore()); + printScore(); } } diff --git a/src/main/java/Midfielder.java b/src/main/java/Midfielder.java index 20beb68..5b98b53 100644 --- a/src/main/java/Midfielder.java +++ b/src/main/java/Midfielder.java @@ -16,6 +16,6 @@ public void shoot(Keeper keeper) { goal(); } - print(getScore()); + printScore(); } } From b06610e77a10392c523f4ba573248555643825b7 Mon Sep 17 00:00:00 2001 From: jyj1289 Date: Sun, 28 May 2023 01:06:34 +0900 Subject: [PATCH 17/18] =?UTF-8?q?refactor=20:=20check=EC=9D=98=20=ED=8C=8C?= =?UTF-8?q?=EB=9D=BC=EB=AF=B8=ED=84=B0=EB=A5=BC=20SoccerPlayer=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=ED=99=98,=20isNotGameDone=EC=97=90=20=EA=B0=92?= =?UTF-8?q?=EC=9D=84=20list=EB=A1=9C=20=EC=84=A0=EC=96=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/SoccerGameApplication.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/main/java/SoccerGameApplication.java b/src/main/java/SoccerGameApplication.java index 58976c3..4733a80 100644 --- a/src/main/java/SoccerGameApplication.java +++ b/src/main/java/SoccerGameApplication.java @@ -1,4 +1,3 @@ -import javax.accessibility.AccessibleTable; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -32,8 +31,9 @@ public static void main(String[] args) { System.out.printf("\n%d번째 슈팅결과", count); printResult(players, keeper); count++; - isNotGameDone = check(attacker1, matchPoint) && check(attacker2, matchPoint) - && check(midfielder1, matchPoint) && check(midfielder2, matchPoint); + isNotGameDone = players.stream() + .allMatch(player -> check(player, matchPoint)); + keeper.setCount(); } } @@ -45,9 +45,9 @@ static void printResult(List players, Keeper keeper){ } } - static boolean check(SoccerPlayer players ,int matchPoint){ - if (players.getScore() == matchPoint){ - System.out.printf("\n\n승리자는 %s 입니다.", players.getName()); + static boolean check(SoccerPlayer player , int matchPoint){ + if (player.getScore() == matchPoint){ + System.out.printf("\n\n승리자는 %s 입니다.", player.getName()); return false; } return true; @@ -57,9 +57,7 @@ static int inputMatchPoint(){ Scanner sc = new Scanner(System.in); System.out.print("매치포인트를 입력하세요 : "); - int matchPoint = sc.nextInt(); - - return matchPoint; + return sc.nextInt(); } static List inputNames(String position){ From 8a0bce781ace1a005cad9480b2c08a9a0509eb52 Mon Sep 17 00:00:00 2001 From: jyj1289 Date: Sun, 28 May 2023 01:07:19 +0900 Subject: [PATCH 18/18] =?UTF-8?q?refactor=20:=20=EA=B2=8C=EC=9E=84?= =?UTF-8?q?=EC=9D=84=20=ED=95=9C=EB=B2=88=20=ED=95=A0=EB=95=8C=EB=A7=88?= =?UTF-8?q?=EB=8B=A4=20keep=5Fcount=EA=B0=80=20=EC=B4=88=EA=B8=B0=ED=99=94?= =?UTF-8?q?=EB=90=98=EB=8F=84=EB=A1=9D=20=EB=B3=80=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Keeper.java | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/Keeper.java b/src/main/java/Keeper.java index ebe5099..b46c4d2 100644 --- a/src/main/java/Keeper.java +++ b/src/main/java/Keeper.java @@ -2,17 +2,18 @@ public class Keeper { private String name; - private int keep_count = 3; + private int keep_count; Keeper(String name){ this.name = name; + this.keep_count = 3; } public boolean block(int shoot){ Random random = new Random(); int blockShoot = random.nextInt(5) + 3; if (shoot >= 2 && shoot <= 7 && keep_count > 0){ - keep_count -= 1; - return shoot != blockShoot; + boolean bool = check(shoot, blockShoot); + return bool; } if (shoot >= 2 && shoot <= 8){ return true; @@ -21,4 +22,17 @@ public boolean block(int shoot){ } + public void setCount(){ + keep_count = 3; + } + + public boolean check(int shoot, int blockShoot){ + if (shoot == blockShoot){ + keep_count--; + return false; + } + return true; + } + + }