2017-04-11 32 views
0

使用後崇高(AM我的MacBook,而不是我的主要PC),並幫助我的妹妹與她的編程任務。未知的C++錯誤,{}突出if語句

我不是一個巨大的C++專家,已經從幫助她走出學到了很多東西,但我仍然看似過得去的基本知識難住了。

下面的代碼是我寫一個函數運行已經寫入一個單獨的類中,我沒有訪問,我只帶了的方法,數量有限使用,可以作爲使用遊戲我喜歡很多次。

遊戲是數字1-8和一個空間,你移動到重新安排董事會試圖讓數字按順序(見圖片)Sliding puzzle, like this but with numbers instead of the smiley face這些3x3瓦板之一,該代碼調用更新函數根據輸入並打印板後。

我沒有任何問題,直到我在最後添加的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

+5

第二''while'語句在'{'之前缺少一個''''''。目前它的'... gameMenuChoice)!= 'M'){',它應該是'gameMenuChoice)!= 'M')){' – Raxvan

+0

爲什麼要反覆在不改變它打印'gameMenuChoice'? – molbdnilo

回答

3

完全無關的格式化和顯示顏色的問題...

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

是行不通的,你的思維方式。您需要使用:

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