if语句

时间:2017-04-11 16:17:39

标签: c++ sublimetext2

使用Sublime(Am在我的macbook而不是我的主PC上)并帮助我的妹妹完成编程任务。

我不是一个庞大的C ++专家,并且从帮助她的过程中学到了很多东西,但我似乎仍然被基础知识所困扰。

下面的代码是我编写的一个函数,它运行的游戏是在一个我无法访问的单独类中编写的,我只使用了有限数量的方法并且可以使用尽可能多的方法我喜欢的时间。

游戏是其中一个3x3瓷砖板,数字为1-8,你可以移动一个空间重新安排电路板试图按顺序获取数字(见图片)Sliding puzzle, like this but with numbers instead of the smiley face,代码调用更新功能基于输入,然后打印板。

在我在方法结尾的最后if语句中添加之前,我没有任何问题。现在最后两个'{'被突出显示为粉红色,前面的方法已经失去了绿色名称......

我很难过,帮忙?

void beginGamePlay () {
    gameInPlay = true;
    char gameMenuChoice = '';
    // While gameInPlay is True, game will loop
    while (gameInPlay) {
        //Print new inGame menu
        printInGameMenu();

        while (putchar (tolower(gameMenuChoice) != 'm') {
            if (putchar (tolower(gameMenuChoice)) != 'u' || 'd' || 'l' || 'r'){
                cout << "Invalid Input, Try again:";
                printInGameMenu();
            } else {
                puzzle.updateBoard(gameMenuChoice);
                puzzle.printBoard();
                break;
            }
        }
        // Check if the game ends
        if (puzzle.gameOver()) {
            gameInPlay = false;
            cout << "You WIN!";
        }

    }

}

Full Colour Image

1 个答案:

答案 0 :(得分:3)

与您的格式化和显示颜色问题无关......

if (putchar (tolower(gameMenuChoice)) != 'u' || 'd' || 'l' || 'r')

不会像你想象的那样工作。你需要使用:

char ch = putchar(tolower(gameMenuChoice));
if ( ch == 'u' ||
     ch == 'd' ||
     ch == 'l' ||
     ch == 'r' ) { ... }