inline void hello()
{
cout<<“\n\n\n\t\t\t贪吃蛇游戏即将开始!”; //准备开始
double start;
for (int i = 3; i >= 0; i–)
{
start = (double)clock() / CLOCKS_PER_SEC; //得到程序目前为止运行的时间
while ((double)clock() / CLOCKS_PER_SEC – start <= 1); //经过1秒之后
if (i > 0)
{
system(“cls”); //清屏
cout<<“\n\n\n\t\t\t进入倒计时:”<<i<<endl; //倒计时
}
else
Update(map, grade, length, autotime); //刷新地图
}
}
{
cout<<“\n\n\n\t\t\t贪吃蛇游戏即将开始!”; //准备开始
double start;
for (int i = 3; i >= 0; i–)
{
start = (double)clock() / CLOCKS_PER_SEC; //得到程序目前为止运行的时间
while ((double)clock() / CLOCKS_PER_SEC – start <= 1); //经过1秒之后
if (i > 0)
{
system(“cls”); //清屏
cout<<“\n\n\n\t\t\t进入倒计时:”<<i<<endl; //倒计时
}
else
Update(map, grade, length, autotime); //刷新地图
}
}
解决方案
40
语句执行是需要时间的。
你上面的那句start = (double)clock() / CLOCKS_PER_SEC; 记录下了当时时间点的时间
然后下面while里的(double)clock() / CLOCKS_PER_SEC得到的也是最新的时间,第一次循环它比start略大一点点点
减去start以后可能是个很小的数,(注意while后面的分号)然后继续while循环,每次while循环都是需要消耗时间的
假设进行了几百万次(消耗了1秒),就会使得(double)clock() / CLOCKS_PER_SEC-start大于1了,然后执行之后的语句
你上面的那句start = (double)clock() / CLOCKS_PER_SEC; 记录下了当时时间点的时间
然后下面while里的(double)clock() / CLOCKS_PER_SEC得到的也是最新的时间,第一次循环它比start略大一点点点
减去start以后可能是个很小的数,(注意while后面的分号)然后继续while循环,每次while循环都是需要消耗时间的
假设进行了几百万次(消耗了1秒),就会使得(double)clock() / CLOCKS_PER_SEC-start大于1了,然后执行之后的语句
20
start = (double)clock() / CLOCKS_PER_SEC; //得到程序目前为止运行的时间
//此时clock()函数wrap around了
while ((double)clock() / CLOCKS_PER_SEC – start <= 1); //经过XXXXXX秒之后……
//此时clock()函数wrap around了
while ((double)clock() / CLOCKS_PER_SEC – start <= 1); //经过XXXXXX秒之后……