如何在C中的程序开始时开始计时

阿伦普特夫

我正在制作一个游戏,在其中您必须破解一个系统,例如:键入您在屏幕上看到的数字:10秒内输入12345。我想知道如何在10秒钟后警告玩家,例如在屏幕上显示“ Too slow !!!!!!”(太慢!!!!)。我尝试过sleep()函数,但是在sleep()函数运行时会停止程序

规则:启动程序时,出现在屏幕上:

Enter code:           Hack 1.

如果键入1并输入出现一个随机数,则必须覆盖。如果失败,则会出现:

Hacking failed!!!!!!!!.

如果您太慢,它将显示:

Too slow!!!!!!!

但是那件事“太慢了!!!!!” 仅在程序结束时发生!

这是我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main ()
{
    time_t start, end;
    double need;
    int i;
    double number;
    int t = 15;
z:
    printf("Enter the code:                    Hack 1  :");
    scanf("%d", &i);
    if(i == 123456789)
    {
        printf("Enter the room.");
    }
    if(i == 1)
    {
        printf("You've got %d seconds. Press 1 to start hacking the system:", t);
        scanf("%d", &i);
        if(i == 1)
        {
            //Appears a random number and time starts counting
            time (&start);
            srand(time(NULL));
            double rn = (rand() % 1000000000000000000);
            printf("%f type here: ", rn);
            scanf("%lf", &number);
            if(number == rn)
            {
                //Time ends
                time (&end);
                //Calculate elapsed time
                need = difftime (end, start);
                //If you're too late
                if(need > t)
                {
                    printf("Too late!!!!!!!!!!!");
                }
                else
                {
                    //If you success
                    printf("System hacked. Enter the room. ");
                    t--;
                    goto z;
                }
            }
            else
            {
                //If you fail
                printf("Hacking failed!!!!!!!!!!");
            }
        }
    }
}
风向标

这是执行此操作的一种方法,但是它需要conio.hWindows和DOS外部通常不提供的方法。它在检查计时器的同时检查键盘输入。

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define TIMEOUT 10

int main(void)
{
    int code;
    int entry;
    int key;
    time_t mark;
    time_t now;

    mark = time(NULL);
    srand((unsigned)mark);
    code = rand();
    printf("The code is %d\n", code);
    printf("Enter the code\n");
    entry = 0;

    while (entry < code) {
        while (!_kbhit()) {
            now = time(NULL);
            if (now - mark > TIMEOUT) {
                printf("\nTimeout failure!\n");
                exit (1);
            }
        }
        key = _getche();
        entry = entry * 10 + key - '0';
    }

    if (entry == code)
        printf("\nSuccess\n");
    else
        printf("\nIncorrect code\n");

    return 0;
}

程序输出:

The code is 19911
Enter the code
1984
Timeout failure!

更多程序输出:

The code is 20326
Enter the code
29881
Incorrect code

然后再次:

The code is 20156
Enter the code
20156
Success

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在程序开始时声明

来自分类Dev

如何在应用程序开始时使活动闪烁?

来自分类Dev

如何在程序开始时接受输入?

来自分类Dev

如何在JavaScript(Phaser)中延迟计时器的开始时间

来自分类Dev

如何在开始时停止程序以将GDB附加到该程序?

来自分类Dev

如何在时间开始时获得每月的firstDay?

来自分类Dev

如何在Swift开始时禁用按钮触摸

来自分类Dev

如何在每天开始时重置变量?

来自分类Dev

如何在项目开始时执行迁移

来自分类Dev

Flutter:如何在开始时打开抽屉?

来自分类Dev

如何在拓扑开始时也发送节拍元组?

来自分类Dev

如何在时间开始时获得每月的firstDay?

来自分类Dev

如何在项目开始时执行迁移

来自分类Dev

如何在双变量开始时检查小数?

来自分类Dev

如何在开始时使用数字访问 API

来自分类Dev

如何在输出开始时将diff中的“ Only in”行分组

来自分类Dev

如何在Alfresco的Activiti工作流开始时从bpm_package中删除项目?

来自分类Dev

如何在PowerShell中获取流程开始时间

来自分类Dev

如何在ffmpeg中从指定的开始时间剪辑电影?

来自分类Dev

如何在长按手势开始时开始播放动画?

来自分类Dev

开始时如何从xterm运行byobu?

来自分类Dev

活动开始时如何停止AlarmManager

来自分类Dev

在会话开始时如何启动PCManFM?

来自分类Dev

如何以特定的开始时间启动计时器?

来自分类Dev

如何保存计时器类的开始时间?

来自分类Dev

如何在每小时开始时暂停 C# 代码十分钟

来自分类Dev

如何在游戏结束时以与开始时相同的条件重新设置游戏?

来自分类Dev

如何在游戏开始时重置PlayerPrefs,但在加载场景时保持价值?

来自分类Dev

python程序开始时间

Related 相关文章

  1. 1

    如何在程序开始时声明

  2. 2

    如何在应用程序开始时使活动闪烁?

  3. 3

    如何在程序开始时接受输入?

  4. 4

    如何在JavaScript(Phaser)中延迟计时器的开始时间

  5. 5

    如何在开始时停止程序以将GDB附加到该程序?

  6. 6

    如何在时间开始时获得每月的firstDay?

  7. 7

    如何在Swift开始时禁用按钮触摸

  8. 8

    如何在每天开始时重置变量?

  9. 9

    如何在项目开始时执行迁移

  10. 10

    Flutter:如何在开始时打开抽屉?

  11. 11

    如何在拓扑开始时也发送节拍元组?

  12. 12

    如何在时间开始时获得每月的firstDay?

  13. 13

    如何在项目开始时执行迁移

  14. 14

    如何在双变量开始时检查小数?

  15. 15

    如何在开始时使用数字访问 API

  16. 16

    如何在输出开始时将diff中的“ Only in”行分组

  17. 17

    如何在Alfresco的Activiti工作流开始时从bpm_package中删除项目?

  18. 18

    如何在PowerShell中获取流程开始时间

  19. 19

    如何在ffmpeg中从指定的开始时间剪辑电影?

  20. 20

    如何在长按手势开始时开始播放动画?

  21. 21

    开始时如何从xterm运行byobu?

  22. 22

    活动开始时如何停止AlarmManager

  23. 23

    在会话开始时如何启动PCManFM?

  24. 24

    如何以特定的开始时间启动计时器?

  25. 25

    如何保存计时器类的开始时间?

  26. 26

    如何在每小时开始时暂停 C# 代码十分钟

  27. 27

    如何在游戏结束时以与开始时相同的条件重新设置游戏?

  28. 28

    如何在游戏开始时重置PlayerPrefs,但在加载场景时保持价值?

  29. 29

    python程序开始时间

热门标签

归档