#include <stdio.h>
#include <string.h>
#include <windows.h>//用于system cls 清屏
#include <conio.h>//kbhit判断键盘是否有输入
#include <time.h>//Sleep和随机数生成函数中的随机种子设定
#include <stdlib.h>//随机数生成函数
void map_print(int (*a)[10])
{
int *p=a[0];int i;
for(i=0;i<100;i++)
{
switch(*(p+i))
{
case 0:printf("■");break;
case 1:printf("□");break;
case 2:printf("○");break;
default:
break;
}
if((i+1)%10==0) putchar('\n');
}
}
int main()
{ int i,j,k;
int a[10][10];
int *pf[100];//存储指向蛇的元素的地址
char ch;
int length=2;//同步记录蛇的长度
int *p=a[0];
int *temp[100];//地址往后依次赋值,临时存储pf【】
int rand_number;
srand((unsigned )time(0));
for(i=0;i<100;*(p+i)=0,i++);
a[0][0]=1;
a[0][1]=1;
a[0][2]=1;
a[7][2]=2;
j=2;
for(i=0;i<3;i++) pf[i]=&a[0][j--];//初始化
map_print(a);
ch=getch();
while(1)//大循环实现kbhit从键盘输入的字符判定情况
{
switch(ch)//kbhit 输入的字符情况
{
case 's':
case 'S':
{
while(1)//小循环实现不打断的连续动作
{
if(*(pf[0]+10)==1 || pf[0]-&a[9][0]>=0){printf("over\n");return 0;}//程序结束条件 即游戏结束条件
if(*(pf[0]+10)==0)//下一步是空格的情况
{
*(pf[0]+10)=1;//改变蛇的头部使其为1