如何检测在Ada语言中按下的任何键盘按钮

如何检测在Ada语言中按下的任何键盘按钮,ada,kbhit,Ada,Kbhit,我是Ada编程的初学者。我正在尝试使用Ada制作一个“2048”游戏。我在C++中做了“2048”,我用“KBHIT()”来检测是否有键盘按钮被按下。我想知道,在艾达中有类似的函数“KBHIT()”,或者如何写一个函数来检测是否有任何键盘按钮被按下,或者我应该只使用C++中的接口函数。< /P> < P>是的,你可以使用任何代码的重载版本:艾达。声明如下(摘自2012版《美国残疾人法案》标准): 从中读取下一个字符(控件或图形) 指定的文件或默认输入文件。如果 文件的模式不在\u文件中。如果在

我是Ada编程的初学者。我正在尝试使用Ada制作一个“2048”游戏。我在C++中做了“2048”,我用“KBHIT()”来检测是否有键盘按钮被按下。我想知道,在艾达中有类似的函数“KBHIT()”,或者如何写一个函数来检测是否有任何键盘按钮被按下,或者我应该只使用C++中的接口函数。< /P> < P>是的,你可以使用任何代码的重载版本:<代码>艾达。声明如下(摘自2012版《美国残疾人法案》标准):

从中读取下一个字符(控件或图形) 指定的文件或默认输入文件。如果 文件的模式不在\u文件中。如果在 文件的结尾。的当前列、行和页码 文件不受影响

如果控件或图形中的字符可从 指定文件或默认输入文件,则读取字符; Available为True,项包含此字符的值。如果 字符不可用,则“可用”为False,且 未指定项目。如果 文件不在\u文件中。如果在 文件文件的当前列、行号和页码不正确 装腔作势


如果不确切知道kbhit的功能,就不可能回答这个问题。如果缓冲区中有字符,但没有按下键,它会返回什么?如果缓冲区为空且按下Ctrl键,则返回什么?如果标准输入被重定向,它是如何工作的?请注意,对于至少一些版本的GPS,如果您尝试从GPS输入控制台运行Get_Immediate,它仍将充当Get,因为GPS在将输入传递到实际控制台缓冲区之前需要一个新的行或行馈送(不确定是哪一个)。
procedure Get_Immediate(File : in File_Type;
                        Item : out Character);
procedure Get_Immediate(Item : out Character);
procedure Get_Immediate(File : in File_Type;
                        Item : out Character;
                        Available : out Boolean);
procedure Get_Immediate(Item : out Character;
                        Available : out Boolean);