Как обнаружить любую кнопку клавиатуры, нажатую на языке Ada - PullRequest
3 голосов
/ 05 апреля 2020

Я новичок в программировании на Аде. Я пытаюсь сделать игру "2048", используя Аду. Я сделал «2048» в C ++, и я использовал «kbhit ()», чтобы определить, есть ли какая-нибудь нажатая клавиша на клавиатуре. Я хочу знать, есть ли в Аде похожая функция, такая как «kbhit ()», или как написать функцию для определения, нажата ли какая-нибудь клавиша на клавиатуре, или мне просто нужно использовать функцию по интерфейсу в C ++.

1 Ответ

4 голосов
/ 05 апреля 2020

Да, вы можете использовать любую из нескольких перегруженных версий Ada.Text_IO.Get_Immediate. Объявления (скопированы из выпуска стандарта Ada 2012 года):

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

Считывает следующий символ, либо управляющий, либо графический c, из указанного файла или входного файла по умолчанию. Ошибка Mode_Error распространяется, если режим файла не In_File. End_Error распространяется, если в конце файла. Текущий столбец, строки и номера страниц для файла не затрагиваются.

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

Если из указанного файла или элемента доступен символ, или элемент управления, или рисунок c входной файл по умолчанию, после чего символ читается; Доступно - True, а Item содержит значение этого символа. Если символ недоступен, тогда Доступно значение Ложь и значение Элемент не указано. Ошибка Mode_Error распространяется, если режим файла не In_File. End_Error распространяется, если в конце файла. Текущие номера столбцов, строк и страниц для файла не затрагиваются.

...