add.. something?

This commit is contained in:
Mylloon 2022-11-18 17:09:15 +01:00
parent 11a77f5331
commit f3f8cb9293
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
2 changed files with 46 additions and 3 deletions

View file

@ -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

View file

@ -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
} */