Partage
  • Partager sur Facebook
  • Partager sur Twitter

Console qui cesse de fonctionner en c++

Jeu du Pendu

Sujet résolu
    17 février 2018 à 14:59:34

    #include <iostream>
    #include <string> //chaine de charactères
    #include <time.h>
    #include <windows.h>
    #include <conio.h>
    
    using namespace std;
    int lettre_nb (char mot ){ // fonction qui convertit les lettres du mot cible
    	int nb = 0;           // en nombre pour les mettrent dans le tab_pendu
    		if (mot == 'A')
    			nb = 1;
    
            if (mot == 'B')
    			nb = 2; 
    
            if (mot == 'C')
    			nb = 3;     
    
            if (mot == 'D')
    			nb = 4;      
    		
            if (mot == 'E')
    			nb = 5;      
    		
            if (mot == 'F')
    			nb = 6; 
    
            if (mot == 'G')
    			nb = 7;      
    		
            if (mot == 'H')
    			nb = 8;      
    		
            if (mot == 'I') 
            	nb = 9;
    
            if (mot == 'J')
    			nb = 10;      
    		
            if (mot == 'K')
    			nb = 11;     
    		
            if (mot == 'L')
    			nb = 12;      
    		
            if (mot == 'M')
    			nb = 13;      
    		
            if (mot == 'N')
    			nb = 14;      
    		
            if (mot == 'O')
    			nb = 15;      
    		
            if (mot == 'P')
    			nb = 16;      
    		
            if (mot == 'Q')
    			nb = 17;      
    		
            if (mot == 'R')
    			nb = 18;      
    		
            if (mot == 'S')
    			nb = 19;      
    		
            if (mot == 'T')
    			nb = 20;     
    		
            if (mot == 'U')
    			nb = 21;      
    		
            if (mot == 'V')
    			nb = 22;      
    		
            if (mot == 'W')
    			nb = 23;      
    		
            if (mot == 'X')
    			nb = 24;      
    		
            if (mot =='Y')
    			nb = 25;      
    		
            if (mot == 'Z'){
    			nb = 25 ;      
            }
    		
    	return nb;
    }
    
    int main() {
    	string mot_cible = "NEIGE"; // mot cible
    	int x = mot_cible.size(); // mesure le mot cible
    	int tab_pendu[2][x]; // creer un tableau en fonction du mot cible
        cout << x << endl;
    
    	for (int i= 0;i<=x-1;i++){ // met le mot cible en nombre dans le tableau
    
            char aux = mot_cible[i];
    		tab_pendu[2][i] = lettre_nb(aux) ;
    	}

    Bonjours,

    Je suis en terminale S spécialité ISN et je fais un projet avec 2 autres personnes sur le jeu du pendu en C++ (je suis débutant dans ce langage)

    Mon problème est le suivant :

    J'ai crée un tableau de 2 lignes et avec autant de colonne que le mot cible a de caractères, j'ai eu l'idée de stocker chaque caractère du mot cible (convertis en nombre) dans la deuxième ligne de mon tableau. L'idée était de comparer le caractère saisie par l'utilisateur à la deuxième ligne du tableau et si jamais ça matchait de faire monter le caractère d'une ligne et de l'afficher. Seulement quand le mot cible dépasse 9 caractères la console plante..

    plantage console

    J'espère que vous pourrez m'aider ^^ ( mon compilateur est g++ de MinGW sur Sublime text )

    Merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      18 février 2018 à 3:34:26

      Hello

      Utiliser using namespace std; est une mauvaise pratique (pleins de lien foisonnent sur ce forum a ce sujet).

      Ta fonction lettre_nb peux literalement se resumer a return mot - 'A' + 1;

      Dans ta loop, si tu veux acceder a la 2em case du tableau, tu dois utiliser l'indice 1 (vu qu'on commence a 0).

      De plus les VLA (variable length array) sont interdit en C++ (tab_pendu[2][x]). Utilise std::vector a la place.

      • Partager sur Facebook
      • Partager sur Twitter
        18 février 2018 à 21:30:14

        merci pour les conseils mais ce qui est des vectors je contais les utiliser sauf que le prof nous a dis que on devais utiliser que ce qu'on avait vu en cour

        Or on l'a pas vu..

        • Partager sur Facebook
        • Partager sur Twitter
          19 février 2018 à 2:48:42

          Omega31 a écrit:

          merci pour les conseils mais ce qui est des vectors je contais les utiliser sauf que le prof nous a dis que on devais utiliser que ce qu'on avait vu en cour

          Or on l'a pas vu..

          Alors il faudrait utiliser à la place les VLA qui sont interdits en C++! Elried à plus que répondu à ton problème.

          • Partager sur Facebook
          • Partager sur Twitter

          En recherche d'emploi.

          Console qui cesse de fonctionner en c++

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown