mojo's Blog

명품 JAVA Programming 제 7장 Open Challenge 본문

Java

명품 JAVA Programming 제 7장 Open Challenge

_mojo_ 2021. 7. 22. 03:24

영어 단어 테스트 프로그램 만들기

 

import java.util.*;

class Word{
	private String eng,han;
	Word(String eng, String han){
		this.eng=eng;
		this.han=han;
	}
	String getEng() {
		return this.eng;
	}
	String getHan() {
		return this.han;
	}
}


public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		
		System.out.println("\"명품영어\"의 단어 테스트를 시작합니다. -1을 입력하면 종료합니다.");
		Vector<Word> v=new Vector<Word>();
		v.add(new Word("painting","그림"));
		v.add(new Word("apple","사과"));
		v.add(new Word("banana","바나나"));
		v.add(new Word("C++","씨쁠쁠"));
		v.add(new Word("Java","자바"));
		v.add(new Word("Python","파이썬"));
		
		int size=v.size();
		System.out.println("현재 "+size+"개의 단어가 들어 있습니다.");
		
		while(true) {
			int r=(int)(Math.random()*size);
			String question=v.get(r).getEng(), answer=v.get(r).getHan();
			System.out.println(question+"?");
		
			boolean visited[]=new boolean[size];
			String ansArr[]=new String[4];
			int randAns=(int)(Math.random()*4);
			visited[r]=true; 
			ansArr[randAns]=answer;
			
			for(int i=0;i<4;i++) {
				if(i==randAns) continue;
				int no_RandAns=(int)(Math.random()*size);
				if(visited[no_RandAns]) {
					i--;
				}
				else {
					String noAns=v.get(no_RandAns).getHan();
					visited[no_RandAns]=true;
					ansArr[i]=noAns;
				}
			}
			
			for(int i=0;i<4;i++) {
				System.out.print("("+(i+1)+")"+ansArr[i]+" ");
			}
			System.out.print(" :> ");
			
			int userAns=scanner.nextInt();
			if(userAns==-1) {
				System.out.println("\"명품영어\"를 종료합니다.");
				break;
			}
			else {
				if(answer.equals(ansArr[userAns-1])){
					System.out.println("Excellent !!");
				}
				else {
					System.out.println("No. !!");
				}
			}
		}
		
		scanner.close();
	}

}

 

Comments