我想问一下,如果我想实现,键盘不输入的时候,小蛇按上一次输入的字符自己运行,输入的时候,变换方向。程序如下,因为是草稿,所以没有编写头文件,有点长,也不怎么规范
#include <windows.h>#include <stdio.h>
#include <conio.h>
#define N 23
#define M 80
main()
{
int a[N][M];
int i, j, x, y;
char c;
x=10;
y=2;
while(1)
{
system("cls");
for(i = 0; i <N ; i++)
{
for(j = 0; j <M ; j++)
{
a[i][j]=0;
}
}
a[x][y]=1;
a[x][y-1]=2;
a[x][y-2]=2;
for(i = 0; i < N; i++)
{
for(j = 0; j < M; j++)
{
if(i==0||j==79||j==0||i==22)
printf("-");
else if(a[i][j]==0)
printf(" ");
if(a[i][j]==1||a[i][j]==2)
printf("*");
}
printf("\n");
}
c=getch();
if(c=='w')
{ if(x>0) x=x-1;
else x=x+N-1;
if(x==0)
{
printf("游戏结束\n");
Sleep(1000);
break;}
}
else if(c=='a')
{ if(y>0)
{ y=y-1;}
else y=M-1;
if(y==0||y==79)
{
printf("游戏结束\n");
Sleep(1000);
break;}
}
else if(c=='s')
{
if(x<N-1)
x=x+1;
else x=0;
if(x==22)
{
printf("游戏结束\n");
Sleep(1000);
break;}
}
else if(c=='d')
{ if(y<M-1)
{ y=y+1;}
else y=0;
if(y==0||y==79)
{
printf("游戏结束\n");
Sleep(1000);
break;}
}
if(c=='t') break;
Sleep(500);
}
}
(还没有实现蛇转弯的时候身体的变化,用链表可以很容易做到,但是我有点犟,想用数组做,慢慢来,用了很多方法,我先在c=getch()后面加了如果C!=a&&c!=w&&c!=s&&c!=d,就往头所在的行走//这里的行是因为我用二维数组区域编程坐标系来做//,但是出现问题了,无论我输入什么,他都只往前走)
[此贴子已经被作者于2016-11-16 18:36编辑过]