如图是我修改他人代码得到的。因为C画面的墙和路都要占同样1格。
如果画偶数宽高则会有路径浪费,所以还是画奇数宽高的好。
部分代码如下:(完整代码请追问)
int main()
{
int i,j;
system("color 2b");
srand((unsigned)time(NULL)); /*初始化随即种子*/
hidden(); /*隐藏光标*/
for(i=0;i<=Height+1;i++)
for(j=0;j<=Width+1;j++)
if(i==0||i==Height+1||j==0||j==Width+1) /*初始化迷宫*/
map[i][j]=Road;
else map[i][j]=Wall;
create(2*(rand()%(Height/2)+1),2*(rand()%(Width/2)+1)); /*从随机一个点开始生成迷宫*/
for(i=0;i<=Height+1;i++) /*边界处理*/
{
map[i][0]=Wall;
map[i][Width+1]=Wall;
}
for(j=0;j<=Width+1;j++) /*边界处理*/
{
map[0][j]=Wall;
map[Height+1][j]=Wall;
}
//★百度知道“q839219286”修订,多画一格避免宽高为偶数时没有墙
{ int pH_even= (Height/2)*2, pW_even=(Width/2)*2; //宽高偶数化
map[2][1]=Start; /*给定入口*/
map[pH_even][Width]=End; /*给定出口*/
for(i=1;i<=pH_even+1;i++) /*画出迷宫*/
for(j=1;j<=pW_even+1;j++)
paint(i,j);
}
game(); /*开始游戏*/
return 0;
}