From 0be9dba36b784353b8234ec83ce88245a664414b Mon Sep 17 00:00:00 2001 From: dan Date: Tue, 29 Aug 2023 12:13:59 +0900 Subject: [PATCH] =?UTF-8?q?=EC=88=AB=EC=9E=90=EC=95=BC=EA=B5=AC=EA=B2=8C?= =?UTF-8?q?=EC=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/StringNumberBaseBallGame.java | 81 +++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/main/java/StringNumberBaseBallGame.java diff --git a/src/main/java/StringNumberBaseBallGame.java b/src/main/java/StringNumberBaseBallGame.java new file mode 100644 index 000000000..0554f34a5 --- /dev/null +++ b/src/main/java/StringNumberBaseBallGame.java @@ -0,0 +1,81 @@ +import java.util.Arrays; +import java.util.Random; +import java.util.Scanner; + +public class StringNumberBaseBallGame { + + public static void main(String[] args) { + + Random random = new Random(); + String[] randomNumber = new String[3]; + + // 스트라이크 수 초기화 + int strikeCnt = 0; + // 볼 수 초기화 + int ballCnt = 0; + + // 3자리 난수 생성 (int 값을 String으로 형변환) + for (int i = 0; i < 3; i++) { + randomNumber[i] = Integer.toString(random.nextInt(9)); + } + randomNumber[0] = "1"; + randomNumber[1] = "1"; + randomNumber[2] = "2"; + + System.out.println("난수 값 : " + Arrays.toString(randomNumber)); + // 사용자가 입력한 숫자 + String baseBallNumber = ""; + + Scanner scanner = new Scanner(System.in); + System.out.print("숫자를 입력해주세요. : "); + + baseBallNumber = scanner.nextLine(); + + // 입력받은 숫자를 String배열로 저장 + String[] baseBallNumberArray = baseBallNumber.split(""); + + for (int i = 0; i < randomNumber.length; i++){ + + strikeCnt = _getStrikeCnt(strikeCnt, randomNumber[i], baseBallNumberArray[i]); + + ballCnt = _getballCnt( ballCnt, i, randomNumber[i], baseBallNumberArray ); + } + + if (strikeCnt == 0 && ballCnt == 0) { + System.out.println("낫싱"); + return; + } + + System.out.println("스트라이크 : " + strikeCnt); + System.out.println("볼 : " + ballCnt); + } + + static int _getStrikeCnt(int strikeCnt, String randomNumber, String baseBallNumberArray) { + + if (randomNumber.equals(baseBallNumberArray)) { + strikeCnt++; + } + return strikeCnt; + } + + static int _getballCnt(int ballCnt, int index, String randomNumber, String[]baseBallNumberArray) { + + for (int j = 0; j < baseBallNumberArray.length; j++){ + ballCnt = _getLoop(ballCnt, index, j, randomNumber, baseBallNumberArray[j]); +// System.out.println("볼 cnt 값 확인 : " + ballCnt); + } + + return ballCnt; + } + + static int _getLoop(int ballCnt, int index1, int index2, String randomNumber, String baseBallNumberArray) { + +// System.out.println("_getLoop index1 확인 : " + index1); +// System.out.println("_getLoop index2 확인 : " + index2); + if (index1 != index2 && randomNumber.equals(baseBallNumberArray)){ + ballCnt++; +// System.out.println("_getLoop 볼 cnt 값 확인 : " + ballCnt); + } + return ballCnt; + } +}