很土很简单的实现方式
显示:在屏幕上的指定坐标打印一些断续的点(或其他字符),每个点之间用空格或者其他字符来分隔。
移动:打印第一次后间隔一段时间,如0.5秒或1秒等,clrscr清屏,顺序移动贪吃蛇上所有节点坐标后再次打印 ,简单写了个很小的demo,吃豆子、障碍物、转向控制等都没写。
/*
* 贪吃蛇demo,仅演示贪食蛇的显示和移动
*/
#include
#include
#include
#include
#define N 5
int main()
{
char a[30][30];
int i,j,k;
int m,n;
while(1)
{
for (i=10,j=5+N; j<=25; j++)
{
// 初始化坐标数组所有元素为空格
memset(a, 32, sizeof(a));
// 填充要显示*号的坐标
for (k=j; k>=j-N; k--)
{
a[i][k] = 42;
}
// 清屏
system("cls");
Sleep(200);
// 打印贪吃蛇
for (m=0; m<30; m++)
{
for (n=0; n<30; n++)
{
printf("%c",a[m][n]);
}
printf("\n");
}
Sleep(500);
}
}
return 0;
}