3

我是 Ada 编程的初学者。我正在尝试使用 Ada 制作“2048”游戏。我在 C++ 中做了“2048”,并使用“kbhit()”来检测是否按下了任何键盘按钮。我想知道是否有任何类似的函数可用,如 Ada 中的“kbhit()”,或者如何编写一个函数来检测是否按下了任何键盘按钮,或者我应该只在 C++ 中通过接口使用该函数。

4

1 回答 1

4

是的,您可以使用Ada.Text_IO.Get_Immediate. 声明是(从 2012 年版的 Ada 标准复制):

procedure Get_Immediate(File : in File_Type;
                        Item : out Character);
procedure Get_Immediate(Item : out Character);

从指定的文件或默认输入文件中读取下一个字符(控件或图形)。如果文件的模式不是 In_File,则传播 Mode_Error。End_Error 在文件末尾传播。文件的当前列号、行号和页码不受影响。

procedure Get_Immediate(File : in File_Type;
                        Item : out Character;
                        Available : out Boolean);
procedure Get_Immediate(Item : out Character;
                        Available : out Boolean);

如果从指定的文件或默认输入文件中可以得到一个字符,无论是控件还是图形,则读取该字符;Available 是 True 并且 Item 包含这个字符的值。如果某个字符不可用,则 Available 为 False,并且未指定 Item 的值。如果文件的模式不是 In_File,则传播 Mode_Error。End_Error 在文件末尾传播。文件的当前列号、行号和页码不受影响。

于 2020-04-05T04:21:18.017 回答