단어 퍼즐 게임은 스크램블된 글자들을 제공하고, 사용자는 이 글자들을 재배열하여 정답 단어를 맞추는 게임입니다. 이 게임은 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)
실행 방법
- Java 개발 환경을 설치합니다.
- 위의 코드를 Java 파일로 저장합니다.
- 컴파일 후 실행합니다.
컴파일
javac -encoding UTF-8 WordPuzzleGame.java
실행
java WordPuzzleGame
'자바(java)' 카테고리의 다른 글
주소록 관리: 연락처 정보를 저장하고 관리할 수 있는 주소록 애플리케이션을 설계합니다. (0) | 2023.12.21 |
---|---|
사진 및 비디오 갤러리: 사진과 비디오를 관리하고 갤러리 형태로 표시하는 앱을 구현합니다. (0) | 2023.12.21 |
다기능 멋진 브라우저: 웹 페이지를 열고 탐색할 수 있는 멋진 브라우저를 만듭니다. (1) | 2023.12.21 |
전자책 페이지를 넘길 수 있는 리더 애플리케이션을 제작다. (0) | 2023.12.21 |
계좌 관리 프로그램: 윈도우에서 수입과 지출을 기록하고 잔액을 관리하는 가계부 앱을 설계합니다. (0) | 2023.12.21 |