2012-11-07 3 views
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를 눌러 선택을 확인하는 화면을 작성하는 것입니다. 나는 이것이 자바 또는 그와 비슷한 사건으로 끝날 것이라고 생각한다. 하지만 C + +에서 어떻게 해야할지 모르겠다. 필요한 것은 시작하는 데 도움이되는 것입니다. 내 소개 C++ 책은 이와 같은 것을 다루지 않습니다.

다시 말해, 이전 Nintendo 게임이나 다른 게임에서와 비슷한 간단한 스플래시 화면을 만들려고합니다. 나는 나 자신을 놀고있는 약간의 것을 할 것이다. 그러나 나는 이것이 바른 방향에 갈 것을 부탁 할 좋은 장소 다라고 생각했다.

미리 도움을 주셔서 감사합니다!

답변

1

이 방법은 플랫폼에 따라 다릅니다. 콘솔을 사용하고 있다면 텍스트의 스타일을 정하는데 도움이되는 일종의 라이브러리 (예 : 선택한 메뉴 항목의 문자 및 배경 반전)를 사용하는 것이 좋습니다. 나는 이들 중 어느 것에 대해서도 잘 알고 있지는 않지만, 어디서부터 시작해야하는지에 대한 예로서 curses 라이브러리를 찾아보십시오.

소리가 나는 것처럼 쉽지 않습니다. 라이브러리의 작동 방식에 따라 사용자가 입력을 보내고 현재 선택된 메뉴 항목 색인을 저장할 때마다 스플래시 화면을 다시 그려야하며 선택 여부에 따라 메뉴 항목을 선택적으로 다시 칠할 필요가 있습니다.

입력을받는 것도 플랫폼에 따라 다르기 때문에 특히 화살표 키 입력을받는 것은 콘솔의 경우 까다 롭습니다. 문자를 읽고 메뉴 색인으로 사용할 수 있기 때문에 숫자를 사용하는 것이 훨씬 쉽습니다 (즉, 사용자가 1 키를 누르는 경우 첫 번째 메뉴 색인을 선택).

+0

내가 겪고있는 문제는 특정 사용자 입력을 처리하는 방법입니다. 예를 들어, 사용자가 Enter 키만 눌렀는지 확인할 수있는 방법은 무엇입니까? 16 진수 값을 참조 할 수 있습니까? –

+1

@DustinBurns 사용하는 입력 방법에 따라 다릅니다. cin에서 추출 연산자를 사용 했으니 까.하지만 입력 줄을 읽으려면 cin.getline (some_buffer) 같은 것을 할 수 있다고 생각합니다. 해당 행의 길이가 0이면 사용자가 아무 것도 입력하지 않은 것입니다 (입력하지 않고 입력하십시오). – Telgin