关于c语言贪吃蛇的问题

img

img

img

img

img

img

img

img

看不到代码救命啊,谢谢大家的解答谢谢
全部代码如图所示..
关于如何控制贪吃蛇移动的问题

img

给你解释一下下面这个操作方向函数。首先上面的宏定义把U D L R替换成了1 2 3 4代表上下左右四个方向。
然后按下'w'时,先判断当前是不是在向下走(D),如果正在向下走就不能回头向上走,状态不变;如果当前不是在向下走,就把状态改为向上(U)。其他分支同理。实际控制蛇行进方向的是status这个变量,你通过输入'w' 'a' 's' 'd'来改变status的值。

#define U 1                 //使用宏代替需要数字代替的蛇的行动方向
#define D 2                 //宏名含义是各方向英文单词首字母
#define L 3                 //蛇的状态,U:上 ;D:下;L:左 R:右
#define R 4 

void czfxhs()                   //操作方向函数,接收从键盘输入的按键,控制贪吃蛇行进方向
{
    char ch = _getch();
    switch (ch)
    {
        case 'w': 
            if(status != D)
                status = U; break;
        case 's': 
            if (status != U)
                status = D; break;
        case 'a': 
            if (status != R)
                status = L; break;
        case 'd': 
            if (status != L)
                status = R; break;
        case ' ': 
            _getch(); break;        //空格暂停
    }
}

代码中分为两个部分。
一个是按键响应,通过判断 W S A D 按键来控制蛇的状态status,这个时候小蛇并没有被改变方向。
真正改变方向的是通过判断status的状态来移动数据方格,这个时候小蛇才会被移动并且显示出来。

可以查看手册:c语言-exp() 中的内容