add.. something?
This commit is contained in:
parent
11a77f5331
commit
f3f8cb9293
2 changed files with 46 additions and 3 deletions
|
@ -1,9 +1,14 @@
|
||||||
#ifndef OTHELLO_MINIMAX_H
|
#ifndef OTHELLO_MINIMAX_H
|
||||||
#define OTHELLO_MINIMAX_H 1
|
#define OTHELLO_MINIMAX_H 1
|
||||||
|
|
||||||
|
#include "joueur.h"
|
||||||
|
|
||||||
typedef struct jeu Jeu;
|
typedef struct jeu Jeu;
|
||||||
|
|
||||||
/* Joue le tour d'après l'algorithme Minimax */
|
/* Joue le tour d'après l'algorithme Minimax */
|
||||||
void action_joueur_minimax(Jeu *jeu, int couleur);
|
void action_joueur_minimax(Jeu *jeu, int couleur);
|
||||||
|
|
||||||
|
/* Implémentation de Minimax */
|
||||||
|
/* Jeton *minimax(int profondeur, Coups *positions, int joueur); */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2,8 +2,46 @@
|
||||||
|
|
||||||
void action_joueur_minimax(Jeu *jeu, int couleur) {
|
void action_joueur_minimax(Jeu *jeu, int couleur) {
|
||||||
// TODO
|
// TODO
|
||||||
|
int ligne = -1, colonne = -1;
|
||||||
|
|
||||||
(void)jeu, (void)couleur;
|
jeu_joueur(jeu, ligne, colonne, couleur);
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Jeton *h(Jeton *p) {
|
||||||
|
// TODO ??
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
|
Jeton *_minimax(Element *element) {
|
||||||
|
return max(minimax(element->suivant));
|
||||||
|
}
|
||||||
|
|
||||||
|
Jeton *minimax(int profondeur, Coups *positions, int joueur) {
|
||||||
|
|
||||||
|
if (positions->taille_liste == 1) {
|
||||||
|
// TODO ??
|
||||||
|
return h(positions->coups->premier->jeton);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Profondeur maximale
|
||||||
|
if (profondeur == 0) {
|
||||||
|
// TODO ??
|
||||||
|
return h(positions->coups->premier->jeton);
|
||||||
|
}
|
||||||
|
|
||||||
|
return _minimax(positions->coups->premier);
|
||||||
|
|
||||||
|
// Joueur 1 = MAX
|
||||||
|
// Joueur 2 = MIN
|
||||||
|
|
||||||
|
// minimax(profondeur n, position p, joueur J)
|
||||||
|
// - si p est terminale
|
||||||
|
// return h*(p)
|
||||||
|
// - si n = 0 # On a atteint la profondeur maximale
|
||||||
|
// return h(p)
|
||||||
|
// - sinon, soit p1, ..., pm les m positions accessibles depuis p
|
||||||
|
// - si J = MAX
|
||||||
|
// return max minimax(n - 1, pi, MIN) # 1 <= i <= m
|
||||||
|
// - si J = MIN
|
||||||
|
// return min minimax(n - 1, pi, MAX) # 1 <= 1 <= m
|
||||||
|
} */
|
||||||
|
|
Reference in a new issue