我有点超越这里。我的任务是为我的C ++类创建一个伪Minesweeper游戏。所有的根编码都已完成,我现在要做的就是为它创建一个很酷的菜单。目前我只有这个:
#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;
}
非常简单。我想要做的是创建一个屏幕,用户可以使用向上和向下键盘键选择START或EXIT,然后按ENTER确认其选择。我认为这可以通过Java中的事件或类似的事件来完成。但是在C ++中我不知道该怎么做。我需要的只是一些帮助入门。我的介绍C ++书不包括这样的内容。
同样,我正在寻找一个简单的启动画面,类似于你在旧的任天堂游戏中找到的东西。我会在自己身边玩一些游戏,但我认为这是一个要求朝着正确方向前进的好地方。
提前感谢您的帮助!
答案 0 :(得分:1)
您实现此目标的方式取决于平台。如果您只是使用控制台,则可能需要使用某种类型的库来帮助设置文本样式(例如反转所选菜单项的字符和背景)。我并不熟悉其中任何一个,但尝试搜索curses库作为从哪里开始的例子。
这并不像听起来那么容易。根据库的工作方式,只要用户发送输入,存储当前选择的菜单项索引,并根据是否选择了菜单项,就需要重新绘制闪屏。
获取输入也将取决于平台,特别是获取箭头键输入对于控制台来说是棘手的。使用数字要容易得多,因为您只需读取一个字符并将其用作菜单索引(即,如果用户点击1键,则选择第一个菜单索引)。