У меня есть следующий код, который ожидает ввода пользователя с помощью клавиш со стрелками для перемещения или экранирования для завершения программы.
Console.WriteLine(startNode.Render(true));
LevelState currentNode = startNode;
while (Console.ReadKey(true).Key != ConsoleKey.Escape)
{
if (Console.ReadKey(true).Key == ConsoleKey.UpArrow)
{
Console.WriteLine("up");
LevelState move = currentNode.StepInDirection(CardinalDirection.Up);
if (move != null)
{
currentNode = move;
Console.WriteLine(currentNode.Render(true));
}
}
//ditto for the other 3 directions
}
Однако, это только изредка подтверждает мой вклад. Например, если я быстро нажимаю клавишу выхода, в большинстве случаев ничего не происходит. Поэтому метод Console.ReadKey кажется мне крайне ненадежным. Что является лучшей альтернативой?