From fb17960c3547d6c715a19acc57085898562edc5a Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sat, 27 Jul 2024 20:22:02 +0900 Subject: [PATCH 01/22] =?UTF-8?q?=EC=B0=B8=EA=B0=80=EC=9E=90=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=20=EC=9E=85=EB=A0=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/BlackJack/BlackjackGame.java | 12 ++++++++++++ src/main/java/BlackJack/InputView.java | 15 +++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/main/java/BlackJack/BlackjackGame.java create mode 100644 src/main/java/BlackJack/InputView.java diff --git a/src/main/java/BlackJack/BlackjackGame.java b/src/main/java/BlackJack/BlackjackGame.java new file mode 100644 index 00000000000..7d4867a9192 --- /dev/null +++ b/src/main/java/BlackJack/BlackjackGame.java @@ -0,0 +1,12 @@ +package BlackJack; + +public class BlackjackGame { + + public static void main(String[] args) { + + String playerNamesInput = InputView.getPlayerNames(); + + + } + +} diff --git a/src/main/java/BlackJack/InputView.java b/src/main/java/BlackJack/InputView.java new file mode 100644 index 00000000000..f7dd52ba8dc --- /dev/null +++ b/src/main/java/BlackJack/InputView.java @@ -0,0 +1,15 @@ +package BlackJack; + +import java.util.Scanner; + +public class InputView { + + static Scanner sc = new Scanner(System.in); + + public static String getPlayerNames() { + System.out.println("게임에 참여할 사람의 이름을 입력하세요.(쉼표 기준으로 분리)"); + return sc.next(); + } + + +} From ec4ac5990a2fa7ce77f8f5c523f7cab38f6cd94d Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sat, 27 Jul 2024 20:23:06 +0900 Subject: [PATCH 02/22] =?UTF-8?q?=EC=89=BC=ED=91=9C=EB=A1=9C=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC=ED=95=B4=20=EB=B0=B0=EC=97=B4=EC=97=90=20=EC=A0=80?= =?UTF-8?q?=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/BlackJack/BlackjackGame.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/BlackJack/BlackjackGame.java b/src/main/java/BlackJack/BlackjackGame.java index 7d4867a9192..c36003d328f 100644 --- a/src/main/java/BlackJack/BlackjackGame.java +++ b/src/main/java/BlackJack/BlackjackGame.java @@ -5,7 +5,7 @@ public class BlackjackGame { public static void main(String[] args) { String playerNamesInput = InputView.getPlayerNames(); - + String[] playerNames = playerNamesInput.split(","); } From d4378c0abf340d715bf79f9b4c38a953f91eac4f Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sat, 27 Jul 2024 20:25:53 +0900 Subject: [PATCH 03/22] =?UTF-8?q?=EB=B6=84=EB=A6=AC=ED=95=9C=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=EC=9C=BC=EB=A1=9C=20Player=20=EA=B0=9D=EC=B2=B4=20?= =?UTF-8?q?=EB=A6=AC=EC=8A=A4=ED=8A=B8=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/BlackJack/BlackjackGame.java | 8 ++++++++ src/main/java/BlackJack/Player.java | 11 +++++++++++ 2 files changed, 19 insertions(+) create mode 100644 src/main/java/BlackJack/Player.java diff --git a/src/main/java/BlackJack/BlackjackGame.java b/src/main/java/BlackJack/BlackjackGame.java index c36003d328f..dd9de813d95 100644 --- a/src/main/java/BlackJack/BlackjackGame.java +++ b/src/main/java/BlackJack/BlackjackGame.java @@ -1,11 +1,19 @@ package BlackJack; +import java.util.ArrayList; +import java.util.List; + public class BlackjackGame { public static void main(String[] args) { String playerNamesInput = InputView.getPlayerNames(); String[] playerNames = playerNamesInput.split(","); + + List players = new ArrayList<>(); + for(String name : playerNames) { + players.add(new Player(name)); + } } diff --git a/src/main/java/BlackJack/Player.java b/src/main/java/BlackJack/Player.java new file mode 100644 index 00000000000..63a25d7dcf3 --- /dev/null +++ b/src/main/java/BlackJack/Player.java @@ -0,0 +1,11 @@ +package BlackJack; + +public class Player { + + private String name; + + public Player(String name) { + this.name = name; + } + +} From 0a7b31d575ab56bfad342ba25ea1a6245ab14583 Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sat, 27 Jul 2024 22:20:58 +0900 Subject: [PATCH 04/22] =?UTF-8?q?=EC=B9=B4=EB=93=9C=EB=A5=BC=20=EB=AC=B4?= =?UTF-8?q?=EC=9E=91=EC=9C=84=EB=A1=9C=20=EB=BD=91=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/BlackJack/BlackjackGame.java | 5 +++ src/main/java/BlackJack/Card.java | 8 +++++ src/main/java/BlackJack/Deal.java | 37 ++++++++++++++++++++++ src/main/java/BlackJack/Dealer.java | 9 ++++++ src/main/java/BlackJack/InputView.java | 2 +- src/main/java/BlackJack/Player.java | 2 ++ 6 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 src/main/java/BlackJack/Card.java create mode 100644 src/main/java/BlackJack/Deal.java create mode 100644 src/main/java/BlackJack/Dealer.java diff --git a/src/main/java/BlackJack/BlackjackGame.java b/src/main/java/BlackJack/BlackjackGame.java index dd9de813d95..5ca7ea9a9b5 100644 --- a/src/main/java/BlackJack/BlackjackGame.java +++ b/src/main/java/BlackJack/BlackjackGame.java @@ -14,6 +14,11 @@ public static void main(String[] args) { for(String name : playerNames) { players.add(new Player(name)); } + + Dealer dealer = new Dealer(); + Deal deal = new Deal(players, dealer); + + System.out.println(deal.PickCards(dealer)); } diff --git a/src/main/java/BlackJack/Card.java b/src/main/java/BlackJack/Card.java new file mode 100644 index 00000000000..63c01c43a06 --- /dev/null +++ b/src/main/java/BlackJack/Card.java @@ -0,0 +1,8 @@ +package BlackJack; + +import java.util.ArrayList; + +public class Card { + + private ArrayList cards; +} diff --git a/src/main/java/BlackJack/Deal.java b/src/main/java/BlackJack/Deal.java new file mode 100644 index 00000000000..9a69c31060a --- /dev/null +++ b/src/main/java/BlackJack/Deal.java @@ -0,0 +1,37 @@ +package BlackJack; + +import java.util.List; +import java.util.Random; + +public class Deal { + + private List players; + private Dealer dealer; + private String[] shape= {"하트", "다이아몬드", "클로버", "스페이드"}; + private String[] rank = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"}; + private Card Allcards; + + public Deal(List players, Dealer dealer) { + this.players = players; + this.dealer = dealer; + } + + public String PickCards(Player player) { + Random random = new Random(); + int PickShape; + PickShape = random.nextInt(shape.length); + + int PickRank; + PickRank = random.nextInt(rank.length); + + + StringBuilder c = new StringBuilder(); + c.append(shape[PickShape]); + c.append(rank[PickRank]); + + String card = c.toString(); + return card; + } + + +} diff --git a/src/main/java/BlackJack/Dealer.java b/src/main/java/BlackJack/Dealer.java new file mode 100644 index 00000000000..99cef715369 --- /dev/null +++ b/src/main/java/BlackJack/Dealer.java @@ -0,0 +1,9 @@ +package BlackJack; + + +public class Dealer extends Player{ + + public Dealer(){ + super("딜러"); + } +} diff --git a/src/main/java/BlackJack/InputView.java b/src/main/java/BlackJack/InputView.java index f7dd52ba8dc..a6b5bea7529 100644 --- a/src/main/java/BlackJack/InputView.java +++ b/src/main/java/BlackJack/InputView.java @@ -1,5 +1,6 @@ package BlackJack; +import java.util.List; import java.util.Scanner; public class InputView { @@ -10,6 +11,5 @@ public static String getPlayerNames() { System.out.println("게임에 참여할 사람의 이름을 입력하세요.(쉼표 기준으로 분리)"); return sc.next(); } - } diff --git a/src/main/java/BlackJack/Player.java b/src/main/java/BlackJack/Player.java index 63a25d7dcf3..20fe1752ecf 100644 --- a/src/main/java/BlackJack/Player.java +++ b/src/main/java/BlackJack/Player.java @@ -3,9 +3,11 @@ public class Player { private String name; + private Card cards; public Player(String name) { this.name = name; } + } From e8d00173eb55cdcf731e61579732ca1a91202420 Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sat, 27 Jul 2024 22:21:51 +0900 Subject: [PATCH 05/22] =?UTF-8?q?test=20:=20=EC=B9=B4=EB=93=9C=EB=A5=BC=20?= =?UTF-8?q?=EB=AC=B4=EC=9E=91=EC=9C=84=EB=A1=9C=20=EB=BD=91=EB=8A=94=20?= =?UTF-8?q?=ED=95=A8=EC=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + bin/.gitignore | 2 ++ build.gradle | 9 +++-- gradle/wrapper/gradle-wrapper.properties | 2 +- pom.xml | 43 ++++++++++++++++++++++++ src/main/java/BlackJack/Deal.java | 3 ++ src/test/java/BlackJack/DealTest.java | 27 +++++++++++++++ 7 files changed, 83 insertions(+), 4 deletions(-) create mode 100644 bin/.gitignore create mode 100644 pom.xml create mode 100644 src/test/java/BlackJack/DealTest.java diff --git a/.gitignore b/.gitignore index 6c018781387..2269c491128 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,4 @@ out/ ### VS Code ### .vscode/ +/target/ diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 00000000000..7eed456bec8 --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1,2 @@ +/main/ +/test/ diff --git a/build.gradle b/build.gradle index 3697236c6fb..4dff066b11e 100644 --- a/build.gradle +++ b/build.gradle @@ -10,11 +10,13 @@ repositories { dependencies { testImplementation platform('org.junit:junit-bom:5.9.1') - testImplementation platform('org.assertj:assertj-bom:3.25.1') - testImplementation('org.junit.jupiter:junit-jupiter') - testImplementation('org.assertj:assertj-core') + testImplementation 'org.junit.jupiter:junit-jupiter-api' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' + testImplementation 'org.junit.platform:junit-platform-launcher:1.9.3' + testImplementation 'org.junit.jupiter:junit-jupiter:5.10.0' } + java { toolchain { languageVersion = JavaLanguageVersion.of(17) @@ -24,3 +26,4 @@ java { test { useJUnitPlatform() } + diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 80187ac3043..e650f0277d0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/pom.xml b/pom.xml new file mode 100644 index 00000000000..218a47be1d5 --- /dev/null +++ b/pom.xml @@ -0,0 +1,43 @@ + + 4.0.0 + + com.example + blackjack + 1.0-SNAPSHOT + jar + + + 1.8 + 1.8 + 5.8.2 + + + + + + org.junit.jupiter + junit-jupiter-api + ${junit.jupiter.version} + test + + + + + org.junit.jupiter + junit-jupiter-engine + ${junit.jupiter.version} + test + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.2 + + + + \ No newline at end of file diff --git a/src/main/java/BlackJack/Deal.java b/src/main/java/BlackJack/Deal.java index 9a69c31060a..0cf5356b9ef 100644 --- a/src/main/java/BlackJack/Deal.java +++ b/src/main/java/BlackJack/Deal.java @@ -24,6 +24,9 @@ public String PickCards(Player player) { int PickRank; PickRank = random.nextInt(rank.length); + //테스트를 위한 코드 + PickShape = 0; + PickRank = 0; StringBuilder c = new StringBuilder(); c.append(shape[PickShape]); diff --git a/src/test/java/BlackJack/DealTest.java b/src/test/java/BlackJack/DealTest.java new file mode 100644 index 00000000000..593b0e54f7f --- /dev/null +++ b/src/test/java/BlackJack/DealTest.java @@ -0,0 +1,27 @@ +package BlackJack; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import org.junit.jupiter.api.Test; + +public class DealTest { + + @Test + void testPickCards() { + + Player player = new Player("pobi"); + List players = new ArrayList<>(); + players.add(player); + Dealer dealer = new Dealer(); + Deal deal = new Deal(players, dealer); + + Random fixedRandom = new Random(0); + String result = deal.PickCards(player); + + assertTrue(result.equals("하트A")); + } +} From 08ce5d40d7f9c57356c665616dd672206bf74357 Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sat, 27 Jul 2024 23:24:35 +0900 Subject: [PATCH 06/22] =?UTF-8?q?=EB=9E=9C=EB=8D=A4=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EB=B0=9B=EC=9D=80=20=EC=B9=B4=EB=93=9C=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/BlackJack/BlackjackGame.java | 16 ++++++++++- src/main/java/BlackJack/Card.java | 16 ++++++++++- src/main/java/BlackJack/Deal.java | 23 ++++++++++++++-- src/main/java/BlackJack/Player.java | 14 ++++++++++ src/main/java/BlackJack/ResultView.java | 32 ++++++++++++++++++++++ 5 files changed, 97 insertions(+), 4 deletions(-) create mode 100644 src/main/java/BlackJack/ResultView.java diff --git a/src/main/java/BlackJack/BlackjackGame.java b/src/main/java/BlackJack/BlackjackGame.java index 5ca7ea9a9b5..07c6bd3f3de 100644 --- a/src/main/java/BlackJack/BlackjackGame.java +++ b/src/main/java/BlackJack/BlackjackGame.java @@ -4,6 +4,7 @@ import java.util.List; public class BlackjackGame { + public static void main(String[] args) { @@ -18,8 +19,21 @@ public static void main(String[] args) { Dealer dealer = new Dealer(); Deal deal = new Deal(players, dealer); - System.out.println(deal.PickCards(dealer)); + ResultView result = new ResultView(); + + result.printFirst(playerNamesInput); + deal.dealOutCard(dealer); + deal.dealOutCard(dealer); + for(Player player : players) { + deal.dealOutCard(player); + deal.dealOutCard(player); + } + result.printFirstCard(dealer, players); + + + + } } diff --git a/src/main/java/BlackJack/Card.java b/src/main/java/BlackJack/Card.java index 63c01c43a06..c01fe220300 100644 --- a/src/main/java/BlackJack/Card.java +++ b/src/main/java/BlackJack/Card.java @@ -5,4 +5,18 @@ public class Card { private ArrayList cards; -} + + public Card() { + this.cards = new ArrayList<>(); + } + + public ArrayList getCard() { + return cards; + } + + public void addCard(String c) { + cards.add(c); + } + + +} \ No newline at end of file diff --git a/src/main/java/BlackJack/Deal.java b/src/main/java/BlackJack/Deal.java index 0cf5356b9ef..c64a001a31c 100644 --- a/src/main/java/BlackJack/Deal.java +++ b/src/main/java/BlackJack/Deal.java @@ -10,6 +10,7 @@ public class Deal { private String[] shape= {"하트", "다이아몬드", "클로버", "스페이드"}; private String[] rank = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"}; private Card Allcards; + private Card main = new Card(); public Deal(List players, Dealer dealer) { this.players = players; @@ -25,14 +26,32 @@ public String PickCards(Player player) { PickRank = random.nextInt(rank.length); //테스트를 위한 코드 - PickShape = 0; - PickRank = 0; + //PickShape = 0; + //PickRank = 0; StringBuilder c = new StringBuilder(); c.append(shape[PickShape]); c.append(rank[PickRank]); String card = c.toString(); + + + + return card; + } + + public boolean checkSameCard(String card, Card cards) { + return cards.getCard().contains(card); + } + + public String dealOutCard(Player player) { + String card = PickCards(player); + while(checkSameCard(card, player.getCards())||checkSameCard(card, main)) { + card = PickCards(player); + } + player.setCards(card); + main.addCard(card); + return card; } diff --git a/src/main/java/BlackJack/Player.java b/src/main/java/BlackJack/Player.java index 20fe1752ecf..6749028ac01 100644 --- a/src/main/java/BlackJack/Player.java +++ b/src/main/java/BlackJack/Player.java @@ -7,7 +7,21 @@ public class Player { public Player(String name) { this.name = name; + this.cards = new Card(); } + public String getName() { + return name; + } + + public Card getCards() { + return cards; + } + + public void setCards(String c) { + this.cards.addCard(c); + } + + } diff --git a/src/main/java/BlackJack/ResultView.java b/src/main/java/BlackJack/ResultView.java new file mode 100644 index 00000000000..7e9a860c7b9 --- /dev/null +++ b/src/main/java/BlackJack/ResultView.java @@ -0,0 +1,32 @@ +package BlackJack; + +import java.util.List; + +public class ResultView { + + public void printCard(Card card) { + for (int i = 0; i < card.getCard().size()-1; i++) { + System.out.print(card.getCard().get(i)+", "); + } + System.out.println(card.getCard().get(card.getCard().size()-1)); + } + + public void printFirst(String names) { + System.out.println("딜러와 " + names +"에게 2장을 나누었습니다."); + } + + public void printOwnCard(Player own) { + System.out.print(own.getName() + ":"); + printCard(own.getCards()); + } + + public void printFirstCard(Dealer dealer, List players) { + printOwnCard(dealer); + for(Player player : players) { + printOwnCard(player); + } + + } + + +} From 65263651ed3e2d1ac1ab07cf7f9c59ade5f13c76 Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sun, 28 Jul 2024 00:01:15 +0900 Subject: [PATCH 07/22] =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EC=B9=B4=EB=93=9C?= =?UTF-8?q?=20=EC=88=98=EB=A0=B9=20=EC=97=AC=EB=B6=80=20=ED=99=95=EC=9D=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/BlackJack/BlackjackGame.java | 21 +++++++++++++++++---- src/main/java/BlackJack/Deal.java | 3 ++- src/main/java/BlackJack/InputView.java | 4 ++++ src/main/java/BlackJack/ResultView.java | 2 +- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/main/java/BlackJack/BlackjackGame.java b/src/main/java/BlackJack/BlackjackGame.java index 07c6bd3f3de..aa9cda2eca7 100644 --- a/src/main/java/BlackJack/BlackjackGame.java +++ b/src/main/java/BlackJack/BlackjackGame.java @@ -4,11 +4,21 @@ import java.util.List; public class BlackjackGame { - + + public static void addCards(Deal deal, Player player, InputView input, ResultView result) { + String answer = input.getPlayerChoice(player.getName()); + while(answer.equals("y")){ + deal.dealOutCard(player); + result.printOwnCard(player); + answer = input.getPlayerChoice(player.getName()); + } + result.printCard(player.getCards()); + } public static void main(String[] args) { - String playerNamesInput = InputView.getPlayerNames(); + InputView input = new InputView(); + String playerNamesInput = input.getPlayerNames(); String[] playerNames = playerNamesInput.split(","); List players = new ArrayList<>(); @@ -28,9 +38,12 @@ public static void main(String[] args) { deal.dealOutCard(player); deal.dealOutCard(player); } - result.printFirstCard(dealer, players); + result.printPlayerCard(dealer, players); - + for(Player player : players) { + addCards(deal, player, input, result); + + } diff --git a/src/main/java/BlackJack/Deal.java b/src/main/java/BlackJack/Deal.java index c64a001a31c..1121aca58b4 100644 --- a/src/main/java/BlackJack/Deal.java +++ b/src/main/java/BlackJack/Deal.java @@ -55,5 +55,6 @@ public String dealOutCard(Player player) { return card; } - } + + diff --git a/src/main/java/BlackJack/InputView.java b/src/main/java/BlackJack/InputView.java index a6b5bea7529..7379cc1b72f 100644 --- a/src/main/java/BlackJack/InputView.java +++ b/src/main/java/BlackJack/InputView.java @@ -12,4 +12,8 @@ public static String getPlayerNames() { return sc.next(); } + public static String getPlayerChoice(String playerName) { + System.out.println(playerName + "는 한장의 카드를 더 받겠습니까?(예는 y, 아니오는 n)"); + return sc.next(); + } } diff --git a/src/main/java/BlackJack/ResultView.java b/src/main/java/BlackJack/ResultView.java index 7e9a860c7b9..1f34f6ec9bc 100644 --- a/src/main/java/BlackJack/ResultView.java +++ b/src/main/java/BlackJack/ResultView.java @@ -20,7 +20,7 @@ public void printOwnCard(Player own) { printCard(own.getCards()); } - public void printFirstCard(Dealer dealer, List players) { + public void printPlayerCard(Dealer dealer, List players) { printOwnCard(dealer); for(Player player : players) { printOwnCard(player); From d9e2558ef1fd33fd787c8dae2836448aaeaff163 Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sun, 28 Jul 2024 00:31:28 +0900 Subject: [PATCH 08/22] =?UTF-8?q?=EC=B9=B4=EB=93=9C=EB=A5=BC=20=EC=88=AB?= =?UTF-8?q?=EC=9E=90=EB=9F=AC=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/BlackJack/Calculate.java | 25 +++++++++++++++++++++++++ src/main/java/BlackJack/Card.java | 1 + src/main/java/BlackJack/Dealer.java | 1 + 3 files changed, 27 insertions(+) create mode 100644 src/main/java/BlackJack/Calculate.java diff --git a/src/main/java/BlackJack/Calculate.java b/src/main/java/BlackJack/Calculate.java new file mode 100644 index 00000000000..46780834319 --- /dev/null +++ b/src/main/java/BlackJack/Calculate.java @@ -0,0 +1,25 @@ +package BlackJack; + +public class Calculate { + + private String[] shape= {"하트", "다이아몬드", "클로버", "스페이드"}; + private String[] rank = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"}; + + Calculate(){ + } + + public int change(String c) { + char[] StringNum = c.toCharArray(); + char num = StringNum[StringNum.length-1]; + + if(num>=50&&num<=57) { + return num-48; + } + + if(num == 'A') { + return 1; + } + + return 10; + } +} diff --git a/src/main/java/BlackJack/Card.java b/src/main/java/BlackJack/Card.java index c01fe220300..ffac03d0b4f 100644 --- a/src/main/java/BlackJack/Card.java +++ b/src/main/java/BlackJack/Card.java @@ -3,6 +3,7 @@ import java.util.ArrayList; public class Card { + private ArrayList cards; diff --git a/src/main/java/BlackJack/Dealer.java b/src/main/java/BlackJack/Dealer.java index 99cef715369..8ad5ffa03b2 100644 --- a/src/main/java/BlackJack/Dealer.java +++ b/src/main/java/BlackJack/Dealer.java @@ -6,4 +6,5 @@ public class Dealer extends Player{ public Dealer(){ super("딜러"); } + } From e127509af59c2c5f7fc0a9a9f2136580aeb4886a Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sun, 28 Jul 2024 00:31:46 +0900 Subject: [PATCH 09/22] =?UTF-8?q?test=20:=20=EC=B9=B4=EB=93=9C=EB=A5=BC=20?= =?UTF-8?q?=EC=88=AB=EC=9E=90=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/test/java/BlackJack/CaculateTest.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/test/java/BlackJack/CaculateTest.java diff --git a/src/test/java/BlackJack/CaculateTest.java b/src/test/java/BlackJack/CaculateTest.java new file mode 100644 index 00000000000..b1bf5a99dce --- /dev/null +++ b/src/test/java/BlackJack/CaculateTest.java @@ -0,0 +1,20 @@ +package BlackJack; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +class CaculateTest { + + @Test + void changeTest() { + + Calculate calculate = new Calculate(); + String c = "스페이스5"; + int result = calculate.change(c); + assertThat(result).isEqualTo(5); + + } + +} From 0ce45382ef1337c80194d55cc4af13cbd4c8d292 Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sun, 28 Jul 2024 00:42:01 +0900 Subject: [PATCH 10/22] =?UTF-8?q?=EC=B9=B4=EB=93=9C=EC=9D=98=20=ED=95=A9?= =?UTF-8?q?=EC=9D=84=20=EA=B5=AC=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/BlackJack/Calculate.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/BlackJack/Calculate.java b/src/main/java/BlackJack/Calculate.java index 46780834319..718516f5026 100644 --- a/src/main/java/BlackJack/Calculate.java +++ b/src/main/java/BlackJack/Calculate.java @@ -4,8 +4,10 @@ public class Calculate { private String[] shape= {"하트", "다이아몬드", "클로버", "스페이드"}; private String[] rank = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"}; + private Card cards; - Calculate(){ + Calculate(Card cards){ + this.cards = cards; } public int change(String c) { @@ -22,4 +24,14 @@ public int change(String c) { return 10; } + + public int sum() { + int sum = 0; + for(String c : cards.getCard()) { + sum+=change(c); + } + + return sum; + + } } From 08358df988d0a0fdb2f721c3cee4c6cce9b5d460 Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sun, 28 Jul 2024 00:42:18 +0900 Subject: [PATCH 11/22] =?UTF-8?q?test=20:=20=EC=B9=B4=EB=93=9C=EC=9D=98=20?= =?UTF-8?q?=ED=95=A9=EC=9D=84=20=EA=B5=AC=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/BlackJack/CaculateTest.java | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/test/java/BlackJack/CaculateTest.java b/src/test/java/BlackJack/CaculateTest.java index b1bf5a99dce..f52aca2372d 100644 --- a/src/test/java/BlackJack/CaculateTest.java +++ b/src/test/java/BlackJack/CaculateTest.java @@ -10,11 +10,25 @@ class CaculateTest { @Test void changeTest() { - Calculate calculate = new Calculate(); - String c = "스페이스5"; + Card card = new Card(); + Calculate calculate = new Calculate(card); + String c = "스페이스K"; int result = calculate.change(c); - assertThat(result).isEqualTo(5); + assertThat(result).isEqualTo(10); } + + @Test + void sumTest() { + Card cards = new Card(); + cards.addCard("스페이스K"); + cards.addCard("하트A"); + cards.addCard("클로버8"); + + Calculate calculate = new Calculate(cards); + int sum = calculate.sum(); + + assertThat(sum).isEqualTo(19); + } } From 29e54481d2bf837b4d741ae0d52404dfe46f5de5 Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sun, 28 Jul 2024 02:24:29 +0900 Subject: [PATCH 12/22] =?UTF-8?q?21=EC=9D=84=20=EC=B4=88=EA=B3=BC=ED=95=A0?= =?UTF-8?q?=20=EA=B2=BD=EC=9A=B0=20=EC=B9=B4=EB=93=9C=EB=A5=BC=20=EB=8D=94?= =?UTF-8?q?=20=EB=B0=9B=EB=8A=94=20=EC=A7=88=EB=AC=B8=EC=9D=84=20=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/BlackJack/BlackjackGame.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/BlackJack/BlackjackGame.java b/src/main/java/BlackJack/BlackjackGame.java index aa9cda2eca7..244579fadfe 100644 --- a/src/main/java/BlackJack/BlackjackGame.java +++ b/src/main/java/BlackJack/BlackjackGame.java @@ -5,13 +5,15 @@ public class BlackjackGame { - public static void addCards(Deal deal, Player player, InputView input, ResultView result) { - String answer = input.getPlayerChoice(player.getName()); - while(answer.equals("y")){ + public static void addCards(Calculate calculate,Deal deal, Player player, InputView input, ResultView result) { + String answer; + do { + answer = input.getPlayerChoice(player.getName()); deal.dealOutCard(player); result.printOwnCard(player); - answer = input.getPlayerChoice(player.getName()); - } + + }while(answer.equals("y") && calculate.sum()< 21); + result.printCard(player.getCards()); } @@ -41,7 +43,8 @@ public static void main(String[] args) { result.printPlayerCard(dealer, players); for(Player player : players) { - addCards(deal, player, input, result); + Calculate calculate = new Calculate(player.getCards()); + addCards(calculate, deal, player, input, result); } From d5f78300e63b0c17e79118aa5d661f46c4e340db Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sun, 28 Jul 2024 02:46:19 +0900 Subject: [PATCH 13/22] =?UTF-8?q?=EB=94=9C=EB=9F=AC=EC=9D=98=20=EC=B9=B4?= =?UTF-8?q?=EB=93=9C=20=ED=95=A9=EC=9D=B4=2016=EC=9D=B4=ED=95=98=EC=9D=BC?= =?UTF-8?q?=EB=95=8C=20=EC=B9=B4=EB=93=9C=EB=A5=BC=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/BlackJack/BlackjackGame.java | 6 ++++++ src/main/java/BlackJack/Dealer.java | 7 +++++++ src/main/java/BlackJack/InputView.java | 2 +- src/main/java/BlackJack/ResultView.java | 15 ++++++++++++--- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/main/java/BlackJack/BlackjackGame.java b/src/main/java/BlackJack/BlackjackGame.java index 244579fadfe..3ce5646a96f 100644 --- a/src/main/java/BlackJack/BlackjackGame.java +++ b/src/main/java/BlackJack/BlackjackGame.java @@ -11,6 +11,7 @@ public static void addCards(Calculate calculate,Deal deal, Player player, InputV answer = input.getPlayerChoice(player.getName()); deal.dealOutCard(player); result.printOwnCard(player); + System.out.println(); }while(answer.equals("y") && calculate.sum()< 21); @@ -41,13 +42,18 @@ public static void main(String[] args) { deal.dealOutCard(player); } result.printPlayerCard(dealer, players); + System.out.println(); for(Player player : players) { Calculate calculate = new Calculate(player.getCards()); + System.out.println(); addCards(calculate, deal, player, input, result); } + System.out.println(); + result.addDealer(dealer, deal); + } diff --git a/src/main/java/BlackJack/Dealer.java b/src/main/java/BlackJack/Dealer.java index 8ad5ffa03b2..054ce9c6cb9 100644 --- a/src/main/java/BlackJack/Dealer.java +++ b/src/main/java/BlackJack/Dealer.java @@ -7,4 +7,11 @@ public Dealer(){ super("딜러"); } + public boolean over(Calculate calculate, Deal deal) { + if(calculate.sum()<17) { + deal.dealOutCard(this); + return true; + } + return false; + } } diff --git a/src/main/java/BlackJack/InputView.java b/src/main/java/BlackJack/InputView.java index 7379cc1b72f..30105e99454 100644 --- a/src/main/java/BlackJack/InputView.java +++ b/src/main/java/BlackJack/InputView.java @@ -12,7 +12,7 @@ public static String getPlayerNames() { return sc.next(); } - public static String getPlayerChoice(String playerName) { + public String getPlayerChoice(String playerName) { System.out.println(playerName + "는 한장의 카드를 더 받겠습니까?(예는 y, 아니오는 n)"); return sc.next(); } diff --git a/src/main/java/BlackJack/ResultView.java b/src/main/java/BlackJack/ResultView.java index 1f34f6ec9bc..86a80d04bf9 100644 --- a/src/main/java/BlackJack/ResultView.java +++ b/src/main/java/BlackJack/ResultView.java @@ -8,11 +8,12 @@ public void printCard(Card card) { for (int i = 0; i < card.getCard().size()-1; i++) { System.out.print(card.getCard().get(i)+", "); } - System.out.println(card.getCard().get(card.getCard().size()-1)); + int n =card.getCard().size()-1; + System.out.print(card.getCard().get(n)); } public void printFirst(String names) { - System.out.println("딜러와 " + names +"에게 2장을 나누었습니다."); + System.out.println("\n딜러와 " + names +"에게 2장을 나누었습니다."); } public void printOwnCard(Player own) { @@ -22,11 +23,19 @@ public void printOwnCard(Player own) { public void printPlayerCard(Dealer dealer, List players) { printOwnCard(dealer); + System.out.println(); for(Player player : players) { printOwnCard(player); + System.out.println(); } } - + + public void addDealer(Dealer dealer, Deal deal) { + Calculate calculate = new Calculate(dealer.getCards()); + if(dealer.over(calculate, deal)) { + System.out.println("딜러는 16이하라 한장의 카드를 더 받았습니다."); + } + } } From f025fdecaf8a060412ab96c9c63a04ae677a0417 Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sun, 28 Jul 2024 03:02:35 +0900 Subject: [PATCH 14/22] =?UTF-8?q?=EA=B2=B0=EA=B3=BC=EB=A5=BC=20=ED=8F=AC?= =?UTF-8?q?=ED=95=A8=ED=95=98=EC=97=AC=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/BlackJack/BlackjackGame.java | 3 +-- src/main/java/BlackJack/ResultView.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/BlackJack/BlackjackGame.java b/src/main/java/BlackJack/BlackjackGame.java index 3ce5646a96f..2fd72efc080 100644 --- a/src/main/java/BlackJack/BlackjackGame.java +++ b/src/main/java/BlackJack/BlackjackGame.java @@ -15,7 +15,6 @@ public static void addCards(Calculate calculate,Deal deal, Player player, InputV }while(answer.equals("y") && calculate.sum()< 21); - result.printCard(player.getCards()); } public static void main(String[] args) { @@ -54,7 +53,7 @@ public static void main(String[] args) { System.out.println(); result.addDealer(dealer, deal); - + result.printResult(dealer, players); } diff --git a/src/main/java/BlackJack/ResultView.java b/src/main/java/BlackJack/ResultView.java index 86a80d04bf9..02d238192ed 100644 --- a/src/main/java/BlackJack/ResultView.java +++ b/src/main/java/BlackJack/ResultView.java @@ -37,5 +37,19 @@ public void addDealer(Dealer dealer, Deal deal) { System.out.println("딜러는 16이하라 한장의 카드를 더 받았습니다."); } } + public void findResult(Player player) { + Calculate calculate; + System.out.print(player.getName() + "카드 : "); + printCard(player.getCards()); + calculate = new Calculate(player.getCards()); + System.out.println(" - 결과 : " + calculate.sum()); + } + + public void printResult(Dealer dealer, List players) { + findResult(dealer); + for(Player player : players) { + findResult(player); + } + } } From 5374c38c9875025f7f0a37134b12918806cad8af Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sun, 28 Jul 2024 03:30:09 +0900 Subject: [PATCH 15/22] =?UTF-8?q?=EC=8A=B9=ED=8C=A8=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/BlackJack/BlackjackGame.java | 2 + src/main/java/BlackJack/ResultView.java | 46 ++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/src/main/java/BlackJack/BlackjackGame.java b/src/main/java/BlackJack/BlackjackGame.java index 2fd72efc080..034fcbf6a01 100644 --- a/src/main/java/BlackJack/BlackjackGame.java +++ b/src/main/java/BlackJack/BlackjackGame.java @@ -55,6 +55,8 @@ public static void main(String[] args) { result.printResult(dealer, players); + result.finalWinOrLoss(dealer, players); + } } diff --git a/src/main/java/BlackJack/ResultView.java b/src/main/java/BlackJack/ResultView.java index 02d238192ed..c62d23109fc 100644 --- a/src/main/java/BlackJack/ResultView.java +++ b/src/main/java/BlackJack/ResultView.java @@ -45,6 +45,7 @@ public void findResult(Player player) { System.out.println(" - 결과 : " + calculate.sum()); } + public void printResult(Dealer dealer, List players) { findResult(dealer); for(Player player : players) { @@ -52,4 +53,49 @@ public void printResult(Dealer dealer, List players) { } } + + + public int findWin(Dealer dealer, Player player) { + Calculate calculate; + calculate = new Calculate(dealer.getCards()); + int dealerSum = calculate.sum(); + calculate = new Calculate(player.getCards()); + int playerSum = calculate.sum(); + + if(Math.abs(dealerSum - 21)< Math.abs(playerSum-21)) { + return 1; + } + + return 0; + } + + public void printWinLoss(Dealer dealer, Player player) { + if(findWin(dealer, player)== 0) { + System.out.println(player.getName() + " : 승"); + } + if(findWin(dealer, player)== 1) { + System.out.println(player.getName() + " : 패"); + } + } + + public int dealerWinLoss(Dealer dealer, List players) { + int total = 0; + for(Player player : players) { + total += findWin(dealer, player); + } + + return total; + } + + public void finalWinOrLoss(Dealer dealer, List players) { + int win = dealerWinLoss(dealer, players); + int loss = players.size()- dealerWinLoss(dealer, players); + System.out.println("## 최종 승패"); + System.out.println(dealer.getName() + " : " + win + "승 " + loss + "패"); + + for(Player player : players) { + printWinLoss(dealer, player); + } + } + } From 37318b460d1cd6b40fadc327ed5e3f3273a092ff Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sun, 28 Jul 2024 03:34:02 +0900 Subject: [PATCH 16/22] =?UTF-8?q?2=EB=8B=A8=EA=B3=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/BlackJack/BlackjackGame.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/BlackJack/BlackjackGame.java b/src/main/java/BlackJack/BlackjackGame.java index 034fcbf6a01..21035addaa2 100644 --- a/src/main/java/BlackJack/BlackjackGame.java +++ b/src/main/java/BlackJack/BlackjackGame.java @@ -52,10 +52,13 @@ public static void main(String[] args) { System.out.println(); result.addDealer(dealer, deal); + System.out.println(); result.printResult(dealer, players); + /*1단계 result.finalWinOrLoss(dealer, players); + */ } From 948ef90b483c6512f73728d4e2fa8ffecee09bce Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sun, 28 Jul 2024 03:58:16 +0900 Subject: [PATCH 17/22] =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95(y?= =?UTF-8?q?/n)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/BlackJack/BlackjackGame.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/main/java/BlackJack/BlackjackGame.java b/src/main/java/BlackJack/BlackjackGame.java index 21035addaa2..01521e41211 100644 --- a/src/main/java/BlackJack/BlackjackGame.java +++ b/src/main/java/BlackJack/BlackjackGame.java @@ -4,16 +4,21 @@ import java.util.List; public class BlackjackGame { + + public static void lessTwentyone(Calculate calculate,Deal deal, Player player, ResultView result) { + if(calculate.sum()<21) { + deal.dealOutCard(player); + result.printOwnCard(player); + System.out.println(); + } + } public static void addCards(Calculate calculate,Deal deal, Player player, InputView input, ResultView result) { String answer; do { - answer = input.getPlayerChoice(player.getName()); - deal.dealOutCard(player); - result.printOwnCard(player); - System.out.println(); - - }while(answer.equals("y") && calculate.sum()< 21); + answer= input.getPlayerChoice(player.getName()); + lessTwentyone(calculate, deal, player, result); + }while(answer.equals("y")&&calculate.sum()<21); } @@ -56,7 +61,7 @@ public static void main(String[] args) { result.printResult(dealer, players); - /*1단계 + /* 1단계 result.finalWinOrLoss(dealer, players); */ From bdbd6901cc2fa3cb892923804a56ef52da216eb1 Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sun, 28 Jul 2024 04:12:38 +0900 Subject: [PATCH 18/22] =?UTF-8?q?=EB=B0=B0=EB=8B=B9=EA=B8=88=20=EC=9E=85?= =?UTF-8?q?=EB=A0=A5=20=ED=9B=84=20=EB=A6=AC=EC=8A=A4=ED=8A=B8=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/BlackJack/BlackjackGame.java | 5 +++++ src/main/java/BlackJack/Calculate.java | 2 ++ src/main/java/BlackJack/InputView.java | 7 ++++++- src/main/java/BlackJack/Money.java | 14 ++++++++++++++ 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 src/main/java/BlackJack/Money.java diff --git a/src/main/java/BlackJack/BlackjackGame.java b/src/main/java/BlackJack/BlackjackGame.java index 01521e41211..e01176aff23 100644 --- a/src/main/java/BlackJack/BlackjackGame.java +++ b/src/main/java/BlackJack/BlackjackGame.java @@ -33,6 +33,11 @@ public static void main(String[] args) { players.add(new Player(name)); } + List dividends = new ArrayList<>(); + for(String name : playerNames) { + dividends.add(new Money(name,input.getMoney(name))); + } + Dealer dealer = new Dealer(); Deal deal = new Deal(players, dealer); diff --git a/src/main/java/BlackJack/Calculate.java b/src/main/java/BlackJack/Calculate.java index 718516f5026..d3dd0c965e0 100644 --- a/src/main/java/BlackJack/Calculate.java +++ b/src/main/java/BlackJack/Calculate.java @@ -34,4 +34,6 @@ public int sum() { return sum; } + + } diff --git a/src/main/java/BlackJack/InputView.java b/src/main/java/BlackJack/InputView.java index 30105e99454..0de7de22ac4 100644 --- a/src/main/java/BlackJack/InputView.java +++ b/src/main/java/BlackJack/InputView.java @@ -15,5 +15,10 @@ public static String getPlayerNames() { public String getPlayerChoice(String playerName) { System.out.println(playerName + "는 한장의 카드를 더 받겠습니까?(예는 y, 아니오는 n)"); return sc.next(); - } + } + + public int getMoney(String name) { + System.out.println(name + "의 배팅 금액은?"); + return sc.nextInt(); + } } diff --git a/src/main/java/BlackJack/Money.java b/src/main/java/BlackJack/Money.java new file mode 100644 index 00000000000..6c6a6a4609f --- /dev/null +++ b/src/main/java/BlackJack/Money.java @@ -0,0 +1,14 @@ +package BlackJack; + +public class Money { + + private String name; + private int money; + + Money(String name, int money){ + this.name = name; + this.money = money; + } + + +} From 0df4d9492baefc603167ebf14a411c27c236545f Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sun, 28 Jul 2024 05:01:21 +0900 Subject: [PATCH 19/22] =?UTF-8?q?=EC=A1=B0=EA=B1=B4=EC=97=90=20=EB=A7=9E?= =?UTF-8?q?=EA=B2=8C=20=EB=B0=B0=EB=8B=B9=EA=B8=88=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/BlackJack/BlackjackGame.java | 16 +++++---- src/main/java/BlackJack/InputView.java | 4 +-- src/main/java/BlackJack/Money.java | 35 +++++++++++++++++-- src/main/java/BlackJack/ResultView.java | 40 ++++++++++------------ 4 files changed, 61 insertions(+), 34 deletions(-) diff --git a/src/main/java/BlackJack/BlackjackGame.java b/src/main/java/BlackJack/BlackjackGame.java index e01176aff23..d03d5c33e06 100644 --- a/src/main/java/BlackJack/BlackjackGame.java +++ b/src/main/java/BlackJack/BlackjackGame.java @@ -5,11 +5,9 @@ public class BlackjackGame { - public static void lessTwentyone(Calculate calculate,Deal deal, Player player, ResultView result) { - if(calculate.sum()<21) { + public static void lessTwentyone(String answer,Calculate calculate,Deal deal, Player player, ResultView result) { + if(calculate.sum()<21&&answer.equals("y")) { deal.dealOutCard(player); - result.printOwnCard(player); - System.out.println(); } } @@ -17,7 +15,9 @@ public static void addCards(Calculate calculate,Deal deal, Player player, InputV String answer; do { answer= input.getPlayerChoice(player.getName()); - lessTwentyone(calculate, deal, player, result); + lessTwentyone(answer,calculate, deal, player, result); + result.printOwnCard(player); + System.out.println(); }while(answer.equals("y")&&calculate.sum()<21); } @@ -34,8 +34,9 @@ public static void main(String[] args) { } List dividends = new ArrayList<>(); - for(String name : playerNames) { - dividends.add(new Money(name,input.getMoney(name))); + for(Player player : players) { + int n=input.getMoney(player); + dividends.add(new Money(player,n)); } Dealer dealer = new Dealer(); @@ -70,6 +71,7 @@ public static void main(String[] args) { result.finalWinOrLoss(dealer, players); */ + result.finalMoney(dividends, dealer); } } diff --git a/src/main/java/BlackJack/InputView.java b/src/main/java/BlackJack/InputView.java index 0de7de22ac4..436dba6e6cb 100644 --- a/src/main/java/BlackJack/InputView.java +++ b/src/main/java/BlackJack/InputView.java @@ -17,8 +17,8 @@ public String getPlayerChoice(String playerName) { return sc.next(); } - public int getMoney(String name) { - System.out.println(name + "의 배팅 금액은?"); + public int getMoney(Player player) { + System.out.println(player.getName() + "의 배팅 금액은?"); return sc.nextInt(); } } diff --git a/src/main/java/BlackJack/Money.java b/src/main/java/BlackJack/Money.java index 6c6a6a4609f..78f16f376f8 100644 --- a/src/main/java/BlackJack/Money.java +++ b/src/main/java/BlackJack/Money.java @@ -2,13 +2,42 @@ public class Money { - private String name; + private Player player; private int money; - Money(String name, int money){ - this.name = name; + Money(Player player, int money){ + this.player = player; this.money = money; } + public int getMoney() { + return money; + } + public String getName() { + return player.getName(); + } + public Player getPlayer() { + return player; + } + public int result(Dealer dealer,ResultView result) { + Calculate calculate; + calculate = new Calculate(dealer.getCards()); + int dealerSum = calculate.sum(); + calculate = new Calculate(player.getCards()); + int playerSum = calculate.sum(); + + if(dealerSum > 21) { + return getMoney(); + } + if(playerSum > 21) { + return -getMoney(); + } + if(result.findWin(dealer, this) == 0) { + return getMoney(); + } + + return -getMoney(); + + } } diff --git a/src/main/java/BlackJack/ResultView.java b/src/main/java/BlackJack/ResultView.java index c62d23109fc..59baff37d3e 100644 --- a/src/main/java/BlackJack/ResultView.java +++ b/src/main/java/BlackJack/ResultView.java @@ -55,46 +55,42 @@ public void printResult(Dealer dealer, List players) { - public int findWin(Dealer dealer, Player player) { + public int findWin(Dealer dealer, Money money) { Calculate calculate; calculate = new Calculate(dealer.getCards()); int dealerSum = calculate.sum(); - calculate = new Calculate(player.getCards()); + calculate = new Calculate(money.getPlayer().getCards()); int playerSum = calculate.sum(); + if(dealerSum > 21) { + return 0; + } + if(Math.abs(dealerSum - 21)< Math.abs(playerSum-21)) { - return 1; + + return money.getMoney(); } return 0; } - public void printWinLoss(Dealer dealer, Player player) { - if(findWin(dealer, player)== 0) { - System.out.println(player.getName() + " : 승"); - } - if(findWin(dealer, player)== 1) { - System.out.println(player.getName() + " : 패"); - } - } - public int dealerWinLoss(Dealer dealer, List players) { + public int dealerWinLoss(Dealer dealer, List dividends) { int total = 0; - for(Player player : players) { - total += findWin(dealer, player); + for(Money money : dividends) { + total += findWin(dealer, money); } return total; } - public void finalWinOrLoss(Dealer dealer, List players) { - int win = dealerWinLoss(dealer, players); - int loss = players.size()- dealerWinLoss(dealer, players); - System.out.println("## 최종 승패"); - System.out.println(dealer.getName() + " : " + win + "승 " + loss + "패"); - - for(Player player : players) { - printWinLoss(dealer, player); + + + public void finalMoney(List dividends, Dealer dealer) { + System.out.println("## 최종 수익"); + System.out.println(dealer.getName() + " : " + dealerWinLoss(dealer,dividends)); + for(Money m : dividends) { + System.out.println(m.getName() + " : " + m.result(dealer, this)); } } From fcb2f4044d4a9bdbe982a08582d7fccd634d68d2 Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sun, 28 Jul 2024 17:29:08 +0900 Subject: [PATCH 20/22] =?UTF-8?q?=EC=B2=98=EC=9D=8C=20=EB=BD=91=EC=9D=80?= =?UTF-8?q?=20=EB=91=90=20=EC=B9=B4=EB=93=9C=EC=9D=98=20=ED=95=A9=EC=9D=B4?= =?UTF-8?q?=2021=EC=9D=BC=EB=95=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/BlackJack/BlackjackGame.java | 32 ++++++++++++++++++++++ src/main/java/BlackJack/Money.java | 22 ++++++++++++--- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/src/main/java/BlackJack/BlackjackGame.java b/src/main/java/BlackJack/BlackjackGame.java index d03d5c33e06..1be1f1fadfc 100644 --- a/src/main/java/BlackJack/BlackjackGame.java +++ b/src/main/java/BlackJack/BlackjackGame.java @@ -5,6 +5,26 @@ public class BlackjackGame { + public static int findBlackJack(Dealer dealer, Money m) { + Calculate c; + c = new Calculate(dealer.getCards()); + int dealerSum = c.sum(); + + c = new Calculate(m.getPlayer().getCards()); + int playerSum = c.sum(); + + if(dealerSum == 21 && playerSum == 21) { + m.setResult(m.getMoney()); + return 0; + } + if(dealerSum != 21 && playerSum == 21) { + m.setResult((int)(m.getMoney()*1.5)); + return 1; + } + return 0; + + } + public static void lessTwentyone(String answer,Calculate calculate,Deal deal, Player player, ResultView result) { if(calculate.sum()<21&&answer.equals("y")) { deal.dealOutCard(player); @@ -51,9 +71,21 @@ public static void main(String[] args) { deal.dealOutCard(player); deal.dealOutCard(player); } + + result.printPlayerCard(dealer, players); System.out.println(); + int bj = 0; + for(Money m : dividends) { + bj += findBlackJack(dealer, m); + } + if(bj!=0) { + result.printResult(dealer, players); + result.finalMoney(dividends, dealer); + return; + } + for(Player player : players) { Calculate calculate = new Calculate(player.getCards()); System.out.println(); diff --git a/src/main/java/BlackJack/Money.java b/src/main/java/BlackJack/Money.java index 78f16f376f8..328ed84c3b6 100644 --- a/src/main/java/BlackJack/Money.java +++ b/src/main/java/BlackJack/Money.java @@ -4,10 +4,12 @@ public class Money { private Player player; private int money; + private int result; Money(Player player, int money){ this.player = player; this.money = money; + this.result = 0; } public int getMoney() { @@ -19,6 +21,14 @@ public String getName() { public Player getPlayer() { return player; } + public int getResult() { + return result; + } + + public void setResult(int n) { + this.result = n; + } + public int result(Dealer dealer,ResultView result) { Calculate calculate; @@ -28,16 +38,20 @@ public int result(Dealer dealer,ResultView result) { int playerSum = calculate.sum(); if(dealerSum > 21) { - return getMoney(); + setResult(getMoney()); + return getResult(); } if(playerSum > 21) { - return -getMoney(); + setResult(-getMoney()); + return getResult(); } if(result.findWin(dealer, this) == 0) { - return getMoney(); + setResult(getMoney()); + return getResult(); } - return -getMoney(); + setResult(-getMoney()); + return getResult(); } } From e5a175482d91a9c609165a7e3b25731829a4f8b0 Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sun, 28 Jul 2024 17:41:11 +0900 Subject: [PATCH 21/22] =?UTF-8?q?=EC=98=A4=EB=A5=98=EC=B2=98=EB=A6=AC(y/n)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/BlackJack/InputView.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/BlackJack/InputView.java b/src/main/java/BlackJack/InputView.java index 436dba6e6cb..c66da8408d6 100644 --- a/src/main/java/BlackJack/InputView.java +++ b/src/main/java/BlackJack/InputView.java @@ -13,8 +13,18 @@ public static String getPlayerNames() { } public String getPlayerChoice(String playerName) { - System.out.println(playerName + "는 한장의 카드를 더 받겠습니까?(예는 y, 아니오는 n)"); - return sc.next(); + String choice; + while (true) { + System.out.println(playerName + "는 한장의 카드를 더 받겠습니까?(예는 y, 아니오는 n)"); + choice = sc.next(); + if (choice.equalsIgnoreCase("y") || choice.equalsIgnoreCase("n")) { + break; + } + if (!choice.equalsIgnoreCase("y") && !choice.equalsIgnoreCase("n")) { + System.out.println("잘못된 입력입니다. 예는 y, 아니오는 n 중 하나를 입력하세요."); + } + } + return choice; } public int getMoney(Player player) { From 53bace28c7ab4ee6f7f35469f618a49428e737d5 Mon Sep 17 00:00:00 2001 From: yuho9 <146949649+yuho9@users.noreply.github.com> Date: Sun, 28 Jul 2024 17:41:48 +0900 Subject: [PATCH 22/22] =?UTF-8?q?=EC=98=A4=EB=A5=98=EC=B2=98=EB=A6=AC(?= =?UTF-8?q?=EB=B0=B0=EB=8B=B9=EA=B8=88)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/BlackJack/InputView.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/BlackJack/InputView.java b/src/main/java/BlackJack/InputView.java index c66da8408d6..bf15984c9af 100644 --- a/src/main/java/BlackJack/InputView.java +++ b/src/main/java/BlackJack/InputView.java @@ -1,5 +1,6 @@ package BlackJack; +import java.util.InputMismatchException; import java.util.List; import java.util.Scanner; @@ -28,7 +29,21 @@ public String getPlayerChoice(String playerName) { } public int getMoney(Player player) { - System.out.println(player.getName() + "의 배팅 금액은?"); - return sc.nextInt(); + int money = 0; + while (true) { + System.out.println(player.getName() + "의 배팅 금액은?"); + try { + money = sc.nextInt(); + if (money > 0) { + break; + } else { + System.out.println("배팅 금액은 0보다 커야 합니다. 다시 입력하세요."); + } + } catch (InputMismatchException e) { + System.out.println("잘못된 입력입니다. 숫자를 입력하세요."); + sc.next(); + } + } + return money; } }