Codingame minimax exercise
Loading...
Searching...
No Matches
Classes | Functions
code.c File Reference
#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
#include <string.h>

Classes

struct  word_t
 Structure pour stocker un mot et son score. More...
 
struct  result_t
 Structure pour stocker le score du joueur et de l'adversaire, ainsi que la différence entre les deux. Elle contient également la lettre à prendre au 1er tour. Elle est utilisée pour le retour de la fonction minimax. More...
 

Functions

bool is_word_possible (char *word, char *letters)
 Fonction qui vérifie si un mot peut être formé avec les lettres données.
 
int points (char *letters, word_t *word_list, int nb_words)
 Fonction qui calcule le score total d'un joueur.
 
void copy_string_without_first_letter (char *destination, char *source, int len)
 Fonction qui copie une chaîne de caractères sans le premier caractère.
 
void copy_string_without_second_letter (char *destination, char *source, int len)
 Fonction qui copie une chaîne de caractères sans le deuxième caractère.
 
result_tminimax (char *letters, char *hand, char *opponent_hand, bool maximizing_player, int alpha, int beta, word_t *word_list, int nb_word)
 Fonction qui calcule le score du joueur et de l'adversaire en utilisant l'algorithme minimax.
 
int main ()
 Fonction principale.
 

Function Documentation

◆ copy_string_without_first_letter()

void copy_string_without_first_letter ( char *  destination,
char *  source,
int  len 
)

Fonction qui copie une chaîne de caractères sans le premier caractère.

Parameters
destinationLa chaîne de caractères de destination (doit être allouée avant l'appel de la fonction)
sourceLa chaîne de caractères source
lenLa longueur de la chaîne de caractères source

◆ copy_string_without_second_letter()

void copy_string_without_second_letter ( char *  destination,
char *  source,
int  len 
)

Fonction qui copie une chaîne de caractères sans le deuxième caractère.

Parameters
destinationLa chaîne de caractères de destination (doit être allouée avant l'appel de la fonction)
sourceLa chaîne de caractères source
lenLa longueur de la chaîne de caractères source

◆ is_word_possible()

bool is_word_possible ( char *  word,
char *  letters 
)

Fonction qui vérifie si un mot peut être formé avec les lettres données.

Parameters
wordLe mot à vérifier
lettersLes lettres disponibles
Returns
true si le mot peut être formé, false sinon

◆ main()

int main ( )

Fonction principale.

Returns
0 si le programme s'est terminé correctement

◆ minimax()

result_t * minimax ( char *  letters,
char *  hand,
char *  opponent_hand,
bool  maximizing_player,
int  alpha,
int  beta,
word_t word_list,
int  nb_word 
)

Fonction qui calcule le score du joueur et de l'adversaire en utilisant l'algorithme minimax.

Parameters
lettersLes lettres disponibles
handLes lettres dans la main du joueur
opponent_handLes lettres dans la main de l'adversaire
maximizing_playertrue si c'est au tour du joueur, false si c'est au tour de l'adversaire
alphaValeur de alpha
betaValeur de beta
word_listLa liste des mots possibles
nb_wordLe nombre de mots dans la liste
Returns
Un pointeur vers une structure result_t contenant le score du joueur et de l'adversaire, ainsi que la différence entre les deux.

◆ points()

int points ( char *  letters,
word_t word_list,
int  nb_words 
)

Fonction qui calcule le score total d'un joueur.

Parameters
lettersLes lettres dans la main du joueur
word_listLa liste des mots possibles
nb_wordsLe nombre de mots dans la liste
Returns
Le score total du joueur