JAVA 實現《複雜迷宮》遊戲|CSDN創作打卡
public class StartView extends JFrame {
public StartView() {
this.setTitle(" 複雜迷宮 ");
this.setSize(240, 265);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setResizable(false);
initialize();
this.setVisible(true);
}
private void initialize() {
JPanel contentPane = new JPanel();
this.setContentPane(contentPane);
contentPane.setLayout(null);
JLabel widthLabel = new JLabel(" 迷宮長度: ");
JLabel heightLabel = new JLabel(" 迷宮高度: ");
JLabel levelLabel = new JLabel(" 難度 :");
JTextField widthText = new JTextField();
JTextField heightText = new JTextField();
JRadioButton level1 = new JRadioButton("1");
JRadioButton level2 = new JRadioButton("2");
JRadioButton level3 = new JRadioButton("3");
ButtonGroup levelGroup = new ButtonGroup();
levelGroup.add(level1);
levelGroup.add(level2);
levelGroup.add(level3);
JButton run = new JButton(" 生成迷宮 ");
// 設定標籤位置
widthLabel.setBounds(20, 20, 100, 30);
heightLabel.setBounds(20, 70, 110, 30);
widthText.setBounds(120, 20, 70, 30);
heightText.setBounds(120, 70, 70, 30);
levelLabel.setBounds(20, 120, 60, 30);
level1.setBounds(80, 120, 50, 30);
level2.setBounds(130, 120, 50, 30);
level3.setBounds(180, 120, 50, 30);
run.setBounds(55, 170, 120, 30);
// 限制輸入框只接收數字
widthText.setDocument(new NumberTextField());
heightText.setDocument(new NumberTextField());
// 改變字型
Font font = new Font(" 楷體 ", Font.PLAIN, 17);
widthLabel.setFont(font);
heightLabel.setFont(font);
widthText.setFont(font);
heightText.setFont(font);
levelLabel.setFont(font);
level1.setFont(font);
level2.setFont(font);
level3.setFont(font);
run.setFont(font);
// 取消按鈕選中邊框
level1.setFocusPainted(false);
level2.setFocusPainted(false);
level3.setFocusPainted(false);
// 預設選擇難度 3
level3.setSelected(true);
contentPane.add(widthLabel);
contentPane.add(heightLabel);
contentPane.add(widthText);
contentPane.add(heightText);
contentPane.add(levelLabel);
contentPane.add(level1);
contentPane.add(level2);
contentPane.add(level3);
contentPane.add(run);
// 生成迷宮監聽器
run.addActionListener(e -> {
// 建議寬在 10-90 ,長在 10-45 之間
if (widthText.getText().equals("")) {
JOptionPane.showMessageDialog(null, " 長度不能為空! ", " 提示 ", JOptionPane.INFORMATION_MESSAGE);
} else if (heightText.getText().equals("")) {
JOptionPane.showMessageDialog(null, " 高度不能為空! ", " 提示 ", JOptionPane.INFORMATION_MESSAGE);
} else {
int width = Integer.parseInt(widthText.getText());
int height = 外匯跟單gendan5.comInteger.parseInt(heightText.getText());
if (width >= 10 && width <= 90 && height >= 10 && height <= 45) {
int level = level1.isSelected() ? 1 : level2.isSelected() ? 2 : 3;
MazeModel maze = new MazeModel(width, height, level);
this.dispose();
maze.draw();
} else {
JOptionPane.showMessageDialog(null, " 迷宮的長必須在 10-45 之間,寬必須在 10-90 之間,請檢查輸入是否有誤! ", " 錯誤輸入 ", JOptionPane.ERROR_MESSAGE);
}
}
});
// 新增Enter鍵入監聽器
KeyAdapter enterAdapter = new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
run.doClick(); // 回車即生成迷宮
}
}
};
widthText.addKeyListener(enterAdapter);
heightText.addKeyListener(enterAdapter);
}
public static void main(String[] args) {
new StartView();
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2856216/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 解密迷宮問題:三種高效演算法Java實現,讓你輕鬆穿越未知迷宮解密演算法Java
- 自動走迷宮小遊戲~遊戲
- 51nod 1459 迷宮遊戲遊戲
- 走迷宮
- 【Javascript + Vue】實現隨機生成迷宮圖片JavaScriptVue隨機
- C++實現迷宮的生成與解決C++
- 內容是超正統的迷宮RPG?PSP遊戲《迷宮旅人2》深度解析遊戲
- C++基於控制檯的迷宮實現(上)C++
- 509迷宮
- 回溯和遞迴實現迷宮問題(C語言)遞迴C語言
- Python 精靈模組_迷宮房間類遊戲Python遊戲
- 用webgl打造自己的3D迷宮遊戲Web3D遊戲
- 簡單介紹Python迷宮生成和迷宮破解演算法Python演算法
- PHP 生成迷宮路線PHP
- 【面試】如何找到迷宮出口面試
- 【Javascript + Vue】實現對任意迷宮圖片的自動尋路JavaScriptVue
- iOS 實現多個可變 cell 複雜介面的製作iOS
- PHP 解迷宮之 H 最小PHP
- Python迷宮生成器Python
- 回溯法求迷宮問題
- 藍橋杯-走迷宮(BFS)
- POJ3984-迷宮問題
- 迷宮問題【資料結構實驗報告】資料結構
- GridLayoutManager 實現 複雜列布局
- SVG 實現複雜線條動畫SVG動畫
- PHP 解迷宮之 G + H 最小PHP
- 用 Canvas + WASM 畫一個迷宮CanvasASM
- 回溯法解決迷宮問題
- 隨機迷宮生成演算法隨機演算法
- 如何用程式解圖片迷宮?
- C語言動態走迷宮C語言
- 藍橋杯-迷宮(BFS+DFS)
- 用Q-learning演算法實現自動走迷宮機器人演算法機器人
- (C++)資料結構實驗二——迷宮問題C++資料結構
- JAVA 實現 - 雜湊表Java
- 如何用js寫一個簡單的迷宮和打地鼠遊戲JS遊戲
- 華為優招面試題---迷宮問題面試題
- UOJ #810. 【UNR #7】位元迷宮