keyboard - OCaml 在没有图形窗口的情况下读取按键

标签 keyboard ocaml windows-console

编辑。我在 Windows 环境中工作。

我想用 OCaml 在控制台输出中编写一个简单的游戏。我需要能够使用“read_key”功能。但是:

  • 图形模块抛出错误:异常:Graphics.Graphic_failure“图形屏幕未打开”。但我不想打开图形窗口。
  • 函数read_line强制用户在每次按键后按“return”...

最佳答案

使用纯 OCaml 不可能实现此类功能。您将需要调用特定于平台的库。这不是 OCaml 问题,其他语言也是如此,包括 python、java、c 等。实际上,以可移植的方式与终端交互是一种火箭科学。主要是历史原因。

我怀疑您不想陷入这样的麻烦,所以我可以建议一些简单的解决方案:

  1. 使用OCamlSDL库,- 您正在开发游戏,而 SDL 适合游戏

  2. 使用图形模块,是的,您将需要打开图形窗口,并且您的游戏将不是纯粹的控制台......但这也许不是一个大问题。另外,您可以制作黑色背景并模拟终端:)

  3. 安装 OCaml 的 Cygwin 版本。您将获得一个类似 UNIX 的环境,Unix.tc_* 将开始工作。

  4. 切换到正常操作系统。我所说的“正常”是指类 Unix 系统。您可以第一次使用虚拟机或容器,例如 Docker。

关于keyboard - OCaml 在没有图形窗口的情况下读取按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36089021/

相关文章:

ocaml - 有没有办法在 OCaml 中参数化类型上的模块或从模块中转义类型?

python - 使用 Python (Windows) 更改控制台窗口的位置

c# - 在 OOP 的传统意义上不相关的类的继承

ios - Swift - 在用户输入时获取键盘输入

java - 使用 keyPressed 检测键盘方向键

iphone - UITextField 停止摇动事件?

OCaml:用消息断言

python 3 : how to use the press Ctrl+X (cut) and Ctrl+V using pynput?

OCamlbuild 编译失败,提示 Netsys 的实现没有提供

batch-file - 如何跳过批处理文件中发现的错误并继续执行命令行?