}
stack s;
int path(int maze[M+2][N+2],Move move[8])//寻找路径的核心算法
{
int x;
int y;
int d;
int i,j;
data media;
data temp;
temp.x=1;
temp.y=1;
temp.d=-1;
maze[1][1]=3;
s.push(temp);
while(!s.stackempty())
{
media=s.pop();
x=media.x;
y=media.y;
d=media.d+1;//准备向前移动
while(d<4)
{
i=x+move[d].x;//向方向为 d 的方向移动
j=y+move[d].y;
if(maze[i][j]==0)//如果当前节点未被访问过
{
media.x=x;
media.y=y;
media.d=d;
s.push(media);//将当前节点入栈
x=i;
y=j;
maze[x][y]=3;
if(x==M&&y==N)//如果到达出口
{
media.x=6;
media.y=8;
s.push(media);
return 1;//程序结束,路径找到了
}
else
{
d=0;
}
}
else//当前节点已被访问过
{
d++;//向下一个方向判断
}
}
}
return 0;
}
int main()////////以下程序主要用于测试
{
int i=0;
int j=0;
for( i=0;i
for(j=0;j
<1>游戏界面的设计
参考界面如下:
图中看到的小方格是按钮(JButton),当点击按钮时改变按钮的图标
以及对应矩阵的标记值,设计时可以考虑图片以及面板的颜色搭配,
增强趣味性。
<2>游戏界面框架的编写:
实现功能:添加游戏中各种功能组件,为后期的时间即各种功能添加
提供接口。
<3>游戏的编码
<一>stack 类得编写:
实现功能:具备基本的出栈入栈功能,判断栈是否为空的功能,栈的
数据类型为 struct data
{
};
int x;
int y;
int d;
<二>寻找路径函数 findPath()的编写:
实现功能:能够把找到的路径存储在堆栈中,供后期绘制路径做准备。
<三>事件的添加和逻辑的处理:
这部分综合性比较强,是要把之前实现的各种功能组合起来,实现游
戏的正常运转。