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
- 內容是超正統的迷宮RPG?PSP遊戲《迷宮旅人2》深度解析遊戲
- 創造你的專屬迷宮 《磚塊迷宮建造者》上架WeGameGAM
- Python 精靈模組_迷宮房間類遊戲Python遊戲
- 【Javascript + Vue】實現隨機生成迷宮圖片JavaScriptVue隨機
- C++實現迷宮的生成與解決C++
- 走迷宮
- 1744 迷宮
- 509迷宮
- 回溯和遞迴實現迷宮問題(C語言)遞迴C語言
- 迷宮問題
- 3090 走迷宮
- 3089 探索迷宮
- GridLayoutManager 實現 複雜列布局
- 如何用js寫一個簡單的迷宮和打地鼠遊戲JS遊戲
- 製作遊戲的遊戲:創作樂趣的樂趣遊戲
- 簡單介紹Python迷宮生成和迷宮破解演算法Python演算法
- 【Javascript + Vue】實現對任意迷宮圖片的自動尋路JavaScriptVue
- JAVA 實現 - 雜湊表Java
- 贏在CSDN,在創作中成長
- 【三萬字長文】遊戲設計左道,複雜系統與湧現遊戲設計
- “不可思議迷宮”系列:能玩1000次的RPG與日本遊戲婆羅門遊戲
- 迷宮城堡(HDU-1269)
- PHP 生成迷宮路線PHP
- 迷宮可行路徑數
- Python迷宮生成器Python
- 迷宮的最短路徑
- Java實現:排序演算法--時間複雜度為O(n² )Java排序演算法時間複雜度
- 遊戲雜談:大製作遊戲和小製作遊戲,在開發思路方式上的差別遊戲
- 青瓷遊戲宣佈《不思議迷宮》終止與臺服運營商合作遊戲
- Java實現飛機大戰遊戲Java遊戲
- 用Q-learning演算法實現自動走迷宮機器人演算法機器人
- 在Unity中為即時戰略遊戲實現戰爭迷霧(上)Unity遊戲
- 在Unity中為即時戰略遊戲實現戰爭迷霧(下)Unity遊戲
- 故宮《謎宮》新作摩點眾籌再創千萬佳績,“實體+APP”解謎遊戲怎麼做?APP遊戲
- 易上手難精通,遊戲好玩一定要複雜?遊戲
- 藍橋杯-走迷宮(BFS)