간단한 구구단 퀴즈에 대해서 만들어 봤습니다.


난이도 설정도 가능합니다.



난이도 설정에 적절하지 못한 값을 넣으시면 그냥 기본 값인 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();

}

}

}



간단하게 꾸미기 위해서 사용할 메서드들을 모으겠따라고 했지만,
결국 줄 출력하는 메서드를 2개가 끝...

그마저 하나는 사용하지도 않고 ㅋㅋㅋㅋ;

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));

}

}



gugu.jar


파일 입니다.


'프로그래밍 > Java' 카테고리의 다른 글

[Java] 난수(Random)  (0) 2017.02.01
[Java] 쓰레드 프로그래밍  (0) 2017.01.04
[Java] 익명 클래스 관련 문법 유형들  (0) 2016.08.11
[Java] UDP 통신 예제  (0) 2016.07.09