영어 단어 뜻 맞추기 게임
영어 단어와 한글 단어로 구성되는 Word 클래스를 작성
여러 개의 Word 객체를 Vector<Word> 컬렉션에 삽입
이 중 랜덤하게 사용자에게 문제 출제
벡터 내에 정답이 아닌 단어를 랜덤하게 3개 선택하고 정답과 함께 4개의 보기 출력
-1 입력 시 종료
ex)
painting?
(1)그림 (2)감정 (3)아기 (4)오류
>>
Word 클래스와 WordQuiz 클래스를 작성하고 WordQuiz 클래스에 main() 메소드
WordQuiz 클래스에서 아래와 같이 벡터를 만들고 미리 여러 개의 Word 객체를 삽입하는 코드 작성
Vector<Word> v=new Vector<Word>();
v.add(new Word("love", "사랑"));
v.add(new Word("animal", "동물"));
Word 클래스
public class Word {
String eng;
String kor;
public Word(String eng, String kor) {
this.eng=eng;
this.kor=kor;
}
public String getEng() {
return eng;
}
public String getKor() {
return kor;
}
}
MakeQustion 클래스
import java.util.*;
public class MakeQuestion {
int ex[] = {0, 0, 0, 0}; // 4개의 선지 배열을 0으로 초기화
public MakeQuestion(int num, int size) {
int answerNum = (int)(Math.random()*4); //정답 번호
ex[answerNum] = num; // 정답의 Vector<Word> 인덱스 번호
for(int i=0; i<4; i++) {
int n = (int)(Math.random()*size);
if(ex[i]==0) {
ex[i] = n;
}
else continue;
for(int j=0; j<4; j++) {
if(i!=j && ex[j]==ex[i]) {
ex[i]=0;
i--;
}
else continue;
}
}
}
}
WordQuiz 클래스
import java.util.*;
public class WordQuiz {
Scanner scanner=new Scanner(System.in);
Vector<Word> v=new Vector<>();
public void setWords() {
v.add(new Word("love", "사랑"));
v.add(new Word("animal", "동물"));
v.add(new Word("rice", "밥"));
v.add(new Word("java", "자바"));
v.add(new Word("flower", "꽃"));
v.add(new Word("baby", "아기"));
v.add(new Word("dog", "개"));
v.add(new Word("friend", "친구"));
}
public void showQuestion() {
while(true) {
System.out.println();
int answerIndex=(int)(Math.random()*v.size()); //랜덤 번호
String question=v.get(answerIndex).getEng(); //해당하는 영어 단어
System.out.println(question+"?");
MakeQuestion mq=new MakeQuestion(answerIndex, v.size());
for(int i=0; i<4; i++) {
System.out.print("("+(i+1) + ")"+v.get(mq.ex[i]).getKor()+" ");
}
System.out.print(":>");
int sel = scanner.nextInt(); // 사용자가 고른 번호
if(sel == -1) { // -1 입력 시 종료
System.out.println("종료합니다...");
return;
}
else if(mq.ex[(sel-1)]==answerIndex)
System.out.println("Excellent!!");
else
System.out.println("No. !!");
}
}
public void run() {
setWords();
System.out.println("단어 테스트를 시작합니다. -1을 입력하면 종료합니다.");
System.out.println("현재 "+v.size()+"개의 단어가 들어 있습니다.");
showQuestion();
}
public static void main(String[] args) {
WordQuiz wq=new WordQuiz();
wq.run();
}
}
>>실행

아.......어렵네요
매우 어려워요
'java > 예제&실습' 카테고리의 다른 글
[명품자바] 6장 실습문제 (0) | 2024.06.27 |
---|---|
[명품자바] 8장 오픈챌린지 (0) | 2024.06.25 |
[명품자바] 6장 오픈챌린지 (0) | 2024.06.19 |
[명품자바] 5장 오픈챌린지 (0) | 2024.06.19 |
[명품자바] 4장 오픈챌린지 (0) | 2024.06.19 |