Explication d'un Programme [HELP ] - Java - Programmation
Marsh Posté le 19-05-2014 à 13:56:33
Ben c'est déjà expliqué en commentaires...
Marsh Posté le 19-05-2014 à 14:03:38
Et il manque une partie du programme. De plus c'est posté en section java, mais ça m'a l'air d'être du C très vaguement adapté, qui n'utilise en rien les possibilités de java.
A+,
Marsh Posté le 19-05-2014 à 15:05:05
La détection du gagnant est bien moche
Au passage, merci d'utiliser les balises [code] pour faciliter la lecture. Et le commentaires en vert, c'est pas évident à lire
Marsh Posté le 18-05-2014 à 21:06:45
Bonjour, J'ai vraiment besoin d'aide cela fait plusieurs jour que j'essaye de comprendre ce programme mais je n’y arrive pas , pouvez vous me l'expliquer (partie par partie) SVP, je suis interrogé demain et je stress merci
j’espère obtenir de l'aide.
int Test_jeux_termine ()
{
int valide = -1;
for(int i=1;i<=3;i++)
//fonction de teste si un des deux joueur a gagne
// donc si il ya alignement horizontal ou vertial ou diagonal d un symbole
{
if((getGrille(i,1)== getGrille(i,2)) && (getGrille(i,1)==getGrille(i,3)) && (getGrille(i,1)=='X' || getGrille(i,1)=='O'))
{
valide = 1;
}
}
for(int j=1;j<=3;j++)
{
// Si on a un alignement vertical, c'est à dire que :
// 1)Le symbole dans toutes les cases d'une colonne sont égaux
// 2)Il y a un symbole dans toutes ces cases et non un espac
// La fonction renvoie true
if((getGrille(1,j)==getGrille(2,j)) && (getGrille(1,j)==getGrille(3,j)) && (getGrille(1,j)=='X' || getGrille(1,j)=='O'))
{
valide = 1;
}
}
// Si on a un alignement dans une diagonale
//
// La fonction revoie true
if((getGrille(1,1)==getGrille(2,2)) && (getGrille(1,1)==getGrille(3,3)) && (getGrille(1,1)=='X' || getGrille(1,1)=='O'))
{
valide = 1;
}
// Si on a un alignement dans l'autre diagonale
//
// La fonction renvoie true
if( ((getGrille(1,3)==getGrille(2,2)) && (getGrille(1,3)==getGrille(3,1))) && (getGrille(1,3)=='X' ||getGrille(1,3) =='O') )
{
valide = 1;
}
return valide ;
}
void remplir_case( char rep_case ) {
//Déclaration de la variable [Case Horizontale = i]
int a = readInt(" choisissez une case à l'horizontale :" );
while ( a>3 || a<1 ){
a= readInt("Case invalide, veuillez choisir un nombre entre 1 et 3" );
}
//Déclaration de la variable [Verticale = j]
int b = readInt("choisissez une case à la verticale :" );
while ( b>3 || b<1 ){
b = readInt("Case invalide, veuillez choisir un nombre entre 1 et 3" );
}
while(getGrille(a,b)!=' ')
{
a= readInt("Case invalide, veuillez choisir un nombre entre 1 et 3" );
b= readInt("Case invalide, veuillez choisir un nombre entre 1 et 3" );
}
setGrille(a,b,rep_case);
}
void vider_Grille()
{
// pour tester que la grille est vide
{for (int k=1 ; k<=3 ;k++)
for (int m=1 ; m<=3 ;m++)
setGrille(m,k,' ');
}
}
int Grille_plein()
//pour tester que la grille est plein
{ int vide =-1;
{for (int k=1 ; k<=3 ;k++)
for (int m=1 ; m<=3 ;m++)
if (getGrille(k,m)==' ')
vide=1;
}
return vide;
}
void main(){
int a=0;
int b=0;
int fini = 0;
vider_Grille();
while (fini == 0 )
{
println("Le joueur 1 " );
remplir_case('X');
if (Test_jeux_termine()== 1)
{fini =1;
println("Le joueur 1 a gagné !" );
}
if (Grille_plein()== -1)
{fini=1;
println(" Egalite !" );
}
if ( fini ==0 && Grille_plein()!= -1 )
{
println("Le joueur 2 " );
remplir_case('O');
if (Test_jeux_termine()== 1 )
{fini =1;
println("Le joueur 2 a gagné !" );
}
}
if (Grille_plein()== -1)
{fini=1;
println(" Egalite !" );
}
}
}
Message édité par medikre le 18-05-2014 à 21:20:38