Я как бы иду дальше и выше. Мне было поручено создать псевдо-игру Сапер для моего класса C ++. Все рутинное кодирование сделано, и все, что я хочу сейчас сделать — это создать для него классное меню. На данный момент все, что у меня есть, это:
#include <iostream>
#include <cstdlib>
using namespace std;
bool menu ()
{
int inpt;
bool exitVar;
system("cls");
cout << " _ _ _ _ _ _ _ _ " << endl
<< " |_|_ _|_| |_| |_|_ |_| |_|_|_| " << endl
<< " |_|_|_|_|_| |_| |_|_|_ |_| |_|_ " << endl
<< " |_| |_| |_| |_| |_| |_|_|_| |_|_| " << endl
<< " |_| |_| |_| |_| |_|_| |_|_ _ " << endl
<< " |_| |_| |_| |_| |_| |_|_|_| " << endl
<< " _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ " << endl
<< " _|_|_| |_| |_| |_|_|_| |_|_|_| |_|_|_ |_|_|_| |_|_|_ " << endl
<< " |_|_ |_| _ |_| |_|_ |_|_ |_|_|_| |_|_ |_|_|_| " << endl
<< " |_|_ |_|_|_|_|_| |_|_| |_|_| |_|_| |_|_| |_|_|_ " << endl
<< " _ _|_| |_|_| |_|_| |_|_ _ |_|_ _ |_| |_|_ _ |_| |_|_ " << endl
<< " |_|_| |_| |_| |_|_|_| |_|_|_| |_| |_|_|_| |_| |_| " << endl;
cout << "\n Welcome to Psuedo Mine Sweeper!!\n\n\n\n";
cout << "Please choose from one of the following options:\n";
cout << "1 - Play Psuedo Mine Sweeper!\n";
cout << "2 - Exit Program :(\n\n";
cout << "(1 or 2):";
cin >> inpt;
while (inpt < 1 || inpt > 2 || cin.fail())
{
cin.clear();
cin.ignore();
cout << "Please enter a valid menu choice : ";
cin >> inpt;
}if (inpt = 1)
exitVar = true;
else
exitVar = false;
return exitVar;
}
Довольно просто Я хочу создать экран, на котором пользователь может использовать клавиши клавиатуры ВВЕРХ и ВНИЗ, чтобы выбрать СТАРТ или ВЫХОД, и нажать ВВОД, чтобы подтвердить их выбор. Я думаю, что это будет сделано с событием на Java или чем-то в этом роде. Но в C ++ я понятия не имею, как это сделать. Все, что мне нужно, это просто помощь, чтобы начать. Моя вводная книга по C ++ не охватывает ничего подобного.
Опять же, я хочу создать простой экран-заставку, похожий на тот, который вы найдете в старой игре Nintendo или что-то в этом роде. Я немного поиграю с собой, но я подумал, что это хорошее место, чтобы попросить двигаться в правильном направлении.
Спасибо за помощь в продвижении!
То, как вы это делаете, зависит от платформы. Если вы просто используете консоль, вы, вероятно, захотите использовать какую-то библиотеку, чтобы помочь стилизовать текст (например, инвертировать символы и фон для выбранного пункта меню). Я не очень хорошо знаком с любым из них, но попробуйте поискать библиотеку curses в качестве примера того, с чего начать.
Это не так просто, как кажется. В зависимости от того, как работает библиотека, вам нужно будет перерисовывать заставку всякий раз, когда пользователь отправляет ввод, сохранять, какой индекс пункта меню выбран в данный момент, и выборочно перекрашивать этот пункт меню в зависимости от того, выбран он или нет.
Получение ввода также будет зависеть от платформы, а получение ввода с помощью клавиши со стрелкой, в частности, сложно для консоли. Использовать числа намного проще, поскольку вы можете просто прочитать символ и использовать его в качестве указателя меню (т. Е. Если пользователь нажимает клавишу 1, выберите первый указатель меню).
Других решений пока нет …