getch();
exit(0);
}
shang(x,y);//上下左右
xia(x,y);
zuo(x,y);
you(x,y);
map[x][y]=flag;//当上下左右都无法走的时候,即为死路,因为递归函数开始向后,所以讲死路点值置为flag,变成无形之墙 。
display(x,y);
}
int main()
{
cout"移动迷宫"endl;
cout"--------------------"endl;
cout"欢迎来到移动迷宫游戏"endl;
cout"--------------------"endl;
cout"游戏说明:给定一出口和入口"endl;
cout"玩家控制一个五角星(☆)从入口走到出口"endl;
cout"系统会记录你所走的步数"endl;
cout"按回车进入游戏";
cout"(按下P键可以获得攻略 。)";
getch();
system("cls");//清屏函数,清除开始界面
Wanjia w1;
w1.chushi();
w1.game(); //开始游戏
//w1.gonglue(2,1);//功略显示
getch();
return 0;
}
————————————————
版权声明:本文为CSDN博主「失落之风」的原创文章 , 遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明 。
原文链接:
喜欢的源码拿走,把小赞赞留下
关于Java走迷宫的问题 。我已经有相关代码了,但是我看不懂 。麻烦高手帮忙注释一下,然后再修改点儿 。package 走迷宫;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.TimerTask;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
// 迷宫
public class Maze extends JFrame implements ActionListener {
private JPanel panel;
private JPanel northPanel;
private JPanel centerPanel;
private MazeGrid grid[][];
private JButton restart;
private JButton dostart;
private int rows;// rows 和cols目前暂定只能是奇数
private int cols;
private ListString willVisit;
private ListString visited;
private LinkedListString comed;
private long startTime;
private long endTime;
public Maze() {
rows = 25;
cols = 25;
willVisit = new ArrayListString();
visited = new ArrayListString();
comed = new LinkedListString();
init();
this.setTitle("回溯法--走迷宫");
this.add(panel);
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void init() {
panel = new JPanel();
northPanel = new JPanel();
centerPanel = new JPanel();
panel.setLayout(new BorderLayout());
restart = new JButton("重新生成迷宫");
dostart = new JButton("开始走迷宫");
grid = new MazeGrid[rows][cols];
centerPanel.setLayout(new GridLayout(rows, cols, 1, 1));
centerPanel.setBackground(new Color(0, 0, 0));
northPanel.add(restart);
northPanel.add(dostart);
dostart.addActionListener(this);
restart.addActionListener(this);
for (int i = 0; igrid.length; i++)
for (int j = 0; jgrid[i].length; j++) {
if (j % 2 == 0i % 2 == 0)
grid[i][j] = new MazeGrid(true, 20, 20);
else
grid[i][j] = new MazeGrid(false, 20, 20);
}
grid[0][0].setVisited(true);
grid[0][0].setPersonCome(true);
grid[0][0].setStart(true);
visited.add("0#0");
grid[rows - 1][cols - 1].setEnd(true);
grid = createMap(grid, 0, 0);
for (int i = 0; igrid.length; i++)
for (int j = 0; jgrid[i].length; j++) {
grid[i][j].repaint();
centerPanel.add(grid[i][j]);
}
panel.add(northPanel, BorderLayout.NORTH);
推荐阅读
- 学生卡买什么手机划算,学生卡哪种好
- chatgpt应用方向,CHATGPT会带来怎样的新应用
- 防伪基站有什么cpu,怎样关闭防伪连基站
- 海战休闲益智游戏,经典海战游戏推荐
- php忽略数据库报错 php数据库乱码
- ssm中redis缓存如何配置,redis缓存设计方案
- 国产武器的射击游戏手游,武器最全的射击游戏
- 做直播为什么没人带货,直播带货没有人
- java魂斗罗代码大全 魂斗罗4金手指代码大全