2017-04-11 1 views
0

En utilisant Sublime (Am sur mon macbook au lieu de mon PC principal) et aider ma soeur avec sa tâche de programmation. Je ne suis pas une grande experte en C++ et j'ai beaucoup appris en l'aidant, mais je semble toujours être déconcertée par les bases.Inconnu Erreur C++, {} sont en surbrillance après if instruction

Le code ci-dessous est une fonction que j'ai écrite qui exécute un jeu qui a été écrit dans une classe séparée à laquelle je n'ai pas accès, j'ai seulement un nombre limité de méthodes à utiliser et peut utiliser plusieurs fois comme j'aime.

Le jeu est l'un de ces panneaux de carreaux 3x3 avec les numéros 1-8 et un espace que vous déplacez pour réorganiser la carte en essayant d'obtenir les numéros dans l'ordre Sliding puzzle, like this but with numbers instead of the smiley face, Le code appelle la fonction de mise à jour basé sur l'entrée et imprime le conseil après.

Je n'ai eu aucun problème jusqu'à ce que j'ajoute dans la déclaration if finale à la fin de la méthode. Maintenant, les deux derniers '' sont surlignés en rose et les méthodes précédentes ont perdu leur nom vert ...

Je suis perplexe, aidez-moi?

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

la deuxième instruction 'while' manque un') 'avant' {'. actuellement c'est '... gameMenuChoice)! = 'm') {' et ça devrait être 'gameMenuChoice)! = 'm')) {' – Raxvan

+0

Pourquoi est-ce que vous imprimez plusieurs fois 'gameMenuChoice' sans le changer? – molbdnilo

Répondre

3

votre Rien à voir avec formattage et affichage question de couleur ...

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

ne va pas travailler la façon dont vous pensez. Vous devez utiliser:

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