0

我有点超越这里。我的任务是为我的 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;
 }

很简单。我想要做的是创建一个屏幕,用户可以使用 UP 和 DOWN 键盘键选择 START 或 EXIT,然后按 ENTER 确认他们的选择。我认为这将通过 Java 中的事件或类似的东西来完成。但是在 C++ 中,我不知道该怎么做。我所需要的只是一些入门帮助。我的 C++ 介绍书没有涵盖这样的内容。

同样,我希望创建一个简单的启动画面,类似于您在旧任天堂游戏或其他东西中找到的内容。我会在自己周围做一些游戏,但我认为这是一个要求朝着正确方向前进的好地方。

我在这里先向您的帮助表示感谢!

4

1 回答 1

1

您完成此操作的方式取决于平台。如果您只是使用控制台,您可能希望使用某种库来帮助设置文本样式(例如反转所选菜单项的字符和背景)。我对这些都不是很熟悉,但尝试搜索 curses 库作为从哪里开始的示例。

这并不像听起来那么容易。根据库的工作方式,您需要在用户发送输入时重新绘制初始屏幕,存储当前选择的菜单项索引,并根据是否选择该菜单项有选择地重新着色该菜单项。

获取输入也将取决于平台,尤其是获取箭头键输入对于控制台来说是棘手的。使用数字要容易得多,因为您可以读入一个字符并将其用作菜单索引(即,如果用户按 1 键,则选择第一个菜单索引)。

于 2012-11-07T23:28:04.493 回答