求看过这串贪吃蛇代码的大神解释一下这个问题
char**Move(char**snake,chardirx,int*len)//控制方向{inti,full=Eat(snake[0]);//吃了返回1,没吃返回0m...
char** Move(char **snake, char dirx, int *len) //控制方向
{
int i, full = Eat(snake[0]); //吃了返回1,没吃返回0
memcpy(&tail[0], snake[(*len)-1], 2); //复制,把蛇倒数的那个复制到尾巴
for (i = (*len) - 1; i > 0; --i)
memcpy(snake[i], snake[i-1], 2); // 把蛇一个复制到后一个
switch (dirx)
{
case 'w': case 'W': --snake[0][0]; break; //改变坐标,改变一个,横纵坐标
case 's': case 'S': ++snake[0][0]; break;
case 'a': case 'A': --snake[0][1]; break;
case 'd': case 'D': ++snake[0][1]; break;
default: ;
}
为什么这里snake[0][0]表示纵坐标改变,snake[0][1]表示横坐标改变? 展开
{
int i, full = Eat(snake[0]); //吃了返回1,没吃返回0
memcpy(&tail[0], snake[(*len)-1], 2); //复制,把蛇倒数的那个复制到尾巴
for (i = (*len) - 1; i > 0; --i)
memcpy(snake[i], snake[i-1], 2); // 把蛇一个复制到后一个
switch (dirx)
{
case 'w': case 'W': --snake[0][0]; break; //改变坐标,改变一个,横纵坐标
case 's': case 'S': ++snake[0][0]; break;
case 'a': case 'A': --snake[0][1]; break;
case 'd': case 'D': ++snake[0][1]; break;
default: ;
}
为什么这里snake[0][0]表示纵坐标改变,snake[0][1]表示横坐标改变? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询