0

ねえ、C++でゲームを作っています。それは大学の仕事であり、簡単な説明ではヘッダーファイルを使用しないと述べており、ゲームは基本的なものでなければなりません。問題は、ゲームが終了した後もまだ選択を求めていることです。私は壊れて出ようとしましたが、それでも喜びはありません。プログラムは終了しません。誰かがこれを手伝ってくれますか?

これが私のコードです:メイン

int main()          //  The main function is set to int.  
    //  The return value has to be an integer value.
{
    menuText();
    while(menu)     // Loop to revert back to menu when choice is not compatable with options.
    {
        int selection;
        cout<< "Choice: ";
        cin>> selection;

        switch(selection)
        {
        case 1: 
            cout << "Start Game\n";
            playGame();
            break;
        case 2:
            cout << "Exit Game\n";
            cout << "Please press enter to exit...\n";
            menu = false ;
            break;
        }
    }


    system("pause");    //  To stop the program from exiting prematurely.
    return 0;           //  this is needed because the main is set to return
    //  an integer.
}

int playgame()
status Status = {100,20,80,80,20};// declaration of class members.
    //Contents of PlayGame().............................
    exitGame();
    return 0;
}
void exitGame()
{
    cout << "\n\nPlease press enter to exit the game.";
    return;

}
4

2 に答える 2

2

あなたは基本的にこれを行います:

int playGame()
{
    return 0;
}

int main(){
    bool menu = true;
    while(menu){
        cout<< "Choice: ";
        cin>> selection;

        switch(selection)
        {
        case 1: 
            cout << "Start Game\n";
            playGame();
            break; // This break symbolizes that you want to end switch statement
                   // not the whole loop
        }
    }
    return 0;
}

あなたは次のようなことをするかもしれません:

#define GAME_COMPLETED -1 /* Will close the game */
#define GAME_RESERVER 0

if( playGame() == GAME_COMPLETED){
    menu = false;
}

// And of course at the end of the playGame:
return GAME_COMPLETED;

case '1':の代わりに使用したくないと確信していますcase 1:か?

于 2012-10-04T12:48:19.203 に答える
1

私はあなたを誤解しているかもしれませんが、私が理解していることから、あなたはplayGame()機能が終了した後にゲームを終了したいと思っています(私が間違っている場合は私を訂正してください)。

これを行うには、このブロックにも設定する必要があります。または、代わりに、このケースからステートメントをmenu=false; 削除します。break;フローは出口ケースに「落下」します。

于 2012-10-04T12:46:55.353 に答える