标题:关于贪吃蛇的几个问题。
只看楼主
NeQhk
Rank: 2
等 级:论坛游民
威 望:1
帖 子:164
专家分:85
注 册:2014-7-19
结帖率:69.23%
 问题点数:0 回复次数:0 
关于贪吃蛇的几个问题。
int Eat(char snake[2])   //吃了苹果
{
        if ((snake[0] == apple[0]) && (snake[1] == apple[1]))   //apple[0] [1]苹果的x y 坐标
       {
                apple[0] = apple[1] = apple[2] = 0;
                gotoxy(N+44,10);          //这个函数做什么的,是为了生成下一个苹果吗
                color(13);
                printf("%d",score[0]*10);
                color(11);                //为什么使用两次color()函数;
               return 1;
           }
        return 0;
}

void Draw(char **snake, int len)    //蛇移动   //这里snake 用指向指针的指针
char** Move(char **snake, char dirx, int *len)   //控制方向    //这里也是
void init(char plate[N+2][N+2], char ***snake_x, int *len)  //初始化    //这里用了三个指针有什么作用?

memcpy(tail, snake[(*len)-1], 2);
  for (i = (*len) - 1; i > 0; --i)
                memcpy(snake[i], snake[i-1], 2);
if (full)   //吃到了食物
           {
                snake = (char **)realloc(snake, sizeof(char *) * ((*len) + 1));//重新为蛇分配内存
                snake[(*len)] = (char *)malloc(sizeof(char) * 2);

这三句话我是这么理解的
先从蛇身上取一个单位赋值给尾巴tail
然后蛇自身赋值给自身
吃了苹果后加一个单位,把尾巴的赋值给新单位
不过那个赋值给自身的代码我有点不理解,总觉得从i-1赋值给i 那么到i=0就停止了没有赋值了,不是就不完整了吗?
搜索更多相关主题的帖子: 贪吃蛇 return apple 做什么 color 
2015-02-23 22:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-442160-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.353872 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved