| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3254 人关注过本帖
标题:贪吃蛇代码语句不懂,求解释。
取消只看楼主 加入收藏
a1017075043
Rank: 2
来 自:广州
等 级:论坛游民
威 望:1
帖 子:50
专家分:63
注 册:2015-6-29
结帖率:50%
收藏
已结贴  问题点数:15 回复次数:3 
贪吃蛇代码语句不懂,求解释。
程序代码:
typedef struct SNAKE //蛇身的一个节点
{
    int x;
    int y;
    struct SNAKE *next;
}snake;


snake *head, *food;//蛇头指针,食物指针
snake *q;//遍历蛇的时候用到的指针


void Pos(int x,int y)//设置光标位置
{
    COORD pos;
    HANDLE hOutput;
    pos.X=x;
    pos.Y=y;
    hOutput=GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hOutput,pos);
}

void initsnake()//初始化蛇身
{
    snake *tail;
    int i;
    tail=(snake*)malloc(sizeof(snake));//从蛇尾开始,头插法,以x,y设定开始的位置//
    tail->x=24;
    tail->y=5;
    tail->next=NULL;
    for(i=1;i<=4;i++)
    {
        head=(snake*)malloc(sizeof(snake));
        head->next=tail;
        head->x=24+2*i;
        head->y=5;
        tail=head;
    }
    while(tail!=NULL)//从头到为,输出蛇身
    {
        Pos(tail->x,tail->y);
        printf("");
        tail=tail->next;
    }
}
void createfood()//随机出现食物
{
    snake *food_1;
    srand((unsigned)time(NULL));
    food_1=(snake*)malloc(sizeof(snake));
    while((food_1->x%2)!=0)    //保证其为偶数,使得食物能与蛇头对其
    {
        food_1->x=rand()%52+2;
    }
    food_1->y=rand()%24+1;
    q=head;
    while(q->next==NULL)
    {
        if(q->x==food_1->x && q->y==food_1->y) //判断蛇身是否与食物重合
        {
            free(food_1);
            createfood();
        }
        q=q->next;
    }
    Pos(food_1->x,food_1->y);
    food=food_1;
    printf("");
}

谁可以给我解释一下void createfood()中   while((food_1->x%2)!=0)    和     while(q->next==NULL)   这两句的意思。
搜索更多相关主题的帖子: 贪吃蛇 
2015-10-24 21:06
a1017075043
Rank: 2
来 自:广州
等 级:论坛游民
威 望:1
帖 子:50
专家分:63
注 册:2015-6-29
收藏
得分:0 
food_1->x  不是地址吗? 地址还可以求余的吗?
while(q->next==NULL)  这里的条件为什么是指针指向空,头节点q中next指向的不是下一个节点吗?
                       要历遍链表条件不应该是while(q->next!=NULL)吗?    因为最后一个节点中的next是指向null。


我是小白。。。。
2015-10-24 23:43
a1017075043
Rank: 2
来 自:广州
等 级:论坛游民
威 望:1
帖 子:50
专家分:63
注 册:2015-6-29
收藏
得分:0 
while((food_1->x%2)!=0)
food_1->x不是没有被初始化的吗?那他的值不是为空的吗?怎么就可以做运算了?


我是小白。。。。
2015-10-25 11:42
a1017075043
Rank: 2
来 自:广州
等 级:论坛游民
威 望:1
帖 子:50
专家分:63
注 册:2015-6-29
收藏
得分:0 
还有 while(q->next==NULL) 是没有错的,我刚刚改了一下,程序运行时就出错了。
    while(q->next==NULL)  还是不懂,求解释

我是小白。。。。
2015-10-25 11:51
快速回复:贪吃蛇代码语句不懂,求解释。
数据加载中...
 
   



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

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