|
Codingame minimax exercise
|
#include <stdlib.h>#include <stdio.h>#include <stdarg.h>#include <string.h>#include <stdbool.h>Macros | |
| #define | scanf fake_scanf |
| Remplace scanf par fake_scanf. | |
| #define | printf fake_printf |
| Remplace printf par fake_printf. | |
| #define | main real_main |
| Remplace la fonction main par real_main pour pouvoir l'appeler depuis main_wrapper. | |
Functions | |
| int | real_main () |
| void | f_revealAroundPos () |
| Cette fonction révèle les cases autour de la position du joueur. | |
| void | f_readGridFromFile (char filename[]) |
| Cette fonction lit la grille depuis un fichier et initialise les variables globales. | |
| void | f_clear () |
| Libère la mémoire allouée pour les variables globales. | |
| int | fake_scanf (const char *format,...) |
| Wrapper de la fonction scanf. | |
| int | fake_printf (const char *text,...) |
| Wrapper de la fonction printf. | |
| int | main (int argc, char **argv) |
| wrapper pour la fonction main | |
Variables | |
| char ** | f_grid |
| La grille du jeu complètement révélée. | |
| char ** | f_grid2 |
| La grille du jeu partiellement révélée (elle sera révélée au fur et à mesure) | |
| int | f_player_x |
| La position en x du joueur. | |
| int | f_player_y |
| La position en y du joueur. | |
| int | f_nb_lines |
| Le nombre de lignes de la grille. | |
| int | f_nb_columns |
| Le nombre de colonnes de la grille. | |
| int | f_nb_round |
| Le nombre de deplacement pour aller de la salle de commande à la sortie. | |
| int | f_round = 0 |
| Le nombre de déplacements effectués par le joueurs depuis qu'il a quitté la salle de commande. | |
| bool | f_command_found = 0 |
| Indique si la salle de commande a été trouvée. | |
| int | f_c = 0 |
| Quelle ligne de la grille est lue par scanf. | |
| #define main real_main |
Remplace la fonction main par real_main pour pouvoir l'appeler depuis main_wrapper.
| #define printf fake_printf |
Remplace printf par fake_printf.
| #define scanf fake_scanf |
Remplace scanf par fake_scanf.
| void f_clear | ( | ) |
Libère la mémoire allouée pour les variables globales.
Cette fonction est appelée à la fin du programme. Elle libère la mémoire allouée pour les variables globales (f_grid et f_grid2) dans la fonction f_readGridFromFile
| void f_readGridFromFile | ( | char | filename[] | ) |
Cette fonction lit la grille depuis un fichier et initialise les variables globales.
Cette fonction est appelée au début du programme. Elle lit la grille depuis un fichier et initialise les variables globales. Elle révèle aussi les cases autour de la position de départ du joueur.
| filename | Le nom du fichier à lire |
| void f_revealAroundPos | ( | ) |
Cette fonction révèle les cases autour de la position du joueur.
Cette fonction est appelée à chaque fois que le joueur se déplace. Elle révèle les cases autour de la position du joueur (5x5 cases) dans la grille partiellement révélée (f_grid2)
| int fake_printf | ( | const char * | text, |
| ... | |||
| ) |
Wrapper de la fonction printf.
Cette fonction est appelée à chaque fois que la fonction printf est appelée
/!\ Cette fonction ne supporte que les chaînes de caractères suivantes :
/!\ Le \n est obligatoire
| text | Le texte à afficher |
| ... | Les arguments à afficher |
| int fake_scanf | ( | const char * | format, |
| ... | |||
| ) |
Wrapper de la fonction scanf.
Cette fonction est appelée à chaque fois que la fonction scanf est appelée
/!\ Cette fonction ne supporte que les formats suivants :
| format | Le format de la chaîne à lire |
| ... | Les arguments à lire |
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
wrapper pour la fonction main
| argc | le nombre d'arguments |
| argv | les arguments |
Prend en charge la lecture du fichier d'entrée, l'appel de la fonction main originale et la libération de la mémoire Argument 1 : le nom d'un fichier d'entrée (ex : "tests/grid1.txt")
| int real_main | ( | ) |
| int f_c = 0 |
Quelle ligne de la grille est lue par scanf.
| bool f_command_found = 0 |
Indique si la salle de commande a été trouvée.
| char** f_grid |
La grille du jeu complètement révélée.
| char** f_grid2 |
La grille du jeu partiellement révélée (elle sera révélée au fur et à mesure)
| int f_nb_columns |
Le nombre de colonnes de la grille.
| int f_nb_lines |
Le nombre de lignes de la grille.
| int f_nb_round |
Le nombre de deplacement pour aller de la salle de commande à la sortie.
| int f_player_x |
La position en x du joueur.
| int f_player_y |
La position en y du joueur.
| int f_round = 0 |
Le nombre de déplacements effectués par le joueurs depuis qu'il a quitté la salle de commande.