C语言 编写的简单移动游戏出现bug?

第一次按上下左右没什么问题,之后就会卡住。。不知道出了什么错

源码如下:(用vc++的win32 console程序编写)
#include <stdio.h>
#include <conio.h>  
#include <windows.h>
int map[16][10]={0};
int x=1,y=1;

void printmap(int map[][10])
{
int i,j;
system("CLS");

for (i=1;i<=16;i++)
{
for (j=1;j<=10;j++)
{
switch(map[i][j])
{
case 0:
printf("□");  // the ground
break;
case 1:
printf("★"); // the man
break;
}
}
printf("\n");
}

}

void move(int m, int x, int y)
{
int x1,y1;
switch(m)
{
case 1:
x1 = x - 1;
y1 = y;break;
case 2:
x1 = x + 1;
y1 = y;break;
case 3:
x1 = x;
y1 = y - 1;break;
case 4:
x1 = x;
y1 = y + 1;break;
default:
break;
}
map[x1][y1]=1; // refresh the man
map[x][y]=0;   // clear the previous location
x = x1;
y = y1;
}

void main(void)
{
int i,j;
char key;
map[1][1]=1;
printmap(map);
while (1)
{
fflush(stdin);
key=getch();
switch(key)
{
case 72:  // up
move(1,x,y); break;
case 80:  //down
move(2,x,y); break;
case 75:  //left
move(3,x,y); break;
case 77:  //right
move(4,x,y); break;
}
    printmap(map);  // refresh the map
}
getchar();  // pause and exit
}
1个回答
时间
投票
  • 0

    bag1111

    不太能看懂 不好意思帮不到你  帮你顶顶

    16-10-26 | 添加评论 | 打赏

    评论读取中....

精华知识
更多  
意见反馈 帮助