Puissance 4 avec Intelligence artificielles en langage C

123489

Nouveau membre
#1
Bonjour,
je doit réaliser un puissance 4 en c, mai avec Intelligence artificiel ,je n'arrive toujours pas à comprendre les algorithmes MIN_MAX sur net ,le programme simple je l'est terminer et il marche normalement mai comment implémenter cette IA dans mon code , je ne sait pas du tout comment faire ..
MERCI pour vos repenses,
cordialement.
voici mon code;
VIDE,
JAUNE,
ROUGE,
};
void initialisegrille(int grille [L][C])
{int i,j;
for (i=0;i<L;i++)
for (j=0;j<C;j++)
grille [j]=VIDE;
}
int coupvalide (int grille[L][C],int colonne,int couleur)
{
int ligne=L-1;
if (colonne >=C || colonne<0) return 0;
if (grille [0][colonne]!=VIDE) return 0;
while (ligne>=0 && grille[ligne][colonne]!=VIDE ) ligne--;
if ( ligne>=0)
{
grille[ligne][colonne]=couleur;
return 1;
}
return 0;
}

int compte (int grille[L][C],int ligneD,int colonneD,int DirLigne,int DirColonne){
int compteur=0;
int ligne=ligneD;
int colonne=colonneD;
while (ligne>=0 && ligne<L && colonne>=0 && colonne<C && grille[ligne][colonne]==grille[ligneD][colonneD])
{ printf("ligne=%d colonne=%d couleur=%d\n",ligne,colonne,grille[ligne][colonne]);
compteur ++;
ligne=ligne+DirLigne;
colonne=colonne+DirColonne;
}
return compteur;
}
int gagne(int grille[L][C],int couleur){
printf("gagne(couleur=%d)\n",couleur);
int i,j;
for (i=0;i<L;i++)
for (j=0;j<C;j++)
if (grille [j]==couleur )
if(
((compte(grille,i,j,-1,+1)>=4))||
((compte(grille,i,j,0,+1)>=4)) ||
((compte(grille,i,j,+1,0)>=4))||
((compte(grille,i,j,+1,+1)>=4))
)

{
return 1;
}
return 0;
}
void affiche(int grille[L][C])
{int i,j;
for (i=0;i<L;i++)
{
for (j=0;j<C;j++)
printf ("%c",".XO"[grille[j]]);//converstion auto en eniter
printf("\n");
}
}

int main()
{ srand(time(0));
int grille[L][C];
int valide= 0;
int colonne,gain=0;
initialisegrille(grille);
affiche(grille);
enum couleur couleur = JAUNE;
int joueur, joueur1, joueur2;
printf("Le joueur 1 est il un humain ou un ordinateur ? Entrer 0 ou 1\n");
scanf("%d", &joueur1);
printf("Le joueur 1 est il un humain ou un ordinateur ? Entrer 0 ou 1\n");
scanf("%d", &joueur2);
joueur=joueur1;

do
{
do{
printf("joueur ");
if(couleur==JAUNE) printf("X");
if(couleur==ROUGE) printf("O");
if(joueur==0)
{ printf(" entrez un numero de colonne:");
scanf("%d",&colonne);
}
if(joueur==1) colonne=rand()%8;
printf("La colonne choisie est :%d\n", colonne);
colonne--;
valide=coupvalide(grille,colonne,couleur);
if (!valide) printf("Le coup n'est pas valide\n");
}
while(!valide);
printf("OK3\n");
affiche(grille);
printf("OK1\n");
gain=gagne(grille,couleur);
if(couleur==JAUNE)
{
couleur=ROUGE;
joueur=joueur2;
}
else
{
couleur=JAUNE;
joueur=joueur1;
}
}while (!gain) ;
if (gain ==1)
{
if (couleur==JAUNE) printf ("le joueur gagnant est X,BRAVO!");
if (couleur==ROUGE) printf ("le joueur gagnant est O,BRAVO!");
}
else printf("match null;");
return 0;
}
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Staff en ligne
  • job31
    Admin tout frippé
  • magellan
    Modérâleur
Membres en ligne
  • SergioVE
  • job31
  • magellan
  • nicoom98
Derniers messages publiés
Statistiques globales
Discussions
871 064
Messages
8 131 207
Membres
1 581 593
Dernier membre
SheriArmstrong
Partager cette page
Haut