From d57cf93823c2163b32e34d4b0048944786aa37c9 Mon Sep 17 00:00:00 2001 From: mioyday Date: Wed, 25 Oct 2023 13:27:05 +0900 Subject: [PATCH 1/2] =?UTF-8?q?1=EC=A3=BC=EC=B0=A8=20=EB=AF=B8=EC=85=98=20?= =?UTF-8?q?=EC=88=AB=EC=9E=90=20=EC=95=BC=EA=B5=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/java/Compare.java | 25 +++++++++++++++++++++++++ main/java/GnerateRandomNUm.java | 24 ++++++++++++++++++++++++ main/java/Input.java | 19 +++++++++++++++++++ main/java/Judege.java | 21 +++++++++++++++++++++ main/java/MainGame.java | 23 +++++++++++++++++++++++ main/java/Playagain.java | 18 ++++++++++++++++++ 6 files changed, 130 insertions(+) create mode 100644 main/java/Compare.java create mode 100644 main/java/GnerateRandomNUm.java create mode 100644 main/java/Input.java create mode 100644 main/java/Judege.java create mode 100644 main/java/MainGame.java create mode 100644 main/java/Playagain.java diff --git a/main/java/Compare.java b/main/java/Compare.java new file mode 100644 index 0000000..d634bf2 --- /dev/null +++ b/main/java/Compare.java @@ -0,0 +1,25 @@ +package main.java; + +import java.util.List; + +public class Compare { + public int howMany(List computer, List player){ + int result = 0; + for(int i = 0; i < player.size(); i++){ + if(computer.contains(player.get(i))){ + result += 1; + + } + } + return result; + } + public int countStrike(List computer, List player){ + int strike = 0; + for(int i = 0; i < player.size(); i++){ + if(computer.get(i) == player.get(i)){ + strike += 1; + } + } + return strike; + } +} diff --git a/main/java/GnerateRandomNUm.java b/main/java/GnerateRandomNUm.java new file mode 100644 index 0000000..8c2313b --- /dev/null +++ b/main/java/GnerateRandomNUm.java @@ -0,0 +1,24 @@ +package main.java; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class GnerateRandomNUm { + public int randomMake(){ + Random random = new Random(); + return random.nextInt(9) + 1; + } + public List create(){ + List computerNumber = new ArrayList<>(); + while (computerNumber.size() < 3){ + int randomNumber = randomMake(); + if(computerNumber.contains(randomNumber)){ + continue; + }else{ + computerNumber.add(randomNumber); + } + } + return computerNumber; + } +} diff --git a/main/java/Input.java b/main/java/Input.java new file mode 100644 index 0000000..7bb1c42 --- /dev/null +++ b/main/java/Input.java @@ -0,0 +1,19 @@ +package main.java; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class Input { + public List playerNumber(){ + System.out.println("숫자를 입력해주세요"); + Scanner scanner = new Scanner(System.in); + List playerNum = new ArrayList<>(); + String input = scanner.next(); + + for(String number: input.split("")){ + playerNum.add(Integer.parseInt(number)); + } + return playerNum; + } +} diff --git a/main/java/Judege.java b/main/java/Judege.java new file mode 100644 index 0000000..643554a --- /dev/null +++ b/main/java/Judege.java @@ -0,0 +1,21 @@ +package main.java; + +import java.util.List; + +public class Judege { + Compare compare = new Compare(); + public String judgement(List computer, List player){ + int total = compare.howMany(computer, player); + int strike = compare.countStrike(computer, player); + int ball = total - strike; + + if(total ==0){ + return "낫싱"; + }else if(strike ==0){ + return ball + "볼"; + }else if(ball == 0){ + return strike + "스트라이크"; + } + return ball + "볼" + strike + "스트라이크"; + } +} diff --git a/main/java/MainGame.java b/main/java/MainGame.java new file mode 100644 index 0000000..117b058 --- /dev/null +++ b/main/java/MainGame.java @@ -0,0 +1,23 @@ +package main.java; + +import java.util.List; + +public class MainGame { + public static void main(String[] args){ + GnerateRandomNUm randomNUm = new GnerateRandomNUm(); + Input input = new Input(); + Judege judege = new Judege(); + Playagain playagain = new Playagain(); + boolean again = true; + + while (again){ + List computer = randomNUm.create(); + String result =""; + while (!result.equals("3tmxmfkdlzm")){ + result = judege.judgement(computer, input.playerNumber()); + System.out.println(result); + } + again = playagain.playagain(); + } + } +} diff --git a/main/java/Playagain.java b/main/java/Playagain.java new file mode 100644 index 0000000..28aa91e --- /dev/null +++ b/main/java/Playagain.java @@ -0,0 +1,18 @@ +package main.java; + +import java.util.Scanner; + +public class Playagain { + public boolean playagain(){ + + System.out.println("축하합니다! 경기를 다시 시작하겠습니까? 다시시작 : 1, 종료 : 2"); + Scanner scanner = new Scanner(System.in); + char answer = scanner.next().charAt(0); + if(answer == '1'){ + return true; + } + return false; + } +} + + From 7db5e02b0be42849be9050a59cf80b974e4e3a4f Mon Sep 17 00:00:00 2001 From: mioyday Date: Wed, 25 Oct 2023 15:24:20 +0900 Subject: [PATCH 2/2] =?UTF-8?q?1=EC=A3=BC=EC=B0=A8=20=EB=AF=B8=EC=85=98=20?= =?UTF-8?q?=EC=88=AB=EC=9E=90=20=EC=95=BC=EA=B5=AC=20Test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Test/CompareTest.java | 30 ++++++++++++++++++++++++++++++ Test/JudgeTest.java | 30 ++++++++++++++++++++++++++++++ Test/generateRandomNumTest.java | 18 ++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 Test/CompareTest.java create mode 100644 Test/JudgeTest.java create mode 100644 Test/generateRandomNumTest.java diff --git a/Test/CompareTest.java b/Test/CompareTest.java new file mode 100644 index 0000000..b9ead30 --- /dev/null +++ b/Test/CompareTest.java @@ -0,0 +1,30 @@ +package Test; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import java.util.Arrays; + +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +class CompareTest { + Compare compare; + + @BeforeEach + void setUp(){ + compare = new Compare(); + } + + @Test + @DisplayName("몇개의 숫자가 같은지 확인") + void count(){ + assertThat(3).isEqualTo(compare.howMany(Arrays.asList(1,2,3), Arrays.asList(3,1,2))); + } + + @Test + @DisplayName("스트라이크 수 확인") + void strike(){ + assertThat(1).isEqualTo(compare.countStrike(Arrays.asList(3,2,4),Arrays.asList(3,1,2))); + } +} \ No newline at end of file diff --git a/Test/JudgeTest.java b/Test/JudgeTest.java new file mode 100644 index 0000000..b9ead30 --- /dev/null +++ b/Test/JudgeTest.java @@ -0,0 +1,30 @@ +package Test; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import java.util.Arrays; + +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +class CompareTest { + Compare compare; + + @BeforeEach + void setUp(){ + compare = new Compare(); + } + + @Test + @DisplayName("몇개의 숫자가 같은지 확인") + void count(){ + assertThat(3).isEqualTo(compare.howMany(Arrays.asList(1,2,3), Arrays.asList(3,1,2))); + } + + @Test + @DisplayName("스트라이크 수 확인") + void strike(){ + assertThat(1).isEqualTo(compare.countStrike(Arrays.asList(3,2,4),Arrays.asList(3,1,2))); + } +} \ No newline at end of file diff --git a/Test/generateRandomNumTest.java b/Test/generateRandomNumTest.java new file mode 100644 index 0000000..79f5154 --- /dev/null +++ b/Test/generateRandomNumTest.java @@ -0,0 +1,18 @@ +package baseball.domain; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +class generateRandomNumTest { + @Test + @DisplayName("랜덤 숫자 생성 테스트") + void randomTest(){ + GenerateRandomNum generateRandomNum = new GenerateRandomNum(); + List test = generateRandomNum.create(); + assertThat(3).isEqualTo(test.size()); + } +} \ No newline at end of file