В игровом проекте, над которым я работал, я серьезно замедлился - вплоть до отказа от того, что, похоже, нет библиотек, которые могут упростить процесс отображения меню в текстовом режиме (т.е. текстовое поле 80x25, собственный интерфейс command.com/cmd.exe).Библиотеки для отображения текстового меню?
Мне нужно что-то, что может предоставить список вариантов, в идеале включающих несколько страниц, и включая значения, которые нужно ввести, чтобы выбрать один из них; запросить пользователя; аккуратно порежьте пользователя (возможно, позвонив в колокольчик и перерисуя подсказку «выберите один:»), когда пользователь не сможет ввести что-то действительное; и возвращает то, что может быть использовано для определения того, какая опция была передана.
Это, оказывается, намного больше работы, чем кажется; и теперь тот же самый вопрос, который меня так сильно затормозил дома, придумал (или собирается придумать) на работе. Кто-нибудь знает какие-либо библиотеки non-copyleft с функцией, которая может быть передана контейнером для хранения опций, отображать их на экране и получить выбор пользователя?
Ответ: Ncurses очень подходит для этой цели, включая явно предоставление драйвера меню. Он имеет лицензию в стиле MIT, что делает ее совместимой с коммерческим использованием. Однако он недоступен для MS-DOS или Windows. (Я ссылался на command.com выше, но не думал явно указывать, что это вопрос в отношении архитектур Microsoft.)
Однако похоже, что он был успешно скомпилирован в DOS и Windows в прошлом, и я уверен, что смогу получить его или, по крайней мере, его части, которые мне нужны, чтобы работать, особенно учитывая, что это логика меню, а не рисование линии и тому подобное. Вопрос Good resources for writing console style applications for Windows? также должен быть полезен в этом отношении.
Позже, дополнительный ответ: Windows обеспечивает достаточное количество функциональных возможностей дисплея из коробки, как показано here - хотя это делает не включать в себя систему меню дисплея, в отличие от Ncurses. Нечестивый гибрид логики меню ncurses и Windows API? Это может быть жизнеспособным выбором в качестве Cygwin ...
Намного позже дополнительный ответ: Оба Ncurses и pdcurses работают очень гладко с Windows, даже без использования Windows API, для чего-то большего, чем создание и калибровки дисплея. Я решил использовать pdcurses и научился создавать собственные меню - позволяя обратные вызовы, легко расширенную очередь сообщений на экране, использование строкового класса C++ и другие подобные функции.
Дальнейшее обновление: Библиотеки меню Curses написаны на C и поэтому работают в терминах последовательностей char *. Я отказался от попыток использовать их и вместо этого написал свои собственные меню, используя низкоуровневые функции curses для отображения экрана.
Мой экран обычно 90x35. Могу ли я не играть в вашу игру? Но чтобы ответить на ваш вопрос, попробуйте 'ncurses'. –
Я уверен, что вы могли бы получить некоторую карму StackOverflow от публикации ниже; но спасибо. Вы не можете играть в игру, потому что она еще не существует :), но я предполагаю, что ncurses будет более прощать с терминальными размерами, чем Microsoft, поэтому этот ответ может измениться. – ExOttoyuhr
@ Robᵩ: Спасибо. – ExOttoyuhr