c++迷宫游戏实验报告 下载本文

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