본문 바로가기

자바(java)

퀴즈 게임: 다양한 주제의 퀴즈를 제공하고 사용자의 정답을 평가하는 게임을 만듭니다.

반응형

1. 내용 설명

퀴즈 게임은 다양한 주제의 질문을 제공하고, 사용자가 이에 답하는 형식의 게임입니다. 사용자는 주어진 옵션 중에서 하나를 선택하여 답변하며, 정답 여부에 따라 점수를 얻습니다. 게임의 목표는 가능한 많은 점수를 획득하는 것입니다.

2. 프로그램 간 사용 함수 설명

  • loadQuestions(): 퀴즈 질문과 옵션을 로드합니다.
  • askQuestion(): 사용자에게 질문을 제시하고 입력을 받습니다.
  • checkAnswer(): 사용자의 답변을 평가합니다.
  • showScore(): 최종 점수를 표시합니다.

3. 코딩 내용

 

import java.util.*;

public class QuizGame {
    private List<Question> questions = new ArrayList<>();
    private Scanner scanner = new Scanner(System.in);
    private int score = 0;

    public QuizGame() {
        loadQuestions();
        for (Question question : questions) {
            askQuestion(question);
        }
        showScore();
    }

    private void loadQuestions() {
        questions.add(new Question("질문 1", Arrays.asList("A", "B", "C", "D"), "A"));
        questions.add(new Question("질문 2", Arrays.asList("A", "B", "C", "D"), "B"));
        // 여기에 더 많은 질문 추가
    }

    private void askQuestion(Question question) {
        System.out.println(question.getQuestion());
        question.getOptions().forEach(option -> System.out.println("- " + option));
        Systehttp://m.out.print("답변: ");
        String answer = scanner.nextLine();
        if (checkAnswer(question, answer)) {
            System.out.println("정답입니다!");
            score++;
        } else {
            System.out.println("틀렸습니다. 정답은 " + question.getAnswer() + "입니다.");
        }
    }

    private boolean checkAnswer(Question question, String answer) {
        return question.getAnswer().equalsIgnoreCase(answer.trim());
    }

    private void showScore() {
        System.out.println("당신의 점수: " + score + "/" + questions.size());
    }

    public static void main(String[] args) {
        new QuizGame();
    }

    private static class Question {
        private String question;
        private List<String> options;
        private String answer;

        public Question(String question, List<String> options, String answer) {
            this.question = question;
            this.options = options;
            this.answer = answer;
        }

        public String getQuestion() {
            return question;
        }

        public List<String> getOptions() {
            return options;
        }

        public String getAnswer() {
            return answer;
        }
    }
}

 

4. 전문용어

  • List: 자바 컬렉션 프레임워크의 일부로, 객체들의 순서 있는 목록을 나타냅니다.
  • Scanner: 사용자 입력을 읽기 위한 자바 클래스입니다.
  • Question 클래스: 퀴즈 질문, 옵션, 정답을 저장하는 클래스입니다.

5. 라이브러리 추가 및 실행 방법

  • 본 프로그램은 자바 표준 라이브러리만을 사용합니다.

컴파일:
javac -encoding UTF-8 QuizGame.java

 

실행:
java QuizGame

반응형