OCaml读取没有图形窗口的按键

时间:2016-03-18 16:02:33

标签: keyboard ocaml windows-console

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

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

  • 图形模块抛出错误:Exception: Graphics.Graphic_failure "graphic screen not opened".但我不想打开图形窗口。
  • 函数read_line强制用户在每次按键后按“返回”...

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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

  4. 切换到正常的操作系统。通常我指的是类Unix。您可以首次使用虚拟机或容器(如Docker)。