From efa91a967befa18d34a266628c86d6e50cbb034a Mon Sep 17 00:00:00 2001 From: dlwodud032 Date: Fri, 7 Feb 2025 15:40:05 +0900 Subject: [PATCH 1/2] fdf --- ...54\355\230\204\353\252\251\353\241\235.md" | 0 .../src/main/java/code/seeds/Main.java | 64 +++++++++++++++++-- 2 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 "week1/seeds-java/docs/\352\270\260\353\212\245\352\265\254\355\230\204\353\252\251\353\241\235.md" diff --git "a/week1/seeds-java/docs/\352\270\260\353\212\245\352\265\254\355\230\204\353\252\251\353\241\235.md" "b/week1/seeds-java/docs/\352\270\260\353\212\245\352\265\254\355\230\204\353\252\251\353\241\235.md" new file mode 100644 index 0000000..e69de29 diff --git a/week1/seeds-java/src/main/java/code/seeds/Main.java b/week1/seeds-java/src/main/java/code/seeds/Main.java index 07a13bd..22d8054 100644 --- a/week1/seeds-java/src/main/java/code/seeds/Main.java +++ b/week1/seeds-java/src/main/java/code/seeds/Main.java @@ -1,13 +1,15 @@ package code.seeds; +import java.util.Random; import java.util.Scanner; public class Main { private String computerWord; + private static final String[] words = {"apple", "plane", "place", "paper"}; public Main(){ - computerWord = RandomWordGenerator.getRandomWord(); + Random ran = new Random();computerWord = RandomWordGenerator.getRandomWord(); } public Main(String fixedWord){ // 테스트용 생성자. 삭제 금지. @@ -15,15 +17,69 @@ public Main(String fixedWord){ // 테스트용 생성자. 삭제 금지. } public static void main(String[] args) { - System.out.println("단어 맞추기 게임을 시작합니다!."); + // System.out.println("단어 맞추기 게임을 시작합니다!."); Scanner scanner = new Scanner(System.in); new Main().run(scanner); scanner.close(); } public void run(Scanner scanner) { - System.out.print("단어를 입력해주세요: "); - String input = scanner.nextLine().trim(); + System.out.println("단어 맞추기 게임을 시작합니다."); + while (true) { + System.out.print("단어를 입력해주세요: "); + String input = scanner.nextLine().trim(); + + if (input.length() != computerWord.length() || !input.matches("[a-zA-Z]+")) { + throw new IllegalArgumentException("5글자 알파벳으로 된 단어를 입력하세요."); + } + + String answerTemp = computerWord; + int match = 0; + int wrong = 0; + + for (int i = 0; i < answerTemp.length(); i++) { + if (input.substring(i, i + 1).equals(answerTemp.substring(i, i + 1))) { + match++; + answerTemp = answerTemp.substring(0, i) + "1" + answerTemp.substring(i + 1); + input = input.substring(0, i) + "2" + input.substring(i + 1); + } + } + + for (int i = 0; i < answerTemp.length(); i++) { + for (int j = 0; j < answerTemp.length(); j++) { + if (input.substring(i, i + 1).equals(answerTemp.substring(j, j + 1))) { + wrong++; + answerTemp = answerTemp.substring(0, j) + "1" + answerTemp.substring(j + 1); + break; + } + } + } + + if (match != 0) { + System.out.print(match + "매치 "); + } + if (wrong != 0) { + System.out.print(wrong + "틀림 "); + } + System.out.println(); + + if (match == 5) { + System.out.println("정답입니다! 게임 종료"); + System.out.println("게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요."); + int num = scanner.nextInt(); + + if (num == 2) { + break; + } else if (num == 1) { + Random ran = new Random(); + computerWord = words[ran.nextInt(words.length)]; + scanner.nextLine(); // 버퍼 초기화 + } + else { + throw new IllegalArgumentException("1 또는 2를 입력하세요."); + } + } + } // 컴퓨터 랜덤 단어 생성은 RandomWordGenerator.getRandomWord(); 를 이용한다. } } From 5dd9172fa078aee72e9dc65c8c8e797454bce6bd Mon Sep 17 00:00:00 2001 From: dlwodud032 Date: Fri, 7 Feb 2025 17:18:04 +0900 Subject: [PATCH 2/2] aaa --- week1/seeds-java/src/main/java/code/seeds/Main.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/week1/seeds-java/src/main/java/code/seeds/Main.java b/week1/seeds-java/src/main/java/code/seeds/Main.java index 22d8054..95ccf46 100644 --- a/week1/seeds-java/src/main/java/code/seeds/Main.java +++ b/week1/seeds-java/src/main/java/code/seeds/Main.java @@ -6,10 +6,10 @@ public class Main { private String computerWord; - private static final String[] words = {"apple", "plane", "place", "paper"}; public Main(){ - Random ran = new Random();computerWord = RandomWordGenerator.getRandomWord(); + Random ran = new Random(); + computerWord = RandomWordGenerator.getRandomWord(); } public Main(String fixedWord){ // 테스트용 생성자. 삭제 금지. @@ -27,7 +27,7 @@ public void run(Scanner scanner) { System.out.println("단어 맞추기 게임을 시작합니다."); while (true) { System.out.print("단어를 입력해주세요: "); - String input = scanner.nextLine().trim(); + String input = scanner.next(); if (input.length() != computerWord.length() || !input.matches("[a-zA-Z]+")) { throw new IllegalArgumentException("5글자 알파벳으로 된 단어를 입력하세요."); @@ -71,9 +71,7 @@ public void run(Scanner scanner) { if (num == 2) { break; } else if (num == 1) { - Random ran = new Random(); - computerWord = words[ran.nextInt(words.length)]; - scanner.nextLine(); // 버퍼 초기화 + computerWord = RandomWordGenerator.getRandomWord(); } else { throw new IllegalArgumentException("1 또는 2를 입력하세요.");