Search

문자열2_문제07_영어단어맞추기게임

대분류
STEP06 문자열
소분류
문자열2_문제

영상

문제

package 문자열2_문제; /* [문제] 처음 영어단어는 전부 *로 표시되어 출력된다. 영어단어를 입력받아 틀릴 때 마다 랜덤으로 한 글자씩 벗겨진다. 단, 점수는 5점씩 감점된다. 또한 같은 철자가 여러개이면 한번에 벗겨진다. 전부 벗겨지거나 영어단어를 맞추면 게임을 종료된다. [예시] >>> 영어단어 맞추기 게임 <<< 의미 : 공연 문제 : *********** 입력 : perform 의미 : 공연 문제 : *e********e 입력 : action 의미 : 공연 문제 : *e**o*****e ... */ public class 문자열2_문제07_영어단어맞추기게임_문제 { public static void main(String[] args) { String word = "performance"; String meaning = "공연"; int size = word.length(); boolean[] check = new boolean[size]; } }
Java
복사

해설

package 문자열2_문제; import java.util.Random; import java.util.Scanner; /* [문제] 처음 영어단어는 전부 *로 표시되어 출력된다. 영어단어를 입력받아 틀릴 때 마다 랜덤으로 한 글자씩 벗겨진다. 단, 점수는 5점씩 감점된다. 또한 같은 철자가 여러개이면 한번에 벗겨진다. 전부 벗겨지거나 영어단어를 맞추면 게임을 종료된다. [예시] >>> 영어단어 맞추기 게임 <<< 의미 : 공연 문제 : *********** 입력 : perform 의미 : 공연 문제 : *e********e 입력 : action 의미 : 공연 문제 : *e**o*****e ... */ public class 문자열2_문제07_영어단어맞추기게임_정답 { public static void main(String[] args) { Random ran = new Random(); Scanner scan = new Scanner(System.in); String word = "performance"; String meaning = "공연"; int size = word.length(); boolean[] check = new boolean[size]; while(true) { System.out.println(">>> 영어단어 맞추기 게임 <<<"); System.out.println("의미 : " + meaning); for(int i=0; i<check.length; i++) { if(check[i]) { System.out.print(word.charAt(i)); } else { System.out.print("*"); } } System.out.println(); // 게임 종료 조건2 int count = 0; for(int i=0; i<check.length; i++) { if(check[i]) { count += 1; } } if(count == word.length()) { System.out.println("다음에 다시 시도해주세요."); break; } System.out.print("입력 : "); String input = scan.next(); // 게임 종료 조건1 if(word.endsWith(input)) { System.out.println("정답입니다!"); break; } while(true) { int r = ran.nextInt(word.length()); if(check[r] == false) { check[r] = true; for(int i=0; i<word.length(); i++) { if(word.charAt(r) == word.charAt(i)) { check[i] = true; } } break; } } } scan.close(); } }
Java
복사