数据结构课程设计迷宫算法的实现_JAVA
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
// 用于把绘制好地图数据写入文件 public static void readToFile() { String out = ""; for (int i = 0; i < rows; i++) { out += "{"; for (int j = 0; j < cols; j++) { if (brick[i][j]) { out += "true,"; } else { out += "false,"; } } out += "},\r\n"; } hartech.JFile.stringToFile(out, "E:/dest.txt"); } */
// 去掉全部砖 public static void blank() { if (walking != null) { walking.timer.stop(); } for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { buttons[i][j].setText(""); buttons[i][j].setForeground(null); buttons[i][j].setSelected(true); } } UI.jLabel_state.setText(" Move now?"); }
}
});
}
// 用于重置到软件开始 public static void reset() { if (walking != null) { walking.timer.stop(); } clean(); brick = copyBoolean(brick_reset); speed = speed_reset; UI.jSlider.setValue(speed); setBricks(); } // 用于清楚已标记上的数字 public static void clean() { if (walking != null) { walking.timer.stop(); } for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) {
}
} UI.jLabel_state.setText("
}
buttons[i][j].setText("");//清除按钮的数字,设置名字为空 buttons[i][j].setForeground(null);
Move now?");
// 重画按钮图,根据 rows、cols public static JPanel drawButtons() { buttons = new JToggleButton[rows][cols]; UI.jPanel_map = new JPanel(new GridLayout(rows, cols)); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { buttons[i][j] = new JToggleButton(); UI.jPanel_map.add(buttons[i][j]); } } Main.ui.add(UI.jPanel_map, BorderLayout.CENTER); Main.ui.setVisible(true); return UI.jPanel_map; } // 根据 brick[][]设置按钮障碍 public static void setBricks() { for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { buttons[i][j].setSelected(brick[i][j]); } } } // 根据现在按钮情况设置 brick[][]数组,用于 move()内前面 public static void readBricks() { for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { brick[i][j] = buttons[i][j].isSelected();
// 复制二维数组 public static boolean[][] copyBoolean(boolean[][] in) { int row = in.length, col = in[0].length; boolean[][] out = new boolean[row][col]; for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { out[i][j] = in[i][j]; } }
www.hartech.cn");//建立一个 Swing 窗体
jFrame = new JFrame( "is there any
way
to
go?
Maze
---
பைடு நூலகம்
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 单 击 关 闭图标后,程序退出并关闭 // add Main.ui = new UI(); jFrame.add(ui, BorderLayout.CENTER); jFrame.setSize(700, 400); //J.goCenter(jFrame); Main.drawButtons(); Main.reset(); jFrame.setVisible(true);
false,
false,
false,
false,
false,
false,
true,
false,
true,
}; static JFrame jFrame; static UI ui; public static void main(String[] args) {
//启动新线程,创建一个窗口 javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { //J.setLookAndFeel("Metal");
static boolean[][] brick, brick_reset = { { true, true, true, true, true, false, true, true, true, true, true, true, true, true, }, { true, false, false, false, true, false, true, true, true, true,
数据结构课程设计 走迷宫
学号:200908204136
姓名:熊军
日期:6 月 16 日
一、题目说明
.分别用以下算法实现。并设计图形用户界面提供迷宫大小、入口及出口位置和初始状 态等,演示走迷宫的过程和结果。 1.递归算法。 2.使用栈作为辅助结构。 3.使用队列作为辅助结构。
二、总体设计方案以及细节设计
为实现上述程序功能,主要使用的 JAVA AWT 和 JAVA SWING 包 import java.awt.*; import javax.swing.*; import hartech.ui.*; 3. 本程序包含四个模块: 1) 主程序模块: package mg; import java.awt.*;
true,
false, false, false, true, }, { true, false, true, false, true, false, false, false, false, true, false, true, true, }, { true, false, true, false, true, false, true, true, true, true, false, true, false, }, { true, true, true, false, false, false, true, false, true, true, false, true, true, }, { true, false, true, true, true, true, true, false, true, true, false, false, true, }, { true, false, true, true, true, true, true, false, true, true, false, true, true, }, { true, false, false, false, false, false, true, true, true, true, false, true, false, }, { true, false, true, true, true, false, false, false, false, true, false, true, true, }, { true, false, true, false, true, false, true, true, true, true, false, false, true, }, { true, false, true, false, true, false, true, false, false, false, false, true, true, }, { true, true, true, false, true, true, true, true, true, true, false, true, true, }
}
}
}
// 开始走 public static void move() { if (walking != null) { walking.timer.stop(); } clean(); readBricks(); //readToFile(); walking = new Walking(brick); } /**
import javax.swing.*; /** * <p>Title: maze Global class</p> * * <p>Description: </p> * * <p>Date: 2006-08-31 </p> */ public class Main {
// _reset 变量用于 reset 时用 static int rows = 12, cols = 14; static int speed_reset = 50, speed = speed_reset; static JToggleButton[][] buttons; static Walking walking;
}
}
return out;
import java.awt.*; import javax.swing.*; import hartech.ui.*; /** * <p>Title: maze Global class</p> * * <p>Description: </p> * * <p>Date: 2006-08-31 </p> */ public class Main { // _reset 变量用于 reset 时用 static int rows = 12, cols = 14; static int speed_reset = 50, speed = speed_reset; static JToggleButton[][] buttons; static Walking walking; static boolean[][] brick, brick_reset = { { true, true, true, true, true, false, true, true, true, true, true, true, true, true, }, { true, false, false, false, true, false, true, true, true, true, false, false, false, true, }, { true, false, true, false, true, false, false, false, false, true, true, false, true, true, }, { true, false, true, false, true, false, true, true, true, false, true, false, true, false, }, { true, true, true, false, false, false, true, false, true, false, true, false, true, true, }, { true, false, true, true, true, true, true, false, true, false, true, false, false, true, }, { true, false, true, true, true, true, true, false, true, false, true, false, true, true, }, { true, false, false, false, false, false, true, true, true, false, true, false, true, false, }, { true, false, true, true, true, false, false, false, false, false,