Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4818 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Puissance4 > "Empty caracter constant"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Puissance4 > "Empty caracter constant"

n°574927
viGnoS
..tu n'auras pas mes impôts !
Posté le 24-11-2003 à 17:56:53  profilanswer
 

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 :
  1. #include <iostream>
  2. #include <string>
  3. #include "ansi.h"
  4. #include "baba.h"
  5. using namespace std;
  6. // variables globales
  7. int mode1=1;       // 1: 1vs1 2: 1vsCPU
  8. int tour;       // 1: Joueur_1 2: Joueur_2 / IA
  9. int Nb_manches; // Nombre de manches
  10. int rejouer=1;
  11. string  nomJ1, nomJ2;
  12. int Score1, Score2;
  13. int grille[6][7];
  14. bool puissance4;
  15. void init_grille()
  16. {
  17.   for (int a=0;a<6;a++)
  18.     for (int b=0;b<7;b++)
  19.       grille[a][b]=0;
  20. }
  21. void affiche()
  22. {
  23.   clrscr();
  24.   gotoXY(4,4);
  25.   cout<<"  1234567 ";
  26.   for(int a=0;a<6;a++)
  27.     {
  28.       gotoXY(4,a+5);
  29.       cout<<"| ";
  30.       for (int b=0;b<7;b++)
  31.          {
  32.       if (grille[a][b]==0)
  33. cout<<" ";
  34.       if (grille[a][b]==1)
  35. cout<<"X";
  36.       if (grille[a][b]==2)
  37. cout<<"O";
  38.          }
  39.   cout<<" |";
  40.     }
  41.   cout<<"\n   -----------\n";
  42.   cout<<"     1234567\n\n";
  43.   if(tour==1)
  44.     cout<<"Joueur 1 : "<<nomJ1<<endl;
  45.   else
  46.     {
  47.       if(mode1==1) cout<<"Joueur 2 : "<<nomJ2<<endl;
  48.       else cout<<"Joueur 2 (CPU)\n"; //ne s'affiche pas visiblement ..
  49.     }
  50.   cout<<"Score : "<<Score1<<"-"<<Score2<<"\n";
  51.   cout<<"Manche "<<Nb_manches-rejouer+1<<"/"<<Nb_manches<<"\n";
  52. }
  53. bool test4(int a, int b, int c, int d)
  54. {
  55.   return ((grille[a+2*c][b+2*d]==tour)&&(grille[a+3*c][b+3*d]==tour));
  56. }
  57. bool Puissance4()
  58. {
  59.   puissance4=0;
  60.   for (int a=0;a<=7;a++)
  61.     {
  62.       for (int b=0;b<=6;b++) // parcours de la grille
  63. {
  64.   if (grille[a][b]!=tour){}
  65.   else
  66.     {
  67.       int c=-1,d=0;
  68.      
  69.       if (grille[a][b]==grille[a+c][b+d]) puissance4+=test4(a,b,c,d);
  70.       d=1;
  71.       if (grille[a][b]==grille[a+c][b+d]) puissance4+=test4(a,b,c,d);
  72.       c=0;
  73.       if (grille[a][b]==grille[a+c][b+d]) puissance4+=test4(a,b,c,d);
  74.       c=1;
  75.       if (grille[a][b]==grille[a+c][b+d]) puissance4+=test4(a,b,c,d);
  76.       d=0;
  77.       if (grille[a][b]==grille[a+c][b+d]) puissance4+=test4(a,b,c,d);
  78.       d=-1;
  79.       if (grille[a][b]==grille[a+c][b+d]) puissance4+=test4(a,b,c,d);
  80.       c=0;
  81.       if (grille[a][b]==grille[a+c][b+d]) puissance4+=test4(a,b,c,d);
  82.       c=-1;
  83.       if (grille[a][b]==grille[a+c][b+d]) puissance4+=test4(a,b,c,d);
  84.     }
  85. }
  86.   }
  87.   return (puissance4!=0);
  88. }
  89. bool grille_pleine()
  90. {
  91.   int b=0;
  92.   for(int a=0;a<7;a++)
  93.     {
  94.   if(grille[0][a]!=0)
  95.     b++;
  96.     }
  97.   if (b>6) return 1;
  98.   else return 0;
  99. }
  100. float evaluation(int x)
  101. {
  102.   float eval=rand()%9+1;
  103.   if (grille[0][x]!=0) eval=0;
  104.   return eval;
  105.  
  106. }
  107. int IA()
  108. {
  109.   int choix, i;
  110.   float coef_colonne[7];
  111.   for (i=0;i<7;i++)
  112.     coef_colonne[i]=evaluation(i);
  113.    
  114.   int rang;
  115.   float max=0;
  116.   for(i=0;i<7;i++)
  117.     if (coef_colonne[i]>=max)
  118.       {
  119.       rang=i;
  120.       max=coef_colonne[i];
  121.       }
  122.   int nbmax=0;
  123.   for(i=0;i<=rang;i++)
  124.     if(coef_colonne[i]==max) nbmax++;
  125.   int a=0;
  126.   int alea=rand()%nbmax+1;
  127.   for(i=0;i<7;i++)
  128.     {
  129.       if (coef_colonne[i]==max) a++;
  130.       if (a==alea) choix=i;
  131.     }
  132.   return choix;
  133. }
  134. int choix()
  135. {
  136.   int choix;
  137.   if ((tour==2)&&(mode1==2)) choix=IA();
  138.   else
  139.     {
  140.     cout<<"Quelle colonne choisissez vous ? [1-7]\n >";
  141.       cin>>choix;
  142.       while ((choix<1)||(choix>7)){
  143.       cout<<"entre 1 et 7 !!!\n >";
  144.       cin>>choix;
  145.       };
  146.     }
  147.   return choix;
  148. }
  149. void anim(int colonne)
  150. {
  151.   colonne--;
  152.   int mini=0;
  153.   while((grille[mini+1][colonne]==0)&&(mini<5)) mini++;
  154.   grille[mini][colonne]=tour;
  155. /*
  156. gotoxy(1,20);
  157. for(int a=0;a<6;a++)
  158. {
  159.     for(int b=0;b<7;b++)
  160.     {
  161.         cout<<grille[a][b];
  162.     }
  163.     cout<<"\n";
  164. }
  165. system("pause" );
  166. */
  167.     gotoXY(colonne+5,mini+5);
  168.     if(tour==1) cout<<"X";
  169.     if(tour==2) cout<<"O";
  170. /*
  171.   for(int ligne=5;ligne<11+mini;ligne++)
  172.     {
  173.       gotoxy(colonne,ligne);
  174.       (tour==1)?cout<<"X":cout<<"O";
  175.       gotoxy(colonne,ligne-1);
  176.       cout<<" ";
  177.     }
  178. */
  179. }
  180. /*********************************************************************/
  181. int main()
  182. {
  183.   srand (time(0));
  184.   mode1=1;
  185.  
  186.   while (mode1==1||mode1==2)
  187.     {
  188.     clrscr();
  189.     Score1=0;Score2=0;
  190.   cout<<"\n      *** PUISSANCE 4 ***\n\n\n";
  191.   cout<<"Menu Principal\n";
  192.   cout<<" 1: 1vs1\n 2: 1vsCPU\n 3: Exit\n >";
  193.   cin>>mode1;
  194.   if (mode1!=3)
  195.     {
  196.   cout<<"\n Nom du joueur 1 :";
  197.   cin>>nomJ1;
  198.   nomJ2='';
  199.   if (mode1==1) // c'est la ligne de l'erreur !!!!!!!!!!!!!!
  200.     {
  201.       cout<<"\n Nom du joueur 2 :";
  202.       cin>>nomJ2;
  203.     }
  204.   cout<<"\n Combien de manches ?";
  205.   cin>>rejouer;
  206.   Nb_manches=rejouer;
  207.   while (rejouer>=1)
  208.     {
  209.   init_grille();
  210.   //Quel joueur commence ?
  211.   tour=rand()%2+1;
  212.   if (tour) cout<<"C'est le joueur 1 qui commence !\n";
  213.   else cout<<"C'est le joueur 2 qui commence !\n";
  214.   affiche();
  215.   // Boucle principale du programme
  216.   do
  217.     {
  218.       anim(choix());
  219.      
  220.       tour++;
  221.       if(tour>2) tour=1;
  222.       affiche();
  223.     }
  224.   while( !(Puissance4()||grille_pleine()) );
  225.     rejouer--;
  226.     }
  227.   if (Puissance4())
  228.     {
  229.     cout<<"Puissance 4 !!!\n";
  230.     (tour==1)?cout<<"Joueur 1 "<<nomJ1<<" gagne\n":cout<<"Joueur 2 "<<nomJ2<<" gagne\n";
  231.     (tour==1)?Score1++:Score2++;
  232.     }
  233.  
  234.   if (grille_pleine()) cout<<"grille pleine :/\n\n  GAME OVER";
  235.   }
  236.   }
  237.   system("pause" );
  238. }


 
merci de votre soutient, je galere depuis une semaine sur cette erreur... :(


---------------
P@F deathlist
mood
Publicité
Posté le 24-11-2003 à 17:56:53  profilanswer
 

n°574935
Moktar1er
No one replies...
Posté le 24-11-2003 à 18:01:16  profilanswer
 

ce n'est pas la ligne que tu indiques qui pose problème, mais la ligne du dessus --> nomJ2='' <--

n°574936
Taz
bisounours-codeur
Posté le 24-11-2003 à 18:02:08  profilanswer
 

y a pas a dire le C++ bien programmé, c'est proporcpropre et limpide


Message édité par Taz le 24-11-2003 à 18:02:27
n°574938
R3g
fonctionnaire certifié ITIL
Posté le 24-11-2003 à 18:02:54  profilanswer
 

Sinon tu savais que C++ est un langage objet ?


---------------
Au royaume des sourds, les borgnes sont sourds.
n°574939
Taz
bisounours-codeur
Posté le 24-11-2003 à 18:04:31  profilanswer
 

bool
 
      if (b>6) return 1;
        else return 0;
 
 
moi je dit fortune là

n°574941
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 24-11-2003 à 18:05:33  profilanswer
 

Taz a écrit :

bool
 
      if (b>6) return 1;
        else return 0;
 
 
moi je dit fortune là
 


mon stagiaire :love:

n°574943
chrisbk
-
Posté le 24-11-2003 à 18:06:22  profilanswer
 

tiens c'est du C++ ca ? :D

n°574944
R3g
fonctionnaire certifié ITIL
Posté le 24-11-2003 à 18:06:35  profilanswer
 

Taz a écrit :

bool
 
      if (b>6) return 1;
        else return 0;
 
 
moi je dit fortune là
 

Il aurait du ecrire

Code :
  1. if (b>6) return (bool)1;
  2.         else return (bool)0;



---------------
Au royaume des sourds, les borgnes sont sourds.
n°574946
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 24-11-2003 à 18:07:49  profilanswer
 

R3g a écrit :

Il aurait du ecrire

Code :
  1. if (b>6) return (bool)1;
  2.         else return (bool)0;


 


euh, tu trolles j'espère ?
 

Code :
  1. if (b>6) return true;
  2.         else return false;

n°574949
chrisbk
-
Posté le 24-11-2003 à 18:08:36  profilanswer
 

Harkonnen a écrit :


euh, tu trolles j'espère ?


 
Puissant sens de la deduction hein ?

mood
Publicité
Posté le 24-11-2003 à 18:08:36  profilanswer
 

n°574951
R3g
fonctionnaire certifié ITIL
Posté le 24-11-2003 à 18:09:40  profilanswer
 

Harkonnen a écrit :


euh, tu trolles j'espère ?
 

Code :
  1. if (b>6) return true;
  2.         else return false;



:sweat: Comment il m'a pris pour un con là ! tu m'as trop cassé sa race quoi ! :D


---------------
Au royaume des sourds, les borgnes sont sourds.
n°574953
chrisbk
-
Posté le 24-11-2003 à 18:10:39  profilanswer
 

R3g a écrit :

:sweat: Comment il m'a pris pour un con là ! tu m'as trop cassé sa race quoi ! :D


 
une lecon de C++ [:aloy]

n°574966
Taz
bisounours-codeur
Posté le 24-11-2003 à 18:23:00  profilanswer
 

euh harko, quand tu fais des blages avec du code faut que tu mettes un petit symbol (*) par ce que ça fait peur sinon

n°575364
blackgodde​ss
vive le troll !
Posté le 25-11-2003 à 09:21:54  profilanswer
 

et pourquoi pas plutot return (b>6); ?


---------------
-( BlackGoddess )-
n°575429
Vinx
Posté le 25-11-2003 à 10:42:46  profilanswer
 

BlackGoddess a écrit :

et pourquoi pas plutot return (b>6); ?


 
Yep, c'est ce que j'aurais écrit

n°575434
chrisbk
-
Posté le 25-11-2003 à 10:43:51  profilanswer
 

j'aime pas, c'est moche je trouve

n°575438
Kristoph
Posté le 25-11-2003 à 10:46:26  profilanswer
 

chrisbk a écrit :

j'aime pas, c'est moche je trouve


 
Moi je prefere nettement ça. C'est plus clair et ça limite grandement les risques d'erreur.

n°575444
Vinx
Posté le 25-11-2003 à 10:49:58  profilanswer
 

Sinon:
if (b>6) return true;
return false;
 
Il se peut que le compilateur retourne un warning parce que la fonction ne retourne pas un booléen dans tous les cas avec le coup du if () return ... else return ...


Message édité par Vinx le 25-11-2003 à 10:50:18
n°575537
Taz
bisounours-codeur
Posté le 25-11-2003 à 11:58:57  profilanswer
 

bande de boolay
 
return b>6 ;
 
:o

n°575538
chrisbk
-
Posté le 25-11-2003 à 12:01:02  profilanswer
 

Taz a écrit :

bande de boolay
 
return b>6 ;
 
:o


 
genre apprends a lire [:udok]

n°575555
El_gringo
Posté le 25-11-2003 à 12:17:05  profilanswer
 

Pas-sio-nant ce débat ! [:thraell]


---------------
Les Vers Solitaires, on aime ... ou pas !
n°579987
viGnoS
..tu n'auras pas mes impôts !
Posté le 01-12-2003 à 08:31:51  profilanswer
 

j'ai trouvé la solution sans vous en fait ... :D


---------------
P@F deathlist
n°584734
ronaldozeb​est
faites-y gaffe !
Posté le 07-12-2003 à 12:02:36  profilanswer
 

tiens ça ressemble un peu au projet de notre chère madame anglade :D
 
Je te pique ton IA :p
 

n°592001
viGnoS
..tu n'auras pas mes impôts !
Posté le 16-12-2003 à 16:44:49  profilanswer
 

mon IA est bidon, c'est juste un choix aléatoire :D


---------------
P@F deathlist
n°592393
ronaldozeb​est
faites-y gaffe !
Posté le 17-12-2003 à 12:17:40  profilanswer
 

Ouais j'avais pas regardé :D

n°592517
Mr yvele
yvele n'est plus.
Posté le 17-12-2003 à 14:36:47  profilanswer
 

Harkonnen a écrit :


euh, tu trolles j'espère ?
 

Code :
  1. if (b>6) return true;
  2.         else return false;




 
 
return (!(b>6))?false:true;
 
[:petrus75]


Message édité par Mr yvele le 17-12-2003 à 14:47:10
n°592526
jagstang
Pa Capona ಠ_ಠ
Posté le 17-12-2003 à 14:44:40  profilanswer
 

supair. ce topic (du début à la fin) est assez minable

n°594840
viGnoS
..tu n'auras pas mes impôts !
Posté le 20-12-2003 à 16:03:21  profilanswer
 

merci du compliment :)


---------------
P@F deathlist
n°594865
Taz
bisounours-codeur
Posté le 20-12-2003 à 16:59:15  profilanswer
 

oh du C :ouch:
vire les cout et c'est gagné

n°595013
red factio​n
Posté le 21-12-2003 à 01:39:23  profilanswer
 

lamentable  :o

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Puissance4 > "Empty caracter constant"

 

Sujets relatifs
zéro et empty... même réponse....[Compil] numeric constant contains digit beyond the radix ?
[ PHP ] Notice: Use of undefined constant nom - assumed 'nom'[ADA] convertir un caracter en hexa ??
[PHP] Problème de REG_EMPTY[C]Insérer la valeur d'une variable au milieu d'une chaine de caracter
fixer un nombre constant de fps dans un jeu en C... 
Plus de sujets relatifs à : Puissance4 > "Empty caracter constant"


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)