Partage
  • Partager sur Facebook
  • Partager sur Twitter

expected primary-expression before ‘ ’ token c++

c++

    15 janvier 2020 à 21:33:19

    #include <iostream>
    #include <clocale>
    #include <ctime>
    #include <cstdio>
    #include <cstdlib>
    #include <windows.h>
    #include <fstream>
    #include <math.h>
    #include <string>
    using namespace std;
    const int L_MAX = 6;
    const int C_MAX = 7;
    const int VIDE = 0;
    const int JAUNE = 1;
    const int ROUGE = 2;
    typedef int t_plateau[L_MAX][C_MAX];
    void initialise(t_plateau &init)
    {
        int l, c;
        for (l = 0; l<L_MAX; l++) {
            for (c = 0; c<C_MAX; c++) {
                init[l][c] = VIDE;
            }
        }
    }
    /*void affiche(t_plateau aff, int joueur)
    {
        int i, j;
        for (i = 0; i<L_MAX; i++) {
            for (j = 0; j<C_MAX; j++) {
                switch (aff[i][j]) {
                case VIDE:
                    cout << ' ';
                    break;
                case JAUNE:
                    cout << 'X';
                    break;
                case ROUGE:
                    cout << 'O';
                    break;
                }
                cout << '|';
            }
            cout << endl;
        }
    }*/
    void affiche(t_plateau plateau)
    {
        int l, c;
        system("cls");
        for (l=0; l<L_MAX; l++) {
            cout<<"+";
            for (c=0; c<C_MAX; c++) {
                cout<<"---+";
            }
            cout<<endl;
            for (c=0; c<C_MAX; c++) {
                cout << "| "<<plateau[l][c]<<" ";
            }
            cout<<"|"<<endl;
        }
        cout<<"+";
        for (c=0; c<C_MAX; c++) {
            cout<<"---+";
            }
            cout<<endl<<"0   1   2   3   4    5    6";
    }
    float changerjoueur(int joueur)
    {
        if(joueur == '1') {
            joueur = '2';
        }
        else {
            joueur = '1';
        }
        return (joueur);
    }
    /*void placerpion(t_plateau &pion, int choix, int j)
    {
        int i = 0;
        bool place=true;
        while((pion[i][choix]== VIDE) && i < L_MAX){
            i++;
        pion[i-1][choix] = j;
    }
        if(i==-1 || i)
            */
    void placerpion(int choix, char c){
        int i = L_MAX;
        bool place=false;
     while(place!=true){
            if (i==-1 || choix < 0 || choix > 6){
                cout << "entrez un autre numero\n";
                cin >> choix;
                i = L_MAX;
            }
            if (t_plateau[choix][i]!=' ')
                i--;
            else{
                t_plateau[choix][i]=c;
                place=true;
            }
        }
    }
    int choixcolonne()
    {
        int chx
        do {
            cout<<endl<<"entrez le numero de colonne entre 1 et 7: ";
            cin>>chx;
            chx--;
            if(chx>7) {
                cout<<"il faut saisir un nombre inferieur ou égal a 7";
                cout<<endl;
            }
            else if (chx<0) {
                cout<<"il faut saisir un nombre superieur ou égal à 1";
                cout<<endl;
            }
        }
        while ((chx <0) || (chx > 7));
        return chx;
    }
    bool colonnepleine(const t_plateau &pleine)
    {
        int q,c;
        for (q = 0; q<L_MAX; q++) {
            for (c = 0; c<C_MAX; c++) {
                if(pleine[q][c] == VIDE) {
                    return false;
                }
                else {
                    cout<<"la colonne est pleine";
                }
            }
        }
    }
    /*bool lignegagnante(const t_plateau&gagne, int joueur, int compteur)
    {
        int i,j;
        int compteur=0 ;
        for (i = 0; i<L_MAX; i++) {
            for (j = 0; j<C_MAX; j++) {
                if(gagne[i][j] == VIDE) {
                    return false;
                }
                else {
                    if(gagne[i>=3][j<C_MAX]&& compte[i-1][j+1]>=4) ||        //diagonale vers le haurt droit
                      (gagne[i][j<C_MAX]&& compte[i][j+1]>=4) ||              //horizontal vers la droite
                      (gagne[i<L_MAX][j<C_MAX]&& compte[i+1][j+1]>=4) ||        //diagonale vers le bas droite
                      (gagne[i<L_MAX][j]&& compte[i-1][j]>=4)                   //vertical vers le bas
                        return true;
                }
            }
        }
    }
    */
    int main()
    {
        t_plateau jeu;
        int joueur = JAUNE, col;
        srand(time(NULL));
        initialise(jeu);
        do {
            changerjoueur(joueur);
            affiche(jeu);
            col = choixcolonne();
            placerpion(jeu, col, joueur);
            colonnepleine(jeu);
        }
        while (jeu[L_MAX-1][C_MAX-1] == VIDE);
        return 0;
    }
    bonjour, voila, je dois créer un jeu puissance 4.
    étant vers la fin, cela fais 4h que je suis sur un problème que n'ai jamais eu...pouvez-vous m'aider ?
    "
    if (t_plateau[choix][i]!=' ')
                i--;
            else{
                t_plateau[choix][i]=c;
                place=true;
    "
    c'est à ce moment là...
    • Partager sur Facebook
    • Partager sur Twitter
      15 janvier 2020 à 22:01:02

      Bonsoir,

      Pour que sa soit plus lisible corrige cela en écrivent votre texte  dans </> en choisissent bien c++. Merci.

      -
      Edité par BloodEye 15 janvier 2020 à 22:01:27

      • Partager sur Facebook
      • Partager sur Twitter
        15 janvier 2020 à 22:04:01

        #include <iostream>
        #include <clocale>
        #include <ctime>
        #include <cstdio>
        #include <cstdlib>
        #include <windows.h>
        #include <fstream>
        #include <math.h>
        #include <string>
        using namespace std;
        const int L_MAX = 6;
        const int C_MAX = 7;
        const int VIDE = 0;
        const int JAUNE = 1;
        const int ROUGE = 2;
        typedef int t_plateau[L_MAX][C_MAX];
        void initialise(t_plateau &init)
        {
            int l, c;
            for (l = 0; l<L_MAX; l++) {
                for (c = 0; c<C_MAX; c++) {
                    init[l][c] = VIDE;
                }
            }
        }
        /*void affiche(t_plateau aff, int joueur)
        {
            int i, j;
            for (i = 0; i<L_MAX; i++) {
                for (j = 0; j<C_MAX; j++) {
                    switch (aff[i][j]) {
                    case VIDE:
                        cout << ' ';
                        break;
                    case JAUNE:
                        cout << 'X';
                        break;
                    case ROUGE:
                        cout << 'O';
                        break;
                    }
                    cout << '|';
                }
                cout << endl;
            }
        }*/
        void affiche(t_plateau plateau)
        {
            int l, c;
            system("cls");
            for (l=0; l<L_MAX; l++) {
                cout<<"+";
                for (c=0; c<C_MAX; c++) {
                    cout<<"---+";
                }
                cout<<endl;
                for (c=0; c<C_MAX; c++) {
                    cout << "| "<<plateau[l][c]<<" ";
                }
                cout<<"|"<<endl;
            }
            cout<<"+";
            for (c=0; c<C_MAX; c++) {
                cout<<"---+";
                }
                cout<<endl<<"0   1   2   3   4    5    6";
        }
        float changerjoueur(int joueur)
        {
            if(joueur == '1') {
                joueur = '2';
            }
            else {
                joueur = '1';
            }
            return (joueur);
        }
        /*void placerpion(t_plateau &pion, int choix, int j)
        {
            int i = 0;
            bool place=true;
            while((pion[i][choix]== VIDE) && i < L_MAX){
                i++;
            pion[i-1][choix] = j;
        }
            if(i==-1 || i)
                */
        void placerpion(int choix, char c){
            int i = L_MAX;
            bool place=false;
         while(place!=true){
                if (i==-1 || choix < 0 || choix > 6){
                    cout << "entrez un autre numero\n";
                    cin >> choix;
                    i = L_MAX;
                }
                if (t_plateau[choix][i]!=' ')
                    i--;
                else{
                    t_plateau[choix][i]=c;
                    place=true;
                }
            }
        }
        int choixcolonne()
        {
            int chx
            do {
                cout<<endl<<"entrez le numero de colonne entre 1 et 7: ";
                cin>>chx;
                chx--;
                if(chx>7) {
                    cout<<"il faut saisir un nombre inferieur ou égal a 7";
                    cout<<endl;
                }
                else if (chx<0) {
                    cout<<"il faut saisir un nombre superieur ou égal à 1";
                    cout<<endl;
                }
            }
            while ((chx <0) || (chx > 7));
            return chx;
        }
        bool colonnepleine(const t_plateau &pleine)
        {
            int q,c;
            for (q = 0; q<L_MAX; q++) {
                for (c = 0; c<C_MAX; c++) {
                    if(pleine[q][c] == VIDE) {
                        return false;
                    }
                    else {
                        cout<<"la colonne est pleine";
                    }
                }
            }
        }
        /*bool lignegagnante(const t_plateau&gagne, int joueur, int compteur)
        {
            int i,j;
            int compteur=0 ;
            for (i = 0; i<L_MAX; i++) {
                for (j = 0; j<C_MAX; j++) {
                    if(gagne[i][j] == VIDE) {
                        return false;
                    }
                    else {
                        if(gagne[i>=3][j<C_MAX]&& compte[i-1][j+1]>=4) ||        //diagonale vers le haurt droit
                          (gagne[i][j<C_MAX]&& compte[i][j+1]>=4) ||              //horizontal vers la droite
                          (gagne[i<L_MAX][j<C_MAX]&& compte[i+1][j+1]>=4) ||        //diagonale vers le bas droite
                          (gagne[i<L_MAX][j]&& compte[i-1][j]>=4)                   //vertical vers le bas
                            return true;
                    }
                }
            }
        }
        */
        int main()
        {
            t_plateau jeu;
            int joueur = JAUNE, col;
            srand(time(NULL));
            initialise(jeu);
            do {
                changerjoueur(joueur);
                affiche(jeu);
                col = choixcolonne();
                placerpion(jeu, col, joueur);
                colonnepleine(jeu);
            }
            while (jeu[L_MAX-1][C_MAX-1] == VIDE);
            return 0;
        }
        • Partager sur Facebook
        • Partager sur Twitter
          16 janvier 2020 à 11:52:34

          En ligne 16, le t de "t_plateau", c'est pour quoi ?

          Code très alambiqué avec cet horrible tableau C à 2 dimensions des enfers.

          Le compilateur se plaint ligne 97 car vous cherchez à lire le contenu d'un type (WTF ?) pourtant vous n'avez pas oublié de passer cet horrible tableau à la fonction "colonnepleine", "lignegagnante", "initialise" ou encore "affiche" alors pourquoi "placerpion" n'y a pas doit ?

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            16 janvier 2020 à 13:31:52

            Bonjour,

            l'erreur serait due à un caractère non compris. Peut-être l'apostrophe ` au lieu d'une apostrophe '. Peut-être un caractère invisible? Ré-écris entièrement la ligne qui pose le problème.

            Il y a aussi de nombreuses autres erreurs dont la plupart seront signalées sous forme d'erreur ou de warning (un point-virgule qui manque, une fonction qui oublie de retourner un résultat, des résultats de fonction non récupérés, des données incohérentes, ...)

            • Partager sur Facebook
            • Partager sur Twitter

            En recherche d'emploi.

              17 janvier 2020 à 15:18:17

              Y'a beaucoup de C dans un programme C++.....o_O

              Essaie de nous envoyer ton log d'erreurs stp.

              A ta ligne 16 tu ecris

              typedef int t_plateau[L_MAX][C_MAX];

              tu voulais pas plutot dire ???:-°

              typedef int[L_MAX][C_MAX] t_plateau;




              -
              Edité par Asmitta 17 janvier 2020 à 15:26:10

              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                17 janvier 2020 à 16:38:55

                Je vous trouve bien gentils d'aider quelqu'un qui ne se donne ni la peine de dire "Bonjour", ni d'expliquer son souci, ni de dire quoique ce soit tout court. Juste un copier/coller de code comme on lance un os à un chien.

                Même le code n'est pas commenté. Perso, du code non commenté c'est poubelle et je lis même pas.

                M'est avis que si solution vous donnez, pas un mot de remerciement ne vous sera adressé...

                • Partager sur Facebook
                • Partager sur Twitter

                expected primary-expression before ‘ ’ token 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