C++程序 麻烦帮忙........

来源:百度知道 编辑:UC知道 时间:2024/05/25 14:48:28
⒈迷宫游戏
找出通过迷宫的最佳路线
www) 建立迷宫:
用32*32大小的二维数组输入迷宫数据,xxx) 0代表障碍,yyy) 1代表可以通过,zzz) 输入或修改完数据后可以动态显示迷宫图像;
aaaa) 在控制台显示迷宫图像,bbbb) 0用@表示,cccc) 1用空格表示,dddd) 如下图的例子(10*10),eeee) 入口在数组[0,0] 处,ffff) 出口在[31,31]处,gggg) 障碍覆盖率不hhhh) 小于40%;

iiii) 人物类用*表示,jjjj) 只有在水平或垂直方向无障碍才可以通过,kkkk) 不llll) 能走斜线,mmmm) 找出最佳路径,nnnn) 在图上动态画出路径;
oooo) 了解Windows GDI绘图的,pppp) 使用GDI绘出迷宫图更佳;

//#include <iostream.h>
#include<iomanip.h>
#include <process.h>//exit(0)
//const int m=12,p=15;//处理m行p列的迷宫矩阵
const int m=3,p=3;
const int maxsize=m*p;//栈的最大长度为m*n;
struct offsets{
int a,b;
};
const offsets move[8]={//迈向8个不同方向时的偏移量
{-1,0},{-1,1},{0,1},{1,1},
{1,0},{1,-1},{0,-1},{-1,-1}
};
struct items{//保存迈步信息的结构
int x,y;
int dir;
};
void printdir(int dir){
char dirname[8][3]={"N","NE","E","SE","S","SW","W","NW"};
cout<<setw(2)<<dirname[dir];
}
class stack {//自定义栈类
items data[maxsize];//data 保存“半截路”的各迈步信息
int top;//记录半截路的长度
public:
stack(void){top=0;};//构造函数
bool empty(void){return top==0;}//判断栈是否为空
void push (items it);
items pop(void);
void print(void);//显示“迈步”序列
int gettop(void){return top;}//获取当前