【发布时间】:2014-10-11 17:03:57
【问题描述】:
现在我有一个可用的滚动菜单,我只是想问是否有人提供如何压缩它的提示,因为它有点“CHUNKY”!
另外我还有两个额外的问题:如何为我的
“摇滚,
纸,
剪刀"
像“Rock, Paper”, Scissors“一样显示?如果你试试我的代码,你会看到文本都是垂直的,我可以让它全部水平吗?有没有什么技巧可以让它变成一个 void 语句可以多次使用?
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
int main()
{
string Menu[3] = {"Rock", "Paper", "Scissors"};
int pointer = 0;
while(true)
{
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
cout << "Main Menu\n\n";
for (int i = 0; i < 3; ++i)
{
if (i == pointer)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11);
cout << Menu[i] << endl;
}
else
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);
cout << Menu[i] << endl;
}
}
while(true)
{
if (GetAsyncKeyState(VK_UP) != 0)
{
pointer -= 1;
if (pointer == -1)
{
pointer = 2;
}
break;
}
else if (GetAsyncKeyState(VK_DOWN) != 0)
{
pointer += 1;
if (pointer == 3)
{
pointer = 0;
}
break;
}
else if (GetAsyncKeyState(VK_RETURN) != 0)
{
switch (pointer)
{
case 0:
{
cout << "\n\n\nStarting new game...";
Sleep(1000);
} break;
case 1:
{
cout << "\n\n\nThis is the options...";
Sleep(1000);
} break;
case 2:
{
return 0;
} break;
}
break;
}
}
Sleep(150);
}
return 0;
}
【问题讨论】:
-
<< endl;添加换行符。要水平打印,请在菜单项之前打印一个逗号,除非它是第一项。即 -if (i != 0) cout << ", "; -
不,这不会是“Rock, Paper Scissors”的原因,因为它已经使用了逗号,但它的行为就像一个endl,他们无论如何也要压缩这个“巨大的”代码? @enhzflep
-
那么,我认为您希望输出为
Rock Paper Scissors,而不是Rock, Paper, Scissors? -
是的!这正是我想要的。 @enhzflep
标签: c++ visual-studio-2010 visual-studio visual-studio-2012 menu