gpt4 book ai didi

time - 如何在 Pascal 中检测耗时?

转载 作者:行者123 更新时间:2023-12-05 00:04:32 25 4
gpt4 key购买 nike

我正在尝试在 Pascal 中创建一个简单的游戏。它使用控制台。游戏的目标是在 60 秒内收集尽可能多的“苹果”。游戏结构是一个简单的无限循环。每一次迭代,你都可以做一个 Action 。这就是问题所在——在你采取行动之前( readKey ),时间可以随心所欲地流逝。例如,用户可以在 10 秒后按下某个键!有没有办法计算时间?我需要程序知道用户播放(在按键之前和之后),所以我不知道如何防止用户“作弊”。

这是我的游戏的简单结构:

begin
repeat
{* ... *}
case ReadKey of
{* ... *}
end;
{* ... *}
until false;
end.

全码: http://non.dagrevis.lv/junk/pascal/Parad0x/Parad0x.pas .

据我所知,有两种可能的解决方案:
  • getTime(来自 DOS),
  • 延迟(来自 CRT)。

  • ...但我不知道如何在我的循环中使用它们。

    最佳答案

    查询 this link .可能有一些对你有用的信息。和 here is你要求的一样。和 here's你在找什么(与下面的代码相同)。

    var hours: word;
    minutes: word;
    seconds: word;
    milliseconds: word;

    procedure StartClock;
    begin
    GetTime(hours, minutes, seconds, milliseconds);
    end;

    procedure StopClock;
    var seconds_count : longint;
    c_hours: word;
    c_minutes: word;
    c_seconds: word;
    c_milliseconds: word;

    begin
    GetTime(c_hours, c_minutes, c_seconds, c_milliseconds);
    seconds_count := c_seconds - seconds + (c_minutes - minutes) * 60 + (c_hours - hours) * 3600;
    writeln(inttostr(seconds_count) + ' seconds');
    end;

    begin
    StartClock;

    // code you want to measure

    StopClock;
    end.

    关于time - 如何在 Pascal 中检测耗时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5625798/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com