看不到代码救命啊,谢谢大家的解答谢谢
全部代码如图所示..
关于如何控制贪吃蛇移动的问题
给你解释一下下面这个操作方向函数。首先上面的宏定义把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的状态来移动数据方格,这个时候小蛇才会被移动并且显示出来。