贪吃蛇语法有问题 求各位大神帮帮忙

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<time.h>
const char Shead = '@';//蛇头
const char Sbody = '#';//蛇身
const char Sfood = '*';//食物
const char Snode = '.';//地图的每一个node 
const int High = 8;//地图的高  
const int Long = 16;//地图的宽度 
char GameMap[High][Long];//地图
int Key; //按键保存 
int Sum = 1;//蛇的结束 
int Over  = 0; //蛇的生命(死亡)
int dy[4] = {0,0,-1,1};//上下左右
int dx[4] = {1,-1,0,0};
struct Snake  //定义蛇的结构体 
{
    int x;
    int y;//位置 
    int now;//保存当前节点的方向,为0 1 2 3 分别为上下左右 
}Snake[High*Long] //蛇的最大大小(node) 
void Initial();//地图的初始化 
void Create_Food(); //随机构造食物
void Show();//刷新并显示地图
void Button();//取出按键并且判断方向
void Move();// 蛇的移动
void Check_Border();//检查蛇头是否越界 
void Check_Head(int x,int y);
int main(void)
{
    Initial();
    show();
    return 0;
}
void Initial()//地图的初始化 
{
    int i,j;
    int hx,hy;
    system("title 贪吃蛇");//窗口的标题
    memset(GameMap,'.',sizeof(GameMap));//把地图Initial为'.'
    system("cls"); 
    srand(time(0));//随即的某个种子
    hx = rand()%Long;//产生随即的蛇头 
    hy = rand()%High; 
    GameMap[hx][hy] = Shead; //待测试
    Snake[0].x = hx;//待测试 
    Snake[0].y = hy;//初始化随即的蛇头
    Snake[0].now = -1;//初始化方向
    Create_Food();//随即生成食物
    for(i = 0;i < High;i++)  //地图的显示 
     {
        for(j = 0;j < Long;j++) 
        pritnf("%c",GameMap[i][j]);
        printf("\n"); 
     }
     printf("霸气De蝈蝈★贪吃蛇小游戏!!!\n");
     printf("按任意方向键开始游戏\n");
     getch();//接受一个按键
     Button();//取出输入的按键,并且判断方向  
}
void Create_Food()
{
    int fx,fy;
    while(1)
    {
        fx = rand()%High;
        fy = rand()%Long;
        if(GameMap[fx][fy] == '.')//不能出现在蛇的身上 
        {
            GameMap[fx][fy] = Sfood;
            break; 
        } 
    } 

}
void show()//刷新显示地图 
{
    int i,j;
    while(1)
    {
        sleep(500);//延迟半秒刷新一次地图,1000为1s   
        Button();//判断方向 
        Move(); //
        if(over) 
        { 
             printf("贪吃蛇死亡!\n");
             printf("再来一次吧!\n");
             getchar();
             break; 
        }
        system("cls");//清空地图并且显示地图
        for(i = 0;i < High;i++)
        {
            for(j = 0;j <Long;j++) 
            {
                printf("%c",GameMap[i][j]);
                printf("\n");
            } 
        }
    printf("霸气De蝈蝈★贪吃蛇小游戏!!!\n");
    pritnf("按任意方向键开始游戏\n");
    } 
}
void Button()
{
    if(kbhit =! 0) //kbhit检测是否输入按键,若有则返回一个非零值。
    {
        while(kbhit =! 0) //可能存在许多的按键,要都取完,以最后一个为主 
        key = getch;
        switch(key)
        {
            case 75: Snake[0].now = 0;/*左*/
            break; 
            case 77: Snake[0].now = 1;/*右*/ 
            break;  
            case 72: Snake[0].now = 2;/*上*/ 
            break;
            case 80: Snake[0].now = 3;/*下*/  
            break; 
        }   
    } 
}
void Move()//蛇的移动 
{
    int i,x,y;
    int t =sum;//保存蛇的节数
    x = Snake[0].x; y = Snake[0].y; GameMap[x][y] = '.';//前进后设置蛇头为空 
    Snake[0].x = Snake[0].x + dx[Snake[0].now];//蛇头的移动 
    Snake[0].y = Snake[0].y + dy[Snake[0].now];
    Check_Border();//判断是否越界 
    Check_Head(); //判断蛇头的目前坐标参数
    if(sum = t)//如果未吃到食物,移动 
    {
    for(i = 1;i < sum; i++) 
    {  
   if(i == 1)   //尾节点设置为空再移动  
   GameMap[ Snake[i].x ][ Snake[i].y ] = '.';
   if(i = sum - 1)
   {
    Snake[i].x = x;
    Snake[i].y = y;
    Snake[i].now = Snake[0].now;
   }
   else
   {
    Snake[i].x = Snake[i+1].x; 
    Snake[i].y = Snake[i+1].y;
    Snake[i].now = Snake[i+1].now;
   }
   GameMap[Snake[i].x][Snake[i].y] = '#';
   }
   }
 void Check_Border() //检查蛇头是否越界
 {
    if(Snake[0].x < 0 || Snake[0].x >= High  
 || Snake[0].y < 0 || Snake[0].y >= Long)
    over = 1; 
 } 
 void Check_Head()
 {   
    if(GameMap[ Snake[0].x ][ Snake[0].y ] == '.')  //为空  
  GameMap[ Snake[0].x ][ Snake[0].y ] = '@';  
 else 
  if(GameMap[ Snake[0].x ][ Snake[0].y ] == '*')  //为食物  
  {  
   GameMap[ Snake[0].x ][ Snake[0].y ] = '@';    
   Snake[sum].x = x;   //新增加的蛇身为蛇头后面的那个  
      Snake[sum].y = y;  
      Snake[sum].now = Snake[0].now;  
         GameMap[ Snake[sum].x ][ Snake[sum].y ] = '#';   
   sum++;  
   Create_Food();  //食物吃完了马上再产生一个食物  
  }  
  else 
   over = 1;   
 }  
查看全部
qq_33968059
qq_33968059
2016/03/13 05:38
  • 测试
  • 游戏
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

1个回复