60

./57> Je croyais que tu avais viré l'espace entre test et diagonale ?? #trou_de_balle#
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

61

j'l'ai vire l'espace voila
int test_diagonale_nord_est()
{
int puissance;
for(i=0;i<taille-3;i++)
{  for(j=0;j<taille-3;j++)
      if((matrice[i][j]==matrice[i+1][j+1])&&(matrice[i+1][j+1]==matrice[i+2][j+2])
        &&(matrice[i+2][j+2]==matrice[i+3][j+3]))    /*return(4); */
	  {
		  puissance=4;
	  }

}                       	
return(puissance);

}


et ca ne change rien c toujours la meme erreur

62

Quelle est l'erreur précisément ?
C'est du C ou du C++ ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

63

Pas étonnant que ça ne compile pas, il n'a déclaré aucune variable! roll
$ gcc -S -Os -Wall -W test_diagonale_nord_est.c 
test_diagonale_nord_est.c: In function `test_diagonale_nord_est':
test_diagonale_nord_est.c:4: `i' undeclared (first use in this function)
test_diagonale_nord_est.c:4: (Each undeclared identifier is reported only once
test_diagonale_nord_est.c:4: for each function it appears in.)
test_diagonale_nord_est.c:4: `taille' undeclared (first use in this function)
test_diagonale_nord_est.c:5: `j' undeclared (first use in this function)
test_diagonale_nord_est.c:6: `matrice' undeclared (first use in this function)
test_diagonale_nord_est.c:15: parse error at end of input
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

64

NON c du C
et dsl kevin j'ai tout declare en variable globale t'as qu'a voir mon code
j'ai mis int matrice[10][10]
et moi quand ca compile y a qu'une seule erreur serieux eek

65

test_diagonale_nord_est.c:15: parse error at end of inputEvidemment; quoi que tu fasses, cette erreur ne va pas disparaître. Je n'ai pas testé chez moi mais cette erreur signifie que tu as oublié une accolade fermante }...
[Edit]: Pourtant si je regarde la routine, le compte des accolades a l'air d'y être... Tu ne te serais pas trompé Kevin? hum
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

66

Slim> Et c'est quoi cette erreur ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

67

l'erreur est la suivante int test_diagonale_nord_est()
c cette ligne et le message de l'erreur est :declaration syntax error

68

lolpaf et ça te rappelle pas qqch cette erreur ? gol

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

69

tsss non du moment ou j'ai defini matrice[10][10] en globale vca revient o meme de dire
int test_diagonale_nord_est(matrice[10][10])
ou int test_diagonale_nord_est()

70

Non.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

71

pourquoi non ?

72

Ce n'est pas la même chose d'écrire une fonction qui prend un argument et une fonction qui n'en prend pas.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

73

ok mais ca change rien a l'erreur meme avec l'entete suivante :
int test_diagonale_nord_est(int matrice[10][10])
c la toujours la meme erreur
matrice[10][10] c en memetemps le parametre formel et le parametre effectif et la definir en globale ne change rien au cas ou l'entete est com ci dessus

74

C'est bête de passer en paramètre une variable globale, et c'est le meilleur moyen de s'emmêler les pinceaux.
Laisse ta fonction sans argument.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

75

ok mais l'erreur me prend la tete franchement
sinon pour l'IA sauve qui peut
y aurai personne qui aurait l'ombre d'une idee?
merci

76

Regarde celui de la tict (ticon45), il doit être open source.
Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici

77

j'i rien trouve pouvez vous le poster ici merci

78

*le but du jeu puissance 4 est d'afficher 4 pions verticalement */
/*horizontalement ou diagonalement*/
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#include<alloc.h>
int matrice[10][10];
# define taille 10
int tour_joueur;
int x;
int y;
int r;
int i;
int j;
int puissance;
int joueur;
int x1,y1,x2,y2;

/**********************************************************************************/

void affichage (int x1,int y1,int x2)
/*specif:affichage de l'aire de jeu:grille 10*10*/
{ int j,m;
  int i,k;
  m=0;
  k=0;
for(j=0;j<taille;j=j+1)
{line(x1,y1+m,x2,y1+m);
  m=m+40;
}
                            
for(i=0;i<taille;i=i+1)
  {line(x1+k,y1,x1+k,y2);
   k=k+40;
  }
}
/***********************************************************************************/
/*m---->nombre de lignes */     /*n-->nombre d colonnes*/
void init(int i,int j)
/*initialisation a vide la matrice*/
{ for(i=0;i<10;i++)/*i=0--->matrice[0][j] cases 1ere ligne */
       for(j=0;j<10;j++)
	   {matrice[i][j]==0;}
}
/************************************************************************************/
void pion( int x,int y,int r)
/*specif:cette procedure dessine le jeton et le place dans la colonne correspondante tant qu'elle est pas remplie */
{
  int i,ligne;
  int col;
  i=taille-1;            /******************i=9**********/
  do {
	clrscr();
	printf("choisir la colonne");
	scanf("%d",&col);
 }
 while((col<0)&&(col>taille));
 while (matrice[i][j]!=0)
 {
  i--;
 }
  ligne=i;
  if(joueur==1)
  {	  matrice[i][j]=2;
	  setcolor(0);
      circle(x+(col*20),y+(ligne*20),r);/*on place le jeton dans la premiere case vide de la colonne choisie*/
  }
  else { matrice[i][j]=1;
	     setcolor(15);
         circle(x+(col*20),y+(ligne*20),r);
		}



}
/**********************************************************************************/
int test_vertical()
/*specif:matrice[i][j]==1-->coup du joueur 1 sinon matrice[i][j]=2 alors coup du joueur 2(pc)*/
/*specif:teste s'il ya 4 pions alignes 
{
int puissance;
for(i=0;i<=taille-3;i++)
  for(j=0;j<=taille-1;j++)
  {  if ((matrice[i][j]==matrice[i+1][j]) &&( matrice[i+1][j]==matrice[i+2][j])
          && (matrice[i+2][j]==matrice[i+3][j]))
      {
	     puissance=4;
      }                       /*puissance 4*/
   
  }
return(puissance);

}

/************************************************************************************/
int test_diagonale_nord_est()
{
int puissance;
for(i=0;i<taille-3;i++)
{  for(j=0;j<taille-3;j++)
      if((matrice[i][j]==matrice[i+1][j+1])&&(matrice[i+1][j+1]==matrice[i+2][j+2])
        &&(matrice[i+2][j+2]==matrice[i+3][j+3]))    /*return(4); */
	  {
		  puissance=4;
	  }

}                       	  /*else puissance=0;*/
return(puissance);

}

/***********************************************************************************/
int test_diagonale_sud_est()
{
int puissance;
for(i=taille-1;i>=3 ;i--)
   for(j=0;j<taille-3;j++)
	   if((matrice[i][j]==matrice[i-1][j+1])&&(matrice[i-1][j+1]==matrice[i-2][j+2])
		   &&(matrice[i-2][j+2]==matrice[i-3][j+3])) /*return(4);*/
	   { puissance=4;}
	   else puissance=0;
return(puissance);

}
/***********************************************************************************/
int test_horizontal()
{
int puissance;
for(i=0;i<=taille-1;i++)
{  for(j=0;j<=3;j++)
     if ((matrice[i][j]==matrice[i][j+1])&&(matrice[i][j+1]==matrice[i][j+2])
		 &&(matrice[i][j+2]==matrice[i][j+3]))
	 {
		 puissance=4;
	 }
	else puissance=0;

}
return(puissance);

}
/***********************************************************************************/
int remplie(int matrice[10][10])
{ int i,j;
 int remplie;
for(i=0;i<=taille-1;i++)
{  for(j=0;j<taille-1;j++)
{    if(matrice[i][j]!=0)
{      remplie=remplie+1;
	/*remplie==0;*/

}
}
return(remplie);
}
/****************************************************************************************/
main()
{
int x1,y1,x2,y2;
int pilote,mode;
clrscr();                    /*efface l'ecran*/
x1=100;
y1=50;
x2=500;
y2=450;
r=20;
detectgraph(&pilote,&mode);
initgraph(&pilote,&mode,"i:\tc");
rectangle(x1,y1,x2,y2);
affichage(x1,y1,x2,y2);
setbkcolor(1);                      /*bleu comme couleur de fond d'ecran*/

init(i,j);
do
{ clrscr();/*efface l'ecran*/
 do
{
  pion(x,y,r);                                       /***************clrscr();***************/
  joueur=joueur-3;/*alterner les joueurs*/
                                                                 /*coup joueur();*/
  test_vertical();
  test_diagonale_sud_est();
  test_horizontal();
  test_diagonale_nord_est();
}
 while (puissance!=4)
closegraph();/*clrscr()*/
printf("%d",joueur);          
}
while ((remplie(matrice[10][10])==0));
                           /**********printf("le joueur %d a gagne\n",joueur");*********/
                            /*if(remplie==1)&&(joueur_gagnant!=1)&&(joueur gagnant!=2)*****/
closegraph();/*clrscr();*/
printf("match nul");
getch();

}

79

Voilà ton problème:
p4.c:86:32: warning: "/*" within comment
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

80

Il manque le */ à la fin de /*specif:teste s'il ya 4 pions alignes.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

81

Kevin, il fallait pas te faire chier à le compiler et lui dire, il fallait lui demander de te dire quel message il obtenait neutral

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

82

Il l'a déjà dit (declaration syntax error). Donc j'ai compilé avec GCC qui m'a donné un message d'erreur nettement plus utile que celui de M$VC.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

83

 int test_vertical() 
 /*specif:matrice[i][j]==1-->coup du joueur 1 sinon matrice[i][j]=2 alors coup du joueur 2(pc)*/ 
 /* specif:teste s'il ya 4 pions alignes  

   ...blablabla...
                                 puissance 4*/ 
     
   } 
 return(puissance); 
  
 } 

Tu n'as pas remarqué que l'éditeur interprétait ce qui est entre /* et */ comme un grand commentaire ?
/*************************************************/ 
 main() 
 { 

Et là, il manque pas quelque chose juste avant main() ?
do 
 { 
   pion(x,y,r);                                       
   joueur=joueur-3;/*alterner les joueurs*/ 
                                                                   
   test_vertical(); 
   test_diagonale_sud_est(); 
   test_horizontal(); 
   test_diagonale_nord_est(); 
 } 
  while (puissance!=4) 
 closegraph();

Il manque pas quelque chose juste après while (puissance!=4) ?
while ((remplie(matrice[10][10])==0));
Ca ne fait rien, ça wink tu n'aurais pas voulu faire un do... while ? dans ce cas, il manque le do au-dessus du bloc.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

84

Albert Instinct :
 int test_vertical() 
 /*specif:matrice[i][j]==1-->coup du joueur 1 sinon matrice[i][j]=2 alors coup du joueur 2(pc)*/ 
 /* specif:teste s'il ya 4 pions alignes  

   ...blablabla...
                                 puissance 4*/ 
     
   } 
 return(puissance); 
  
 } 
Tu n'as pas remarqué que l'éditeur interprétait ce qui est entre /* et */ comme un grand commentaire ?

Déjá dit. tongue
/*************************************************/ 
 main() 
 { 

Et là, il manque pas quelque chose juste avant main() ?

Non, c'est du C90 valide (implicit int).
do 
 { 
   pion(x,y,r);                                       
   joueur=joueur-3;/*alterner les joueurs*/ 
                                                                   
   test_vertical(); 
   test_diagonale_sud_est(); 
   test_horizontal(); 
   test_diagonale_nord_est(); 
 } 
  while (puissance!=4) 
 closegraph();

Il manque pas quelque chose juste après while (puissance!=4) ?

Bien trouvé. smile
while ((remplie(matrice[10][10])==0));
Ca ne fait rien, ça wink tu n'aurais pas voulu faire un do... while ? dans ce cas, il manque le do au-dessus du bloc.

Bien trouvé aussi, surtout que le compilateur ne va pas reconnaître ce bogue...
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

85

c mon erreur desole suis bourre mais j'viens de retoucher le programme y aplus d'erreurs mais c loin du puissance 4
ce que j'ai c le mode graphique qui fonctionne pa du tout la grille est grillee

86

Je n'ai jamais fait de programmation graphique sur PC, je peux pas te dire smile
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

87

merci et la y aurait pa un genie en mode graphique car la les deplacements sont un epu foirux
en fait fallait ecouter pollux
mais j'ai pa tro compris ton idee j'peux faire une seule boucle (+ lisible certainement)pour tous les tests j'vois pa comment adapter les compteurs au minimun il en faut deux
et le if ......................break; c utile ou necesaire apres chaque test
kestions de cons la faut dormir

88

sinon pour l'IA la recursion elimine l'idee basique de mon carre y aurait pa une idee geniale qui traine a cette heure ?
tu programmes sur quoi ?

89

Bon je poste le mini-message ici parce que ça n'a aucune raison d'être en mini-msg :
R (01:04) slim: eh pollux t'aurais pa un brouillon d'exemple d'une boucle lisible ca fairait moins de lignes


Bah je vais pas te faire le boulot, mais regarde exactement ce qui change entre test_diagonale_nord_est, test_vertical et autre, et essaye de regrouper ces différences en différents paramètres (pour que test_diagonale_nord_est()=test_alignement(a1,b1,c1) et test_vertical()=test_alignement(a2,b2,c2))

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

90

j'ai fait une boucle for qui regroupe l'alignement vertical et horizontal et une autre qui regroupe l'alignement diagonal (nord est et sud est)
sinon faudrait un if................break; apres chaque test c necessaire ou conseille?
sinon pour l'IA vu qu'je commence les trucs de minmax c un peu pointu et le prof n'est pa si con
j'dois utiliser la recursivite sinon c des boucles interminables e pa si efficaces..
d'abord ameliorer mesboucles meme si c pa le + dur