간단한 구구단 퀴즈에 대해서 만들어 봤습니다.
난이도 설정도 가능합니다.
난이도 설정에 적절하지 못한 값을 넣으시면 그냥 기본 값인 9단까지로만 출력 되도록 난이도가 설정됩니다.
메인 파일 내용입니다.
import java.util.Scanner;
public class Main {
public static void main(String args[])
{
int level;
Scanner sc = new Scanner(System.in);
try
{
System.out.println("난이도를 입력해주세요 : ");
level = sc.nextInt();
}
catch(Exception e)
{
System.out.println("잘못된 입력 값으로 기본 값으로 실행합니다.");
level = 8;
}
Quiz quiz = new Quiz(level);
while(true)
{
quiz.create();
quiz.printQuiz();
}
}
}
public class CUI {
public static void printLine(char symbol, int count)
{
for(int i=1; i<=count; i++)
System.out.print(symbol);
System.out.println("");
}
public static void printLine()
{
printLine('=', 60);
}
}
import java.util.*;
import java.util.Scanner;
public class Quiz
{
private int level = 0;
private int firstNum;
private int secondNum;
private int countO = 0;
private int countX = 0;
public Quiz(int level) {
setLevel(level);
}
public void create()
{
Random rand = new Random();
setFirstNum(rand.nextInt(getLevel())+1);
setSecondNum(rand.nextInt(getLevel())+1);
}
/*퀴즈 출력 부*/
public void printQuiz(){
CUI.printLine();
System.out.printf("%d X %d = ?\n", firstNum, secondNum);
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
try
{
if(sc.nextInt()==getAnswer())
{
System.out.println("정답 ");
countO++;
}
else
{
System.out.println("오답");
countX++;
}
}
catch(Exception e)
{
System.out.println("[ERROR]0 이상의 정수 값만 입력해 주세요.");
System.out.println("오답");
}
finally
{
printStats();
}
}
public void printStats(){
System.out.println("누적 정답 : " + getCountO());
System.out.println("누적 오답 : " + getCountX());
System.out.println("정답률 : " + (int)(getAnswerPer()*100) + "%");
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
if(level <= 0)
this.level = 1;
else
this.level = level;
}
public int getFirstNum() {
return firstNum;
}
public void setFirstNum(int firstNum) {
this.firstNum = firstNum;
}
public int getSecondNum() {
return secondNum;
}
public void setSecondNum(int secondNum) {
this.secondNum = secondNum;
}
public int getAnswer(){
return this.firstNum * this.secondNum;
}
public int getCountO() {
return countO;
}
public int getCountX() {
return countX;
}
public double getAnswerPer(){
return ((double)countO / (double)(countO + countX));
}
}
'프로그래밍 > Java' 카테고리의 다른 글
[Java] 난수(Random) (0) | 2017.02.01 |
---|---|
[Java] 쓰레드 프로그래밍 (0) | 2017.01.04 |
[Java] 익명 클래스 관련 문법 유형들 (0) | 2016.08.11 |
[Java] UDP 통신 예제 (0) | 2016.07.09 |