/
Landilf
/
2413_Ryumin_CourseWork
Обзор
Документация
Войти
/
Landilf
/
2413_Ryumin_CourseWork
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
CourseWork/ConsoleUI/ConsoleInput.cs
58 строк
2 KB
Landilf
add project
27 янв 2026, 13:57
27 янв 2026, 13:57
753b3e7
Код
Авторство
О чём код?
using ConsoleUI.Enums; namespace ConsoleUI; /// <summary> /// Обработчик ввода с консоли. /// </summary> public static class ConsoleInput { #region Методы /// <summary> /// Получает команду, если нажата клавиша. /// </summary> /// <returns>Команда ввода.</returns> public static InputCommand GetCommand() { if (!Console.KeyAvailable) { return InputCommand.None; } var key = Console.ReadKey(true).Key; return MapKey(key); } /// <summary> /// Ожидает нажатия клавиши и возвращает команду (блокирующий). /// </summary> /// <returns>Команда ввода.</returns> public static InputCommand WaitForCommand() { var key = Console.ReadKey(true).Key; return MapKey(key); } /// <summary> /// Преобразует ConsoleKey в InputCommand. /// </summary> /// <param name="parKey">Нажатая клавиша.</param> /// <returns>Команда.</returns> private static InputCommand MapKey(ConsoleKey parKey) { return parKey switch { ConsoleKey.W or ConsoleKey.UpArrow => InputCommand.Up, ConsoleKey.S or ConsoleKey.DownArrow => InputCommand.Down, ConsoleKey.A or ConsoleKey.LeftArrow => InputCommand.Left, ConsoleKey.D or ConsoleKey.RightArrow => InputCommand.Right, ConsoleKey.Enter => InputCommand.Confirm, ConsoleKey.Escape => InputCommand.Cancel, ConsoleKey.V => InputCommand.CheatVictory, _ => InputCommand.None }; } #endregion }