如何检测 Pascal 中经过的时间?

2023-12-25

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

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

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

完整代码:http://non.dagrevis.lv/junk/pascal/Parad0x/Parad0x.pas http://non.dagrevis.lv/junk/pascal/Parad0x/Parad0x.pas.

据我所知,有两种可能的解决方案:

  1. getTime(从 DOS),
  2. 延迟(来自 CRT)。

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


Check 这个链接 http://www.merlyn.demon.co.uk/pas-wait.htm。可能有一些对您有用的信息。和here is http://www.pascalgamedevelopment.com/archive/index.php/t-3025.html你要求的一样。和here's http://www.delphifaq.com/faq/f110.shtml您正在寻找什么(与下面的代码相同)。

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.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检测 Pascal 中经过的时间? 的相关文章

  • WPF 向我的 GUI 添加时钟

    简单请求 我希望能够在 WPF 应用程序窗口中显示当前时间 有免费的控件吗 只需要显示时间 没有别的 您可以有一个标签或文本块 并将其内容绑定到 System DateTime Now
  • 如何使用 JS 和 Chrome 控制台向频道发送 Discord 消息?

    如何使用 JS 和 Chrome 控制台在不使用 Discord API 的情况下将 Discord 消息发送到 Discord 频道 看来这是不可能的事了 打开不和谐控制台 ctrl shift i 不起作用 请参阅下面的编辑 然后进入网
  • 如何在Python中打印带下划线的内容?

    print hello 输出应该是单词 hello 但有下划线 您可以通过使用转义字符来做到这一点 print 033 4mhello 033 0m
  • Bash:从给定时间减去 10 分钟

    在 bash 脚本中 如果我有一个代表时间的数字 格式为 hhmmss 或 hmmss 那么减去 10 分钟的最佳方法是什么 即 90000 gt 85000 这有点棘手 日期可以进行一般操作 即您可以执行以下操作 date date 10
  • 找出某个日期时间自unix纪元以来的时间?

    我想找出 2009 年 10 月 1 日 9 00 BST 的 UNIX 时间 即自 Unix 纪元以来的秒数 我如何在 Linux 命令行上执行此操作 我知道你可以使用date UNIXTIME someformat 但是unix时间是我
  • 控制台界面教程和提示 (pdcurses)

    我正在寻找有关使用 PDCurses 库的教程 不幸的是 只有文本文档 这更像是函数参考 pdcurses 是否与 ncurses 足够相似以使用 ncurses 教程 关于制作控制台 UI 的任何提示 附言 PDCurses mingw3
  • time() 会返回相同的输出吗?

    当用户注册时 我正在为 PHP 中的用户生成令牌 我想知道两个用户是否可以获得相同的令牌 因为这会破坏系统 请让我知道这是否足够 token md5 rand time 编辑 我现在正在使用我在另一个问题上找到的generate uuid
  • 如何使用用户输入来寻址 Pascal 中的特定变量(Eval/Exec?)

    我正在尝试在分形程序中做一些非常具体的事情隆起7X http apophysis 7x org 使用的脚本语言是Pascal 该项目是用德尔福写的 https svn code sf net p apophysis7x svn trunk
  • 调试 iOS 应用程序时控制台中的 Webcore NSBeep()?

    当我在 iPhone 上运行 iOS 6 应用程序时 我在控制台中收到这条奇怪的消息 Webcore NSBeep 我在其他帖子中读到 这个 NSBeep 在 iOS 中根本不存在 除此之外 我在我的应用程序中根本没有使用与网络相关的任何内
  • Java 8,为什么不是 ZonedTime 类?

    我发现 Java 8 没有等效的分区日期时间 http docs oracle com javase 8 docs api java time ZonedDateTime html但只能与Time a 分区时间类或类似的东西 I know他
  • 终止 Java RMI 服务器应用程序

    我已经使用 Java RMI 建立了一个客户端 服务器项目 下面我展示部分实现 我 使用启动服务器 ProcessBuilder processBuilder new ProcessBuilder cmd C start B java ja
  • Php 转换 GMT 格式的时间

    我有这个字符串2012 06 27 16 17 06我想将其转换为 GMT 格式 我怎样才能做到这一点 多谢 Use gmdate http php net manual en function gmdate php 使用以下命令将当前日期
  • Sql Server 的夏令时

    我们正在使用一个以 C Unix 格式存储日期的旧应用程序 C 时间基本上是自 1970 年 1 月 1 日以来的秒数 日期以整数形式存储在 SQL Server 数据库中 我正在为使用这些日期的报告编写视图 到目前为止 我正在使用以下命令
  • 计算轮班工作时间并检测

    我有个问题 我的英语很差 我需要用PHP做一个加班计算 已经有一个代码可以实现这一点 但当工作时间超过2天时 计算就会出错 工作开始 2018 09 09 13 43 工作结束 2018 09 11 07 13 结果 07 18 04 00
  • 如何在 python 中使用 urllib2 加快获取页面的速度?

    我有一个脚本可以获取多个网页并解析信息 一个例子可以在 我在上面运行了 cProfile 正如我所假设的 urlopen 占用了很多时间 有没有办法更快地获取页面 或者一次获取多个页面的方法 我会做最简单的事情 因为我是 python 和网
  • `SystemTime::now` 是否受夏令时影响?

    在时间 T 我调用SystemTime now duration since UNIX EPOCH 在时间 T 10 当夏令时开始时 我调用相同的调用 我可以预期这两个实例之间会出现任何奇怪的行为吗 SystemTime本身完全独立于时区
  • 使用 MYSQL 将 h:mm pm/am 时间格式插入数据库

    我正在尝试将以 h mm am pm 格式写入的时间插入到存储为标准 DATETIME 格式 hh mm ss 的数据库中 但我不知道如何将发布的时间转换为标准格式所以数据库会接受它 这是我到目前为止一直在尝试的 title POST in
  • 程序不等待 cin

    int x 0 string fullname float salary float payincrease float newsal float monthlysal float retroactive while x lt 3 cout
  • Android 中 localTime 和 localDate 的替代类有哪些? [复制]

    这个问题在这里已经有答案了 我想使用从 android API 获得的长值 该值将日期返回为长值 表示为自纪元以来的毫秒数 我需要使用像 isBefore plusDays isAfter 这样的方法 Cursor managedCurso
  • 获取特定时区一天开始时的时间对象

    如何获取代表给定时区特定日期的一天开始时间的 ruby Time 对象 date Date today date to time in time zone America New York beginning of day 目前输出 gt

随机推荐