viGnoS ..tu n'auras pas mes impôts ! | Je taffe en ce moment sur un projet de puissance4 en c++.
il me fait une erreur bizzarre à la compilation :
Empty caracter constant (constante caractere vide)
ligne 232, caractere 9...
source:
Code :
- #include <iostream>
- #include <string>
- #include "ansi.h"
- #include "baba.h"
- using namespace std;
- // variables globales
- int mode1=1; // 1: 1vs1 2: 1vsCPU
- int tour; // 1: Joueur_1 2: Joueur_2 / IA
- int Nb_manches; // Nombre de manches
- int rejouer=1;
- string nomJ1, nomJ2;
- int Score1, Score2;
- int grille[6][7];
- bool puissance4;
- void init_grille()
- {
- for (int a=0;a<6;a++)
- for (int b=0;b<7;b++)
- grille[a][b]=0;
- }
- void affiche()
- {
- clrscr();
- gotoXY(4,4);
- cout<<" 1234567 ";
- for(int a=0;a<6;a++)
- {
- gotoXY(4,a+5);
- cout<<"| ";
- for (int b=0;b<7;b++)
- {
- if (grille[a][b]==0)
- cout<<" ";
- if (grille[a][b]==1)
- cout<<"X";
- if (grille[a][b]==2)
- cout<<"O";
- }
- cout<<" |";
- }
- cout<<"\n -----------\n";
- cout<<" 1234567\n\n";
- if(tour==1)
- cout<<"Joueur 1 : "<<nomJ1<<endl;
- else
- {
- if(mode1==1) cout<<"Joueur 2 : "<<nomJ2<<endl;
- else cout<<"Joueur 2 (CPU)\n"; //ne s'affiche pas visiblement ..
- }
- cout<<"Score : "<<Score1<<"-"<<Score2<<"\n";
- cout<<"Manche "<<Nb_manches-rejouer+1<<"/"<<Nb_manches<<"\n";
- }
- bool test4(int a, int b, int c, int d)
- {
- return ((grille[a+2*c][b+2*d]==tour)&&(grille[a+3*c][b+3*d]==tour));
- }
- bool Puissance4()
- {
- puissance4=0;
- for (int a=0;a<=7;a++)
- {
- for (int b=0;b<=6;b++) // parcours de la grille
- {
- if (grille[a][b]!=tour){}
- else
- {
- int c=-1,d=0;
-
- if (grille[a][b]==grille[a+c][b+d]) puissance4+=test4(a,b,c,d);
- d=1;
- if (grille[a][b]==grille[a+c][b+d]) puissance4+=test4(a,b,c,d);
- c=0;
- if (grille[a][b]==grille[a+c][b+d]) puissance4+=test4(a,b,c,d);
- c=1;
- if (grille[a][b]==grille[a+c][b+d]) puissance4+=test4(a,b,c,d);
- d=0;
- if (grille[a][b]==grille[a+c][b+d]) puissance4+=test4(a,b,c,d);
- d=-1;
- if (grille[a][b]==grille[a+c][b+d]) puissance4+=test4(a,b,c,d);
- c=0;
- if (grille[a][b]==grille[a+c][b+d]) puissance4+=test4(a,b,c,d);
- c=-1;
- if (grille[a][b]==grille[a+c][b+d]) puissance4+=test4(a,b,c,d);
- }
- }
- }
- return (puissance4!=0);
- }
- bool grille_pleine()
- {
- int b=0;
- for(int a=0;a<7;a++)
- {
- if(grille[0][a]!=0)
- b++;
- }
- if (b>6) return 1;
- else return 0;
- }
- float evaluation(int x)
- {
- float eval=rand()%9+1;
- if (grille[0][x]!=0) eval=0;
- return eval;
-
- }
- int IA()
- {
- int choix, i;
- float coef_colonne[7];
- for (i=0;i<7;i++)
- coef_colonne[i]=evaluation(i);
-
- int rang;
- float max=0;
- for(i=0;i<7;i++)
- if (coef_colonne[i]>=max)
- {
- rang=i;
- max=coef_colonne[i];
- }
- int nbmax=0;
- for(i=0;i<=rang;i++)
- if(coef_colonne[i]==max) nbmax++;
- int a=0;
- int alea=rand()%nbmax+1;
- for(i=0;i<7;i++)
- {
- if (coef_colonne[i]==max) a++;
- if (a==alea) choix=i;
- }
- return choix;
- }
- int choix()
- {
- int choix;
- if ((tour==2)&&(mode1==2)) choix=IA();
- else
- {
- cout<<"Quelle colonne choisissez vous ? [1-7]\n >";
- cin>>choix;
- while ((choix<1)||(choix>7)){
- cout<<"entre 1 et 7 !!!\n >";
- cin>>choix;
- };
- }
- return choix;
- }
- void anim(int colonne)
- {
- colonne--;
- int mini=0;
- while((grille[mini+1][colonne]==0)&&(mini<5)) mini++;
- grille[mini][colonne]=tour;
- /*
- gotoxy(1,20);
- for(int a=0;a<6;a++)
- {
- for(int b=0;b<7;b++)
- {
- cout<<grille[a][b];
- }
- cout<<"\n";
- }
- system("pause" );
- */
- gotoXY(colonne+5,mini+5);
- if(tour==1) cout<<"X";
- if(tour==2) cout<<"O";
- /*
- for(int ligne=5;ligne<11+mini;ligne++)
- {
- gotoxy(colonne,ligne);
- (tour==1)?cout<<"X":cout<<"O";
- gotoxy(colonne,ligne-1);
- cout<<" ";
- }
- */
- }
- /*********************************************************************/
- int main()
- {
- srand (time(0));
- mode1=1;
-
- while (mode1==1||mode1==2)
- {
- clrscr();
- Score1=0;Score2=0;
- cout<<"\n *** PUISSANCE 4 ***\n\n\n";
- cout<<"Menu Principal\n";
- cout<<" 1: 1vs1\n 2: 1vsCPU\n 3: Exit\n >";
- cin>>mode1;
- if (mode1!=3)
- {
- cout<<"\n Nom du joueur 1 :";
- cin>>nomJ1;
- nomJ2='';
- if (mode1==1) // c'est la ligne de l'erreur !!!!!!!!!!!!!!
- {
- cout<<"\n Nom du joueur 2 :";
- cin>>nomJ2;
- }
- cout<<"\n Combien de manches ?";
- cin>>rejouer;
- Nb_manches=rejouer;
- while (rejouer>=1)
- {
- init_grille();
- //Quel joueur commence ?
- tour=rand()%2+1;
- if (tour) cout<<"C'est le joueur 1 qui commence !\n";
- else cout<<"C'est le joueur 2 qui commence !\n";
- affiche();
- // Boucle principale du programme
- do
- {
- anim(choix());
-
- tour++;
- if(tour>2) tour=1;
- affiche();
- }
- while( !(Puissance4()||grille_pleine()) );
- rejouer--;
- }
- if (Puissance4())
- {
- cout<<"Puissance 4 !!!\n";
- (tour==1)?cout<<"Joueur 1 "<<nomJ1<<" gagne\n":cout<<"Joueur 2 "<<nomJ2<<" gagne\n";
- (tour==1)?Score1++:Score2++;
- }
-
- if (grille_pleine()) cout<<"grille pleine :/\n\n GAME OVER";
- }
- }
- system("pause" );
- }
|
merci de votre soutient, je galere depuis une semaine sur cette erreur...  ---------------
P@F deathlist
|