Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file.
60 changes: 57 additions & 3 deletions week1/seeds-java/src/main/java/code/seeds/Main.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package code.seeds;

import java.util.Random;
import java.util.Scanner;

public class Main {

private String computerWord;

public Main(){
Random ran = new Random();
computerWord = RandomWordGenerator.getRandomWord();
}

Expand All @@ -15,15 +17,67 @@ 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) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

한 파일에 여러 로직이 들어있는 것 같습니다! 각 로직마다 클래스를 나누어서 책임과 역할을 구분하시는 것도 괜찮을 것 같아요👍🏻

System.out.print("단어를 입력해주세요: ");
String input = scanner.next();

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) {
computerWord = RandomWordGenerator.getRandomWord();
}
else {
throw new IllegalArgumentException("1 또는 2를 입력하세요.");
}
}
}
// 컴퓨터 랜덤 단어 생성은 RandomWordGenerator.getRandomWord(); 를 이용한다.
}
}