C语言贪吃蛇小游戏的一些问题

做个贪吃蛇游戏,想实现这样的功能:假如在10秒内玩家没能操控蛇吃到食物,那么食物就会刷新,重新出现在另一个坐标。不知道如何实现这样的功能。用Sleep()延迟函数可以吗

c

6个回答

图片说明

sleep函数是延迟,延迟就是暂停执行,肯定是不行的。你通过获取系统时间的方式,好像有一个time的函数,包含在time.h里边。定义两个变量start,和end。然后time(&start);
time(&end);如果end-start>=10秒,……单位好像是毫秒。具体你可以查一下怎么用

qq_37069759
qq_37069759 #include "game.h" //主函数 int main() { GameInit(); time_t T; while (1) { while (!kbhit()) { cleardevice(); if (food.isEat == 0) { FoodCoor(); } time(&T); if (T % 10 == 0 && food.isEat != 0) { srand((unsigned int)time(NULL)); } 我加了那个函数(就是第二个if判断),但好像加了好像没区别,为什么会这样的。是我调用的位置不对吗
3 年多之前 回复
qq_37069759
qq_37069759 具体怎么实现可以说一下吗,因为我C语言基础不是很好,最好有代码
3 年多之前 回复

我用你的代码输出Hello World,本来应该是每10秒输出一次,但结果是等了一会后不断输出,然后停了,为什么会这样图片

我这样调用对吗,加了下面那个判断好像跟没加没区别图片

不是没作用,时间是一秒钟更新一次,而电脑执行速度太快了,1秒钟执行了很多次。你这种情况应该是一下子执行很多次,然后暂停10秒,再执行很多次……。加入这样的控制条件吧:循环体外边定义一个变量bool m=true;然后在判断条件这样写T%10==0&&m==true,如果通过则执行操作,且令m=false。如果不通过则不执行操作,且令m=true。这样,执行过后不会重复执行,直到10秒之后

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐