Puissance4 ia alphabeta

Soyez le premier à donner votre avis sur cette source.

Vue 12 382 fois - Téléchargée 1 563 fois

Description

Ce puissance4 permet de jouer contre l'ordinateur, l'IA est selon moi performante, c'est un alpha beta avec tri des coups, et une fonction d'évaluation selon moi assez rafinée...

principe : on met une note à chaque case : le nombre de fois qu'elle permet un alignement de 4 pions, ça permet de trier les meilleurs coups, et d'afiner l'évaluation, ça permet donc de faire plus de coupes alphabetas...

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

3ofiri2011
Messages postés
1
Date d'inscription
dimanche 1 mai 2011
Statut
Membre
Dernière intervention
26 mai 2011

Bonjour,

J'ai télécharger votre programme et je le trouve extrêmement intéressant mais j'aimerai que vous m'expliquiez une partie de votre code en notant que je ne suis pas vraiment expert en JAVa, voici la partie que je n'ai pas bien compris:

private void jouer(int x, int c){
int i;
int c2=(c==1)?1:0;
map[x][taille[x]]=c;
for (i=0;i<4;i++){
if (x-i>=0) good[c2][x-i][taille[x]]--;
if (x+i<7) good[c2][x+i][taille[x]]--;
if (taille[x]+i<6){
if (x-i>=0) good[c2][x-i][taille[x]+i]--;
if (x+i<7) good[c2][x+i][taille[x]+i]--;
good[c2][x][taille[x]+i]--;
}
if (taille[x]-i>=0){
if (x-i>=0) good[c2][x-i][taille[x]-i]--;
if (x+i<7) good[c2][x+i][taille[x]-i]--;
good[c2][x][taille[x]-i]--;
}
}
taille[x]++;
}
et aussi celle a ?

private int eval(){
int i, j;
int score=0;
int wincase=150;
int wincase2=500;
for (i=0;i<7;i++){
for (j=0;j<6;j++){
score+=good[1][i][j]-good[0][i][j];
}
}
for (i=0;i<7;i++){
for (j=taille[i];j<6;j++){
map[i][j]=1;
if (win()){
score-=wincase;
}
map[i][j]=2;
if (lose()){
score+=wincase;
}
map[i][j]=0;
}
for (j=taille[i];j<5;j++){
map[i][j]=1;
map[i][j+1]=1;
if (win()){
score-=wincase2;
}
map[i][j]=2;
map[i][j+1]=2;
if (lose()){
score+=wincase2;
}
map[i][j]=0;
map[i][j+1]=0;
}
}

return score;
}

J'espère que j'aurai une réponse de votre part.
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
30

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.