본문 바로가기

자바(java)

단어 퍼즐 게임: 스크램블 된 글자를 재배열하여 단어를 맞추는 게임을 만듭니다.

반응형

단어 퍼즐 게임은 스크램블된 글자들을 제공하고, 사용자는 이 글자들을 재배열하여 정답 단어를 맞추는 게임입니다. 이 게임은 Java로 구현할 수 있으며, Java Swing을 사용하여 GUI를 제공합니다.

1. 내용 설명

단어 퍼즐 게임에서는 무작위로 섞인 글자들이 주어지고, 사용자는 이 글자들을 올바른 순서로 재배열하여 단어를 완성해야 합니다. 사용자가 단어를 맞추면 점수를 얻고, 다음 레벨로 진행할 수 있습니다.

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

  • generateScrambledWord(): 랜덤 단어를 선택하고 이를 스크램블합니다.
  • checkAnswer(String userAnswer): 사용자의 답변이 정답인지 확인합니다.
  • updateScore(): 사용자의 점수를 업데이트합니다.
  • nextLevel(): 다음 레벨로 진행합니다.

3. 코딩 내용

 

 

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;

public class WordPuzzleGame extends JFrame implements ActionListener {
    private JLabel scrambledWordLabel;
    private JTextField answerField;
    private JButton submitButton;
    private String currentWord;
    private int score = 0;

    // 단어 목록
    private List<String> words = Arrays.asList("example", "puzzle", "java", "swing", "game");

    public WordPuzzleGame() {
        setTitle("Word Puzzle Game - Score: " + score);
        setLayout(new FlowLayout());
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        scrambledWordLabel = new JLabel();
        answerField = new JTextField(20);
        submitButton = new JButton("Submit");

        add(scrambledWordLabel);
        add(answerField);
        add(submitButton);

        submitButton.addActionListener(this);

        nextLevel();

        pack();
        setVisible(true);
    }

    private void nextLevel() {
        currentWord = words.get((int)(Math.random() * words.size()));
        String scrambledWord = scrambleWord(currentWord);
        scrambledWordLabel.setText(scrambledWord);
        answerField.setText("");
    }

    private String scrambleWord(String word) {
        List<Character> characters = new ArrayList<>();
        for (char c : word.toCharArray()) {
            characters.add(c);
        }
        Collections.shuffle(characters);
        StringBuilder sb = new StringBuilder();
        for (char c : characters) {
            sb.append(c);
        }
        return sb.toString();
    }

    private void checkAnswer(String userAnswer) {
        if (userAnswer.equalsIgnoreCase(currentWord)) {
            score++;
            updateScore();
            nextLevel();
        } else {
            JOptionPane.showMessageDialog(this, "Incorrect! Try again.");
        }
    }

    private void updateScore() {
        setTitle("Word Puzzle Game - Score: " + score);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == submitButton) {
            checkAnswer(answerField.getText());
        }
    }

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

4. 전문용어

  • Java: 객체 지향 프로그래밍 언어입니다.
  • Swing: Java의 그래픽 사용자 인터페이스 툴킷입니다.
  • JFrame: Swing 기반의 창을 만들기 위한 클래스입니다.
  • ActionListener: 버튼 클릭과 같은 액션 이벤트를 처리하기 위한 인터페이스입니다.

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

라이브러리

  • Java 표준 라이브러리 (Swing)

실행 방법

  1. Java 개발 환경을 설치합니다.
  2. 위의 코드를 Java 파일로 저장합니다.
  3. 컴파일 후 실행합니다.

컴파일

javac -encoding UTF-8 WordPuzzleGame.java

 

실행

java WordPuzzleGame

반응형