case 72://上移 if(sel>1) { sel--;
if(sel==1)
a();
else if(sel==2)
b();
else if(sel==3)
c();
else if(sel==4)
d();
else if(sel==5)
menue();
}
break;
case 80: //下移 if(sel<6) { sel++; if(sel==1)
a();
else if(sel==2)
b();
else if(sel==3)
c();
else if(sel==4)
d();
else if(sel==5)
6
}
menue();
break;
case 13://回车确定选择
if(sel==1)//开始闯关 { }
else if(sel==2)//查看所有路径和最短路径 { }
else if(sel==3)//更改地图 { }
else if(sel==4)//查看排名 { }
else if(sel==5)//退出 {
mickey.charts(Name); return 1;
change(2*(18-e),18-e,e); return 1; system(\
path.allpath(9,9,MAP,p,e); return 1;
mickey.operate(MAP,e,Name); return 0;
7
} }
}
}
exit(0);
这个函数主要调用了各实现功能函数。其步骤为:用户进入菜单选项,方向键控制选中选项移动,enter进入选中选项。
(3)其它模块的算法描述
控制老鼠移动函数
功能:方向键移动老鼠。(上方向键进入Move_up函数)
if(map[m_x-1][m_y]==1) return 0;
else if(map[m_x-1][m_y]==9) { } else{
map[m_x][m_y]=0; m_x--;
map[m_x][m_y]=3; return -1;
map[m_x][m_y]=0; Y=-1; X=0;
Loc(2*m_y,m_x); cout<<\ \
Loc(2*m_y+X,m_x+Y); cout<<\♂\m_x--;
8
map[m_x][m_y]=3;
求全部路径
功能:输出迷宫所有路径
int dir[4][2]={{-1,0},{1,0},{0,-1},{0, 1}};//上下左右
int d,tx,ty,p;
for(d=0;d<4;d++) {
if(check(i,j,d,map,end)==1)//检查是否可以走 {
tx=i+dir[d][0]; ty=j+dir[d][1]; p=map[tx][ty];//记录状态 map[tx][ty]=4;//标记路径 map[end][end]=0;
if(tx==end&&ty==end)//终点 { } else {
path(tx,ty,map,t,end); map[tx][ty]=p;
t++ ;//路径条数加一 Print2(map,t,end);//终点
9
}
}
更改地图功能 char key;
Loc2(sx,sy); while(1){ key=getch();
switch(key){ case 72:
Loc2(sx,--sy); break;
case 80:
Loc2(sx,sy++); break;
case 75:
Loc2(sx-=2,sy); break;
case 77:
Loc2(sx+=2,sy); break;
case 32:
if(MAP[sy][sx/2]==1)
{
MAP[sy][sx/2]=0; Loc1(sx,sy); cout<<\ \Loc1(sx,sy);
10