Browse Source

Suppression de warnings

master
Bastien 8 years ago
committed by Squiz
parent
commit
68e34c0b56
1 changed files with 30 additions and 26 deletions
  1. +30
    -26
      main.c

+ 30
- 26
main.c View File

@ -28,9 +28,9 @@ struct player_t {
void *ia_lib_p; /* NULL si le joueur n'est pas une stratégie */
};
enum bool char_to_int(char *argv, int *nombre) {
enum bool char_to_int(const char *const argv, int *nombre) {
char* error;
error=argv;
error = (char*) argv;
*nombre=strtol(argv,&error,10);
return (error!=argv);
}
@ -42,7 +42,7 @@ unsigned int number_length(int n) {
return ret;
}
enum bool ia_call_function(const struct player_t player, const enum api_function_t api_function, void *result, ...) {
enum bool ia_call_function(const struct player_t player, const enum api_function_t api_function, void *const result, ...) {
va_list ap;
char* error;
enum bool res;
@ -79,7 +79,7 @@ enum bool ia_call_function(const struct player_t player, const enum api_function
break;
}
*(void **) (&ia_function_pf) = dlsym(player.ia_lib_p, function_name);
if( (error=dlerror()) == NULL ) {
if( (error = (char*) dlerror()) == NULL ) {
switch(api_function) {
case ia_lib_init:
(*ia_function_pf)(va_arg (ap, char*));
@ -190,7 +190,7 @@ enum bool valid_move(const struct move_t move, const struct move_t previous_move
ssize_t dest, dest2;
#ifdef debug
printf("=== validation de %d → %d===\n", move.start_pos, move.end_pos);
fprintf(stderr, "=== validation de %d → %d===\n", move.start_pos, move.end_pos);
#endif
if(move.start_pos < 0 || move.end_pos < 0 || move.start_pos > 120 || move.end_pos > 120)
@ -199,8 +199,9 @@ enum bool valid_move(const struct move_t move, const struct move_t previous_move
/* on vérifie que la case appartient au joueur */
if(game.board[move.start_pos] != player.branch )
{
printf("la case %d n'appartient pas au joueur\n",move.start_pos);
printf("%d %d\n", game.board[move.start_pos], player.branch);
#ifdef debug
fprintf(stderr, "la case %d n'appartient pas au joueur\n",move.start_pos);
#endif
return false;
}
@ -210,19 +211,25 @@ enum bool valid_move(const struct move_t move, const struct move_t previous_move
/* on vérifie que la case de destination est libre */
if(game.board[move.end_pos] != none) {
printf("la case %d de destination n'est pas libre\n", move.end_pos);
#ifdef debug
fprintf(stderr, "la case %d de destination n'est pas libre\n", move.end_pos);
#endif
return false;
}
/* on vérifie le collage si ce n'est pas le premier mouvement */
if(previous_move.start_pos != -1 && previous_move.end_pos != -1 && move.start_pos != previous_move.end_pos) {
puts("collage not ok");
#ifdef debug
fputs("le pion déplacé n'est pas le même qu'au mouvement précédent\n", stderr);
#endif
return false;
}
/* si c'est le dernier mouvement, on ne stationne pas sur une branche */
if(last_move) {
puts("vérification de ne pas stationner sur une branche");
#ifdef debug
fputs("vérification de ne pas stationner sur une branche\n", stderr);
#endif
/* ne pas faire les branches de départ et d'arrivée */
for(j = (((player.branch-1)%3)+1)%6; j!=((player.branch-1)%3) ; j=(j+(j==((player.branch-1)%3)+2?2:1))%6 ) {
if(search(start_position[j],10,move.end_pos))
@ -231,15 +238,21 @@ enum bool valid_move(const struct move_t move, const struct move_t previous_move
}
/* on regarde autour */
puts("on regarde autour");
#ifdef debug
fputs("on regarde les voisins\n", stderr);
#endif
j = 0;
do {
if((dest = move_calculation(move.start_pos, j)) != -1) {
printf("%d → %d (j=%d) ?\n", move.start_pos, dest, j);
if( (dest = move_calculation( (size_t) move.start_pos, j)) != -1 ) {
#ifdef debug
fprintf(stderr, "%d → %zu (j=%zu) ?\n", move.start_pos, dest, j);
#endif
switch(((dest == move.end_pos)?1:0)+((game.board[dest] == none)?2:0)) {
case 0: /*on veut pas y aller mais la place est occupée. peut etre qu'on veut faire le saut */
if((dest2 = move_calculation(dest,j)) != -1) {
printf("%d → %d (j=%d) ?\n", dest, dest2, j);
#ifdef debug
fprintf(stderr, "%zu → %zu (j=%zu) ?\n", dest, dest2, j);
#endif
switch(((dest2 == move.end_pos)?1:0)+((game.board[dest2] == none)?2:0)) {
case 1: /* on veut y aller mais la place est occupée */ return false;
case 3: /* on veut y aller et la place est libre */ return true;
@ -257,7 +270,7 @@ enum bool valid_move(const struct move_t move, const struct move_t previous_move
return false;
}
enum bool winner(struct player_t player, const size_t start_position[6][10], const struct game_state_t game) {
enum bool winner(const struct player_t player, const size_t start_position[6][10], const struct game_state_t game) {
size_t final_branch, j;
final_branch = (player.branch+2)%6; /* décalée de 1 (pour éviter de faire +1 et ensuite -1 lors de l'accès au tableau). */
j = 0;
@ -269,7 +282,7 @@ enum bool winner(struct player_t player, const size_t start_position[6][10], con
}
void save(const char *filename, struct player_t *player_state, const int nb_game, const int nb_game_end, const int nb_player, const time_t start_match, const int *winner, const time_t *duration) {
void save(const char *filename, const struct player_t *player_state, const int nb_game, const int nb_game_end, const int nb_player, const time_t start_match, const int *winner, const time_t *duration) {
FILE* file;
char *buffer;
int i;
@ -359,7 +372,7 @@ int main(int argc, char** argv) {
fprintf(stderr,"strategy %s (%d)\n", argv[j], i);
#endif
player_state[i].ia_lib_p = dlopen(argv[j], RTLD_LAZY);
if( (buffer = dlerror()) != NULL ) {
if( (buffer = (char*) dlerror()) != NULL ) {
#ifdef debug
fprintf(stderr,"error while loading %s : %s (%d)\n", argv[j], buffer, i);
#endif
@ -388,11 +401,6 @@ int main(int argc, char** argv) {
player_state[i].name[49] = '\0';
}
#ifdef debug
for( i=0 ; i<nb_player ; printf("%d\n", player_state[i++].ia_lib_p) );
puts("");
#endif
/* on initialise les tableaux pour stocker les gagnants et la durée de chaque partie */
if((winner_games = (int*) malloc(nb_game*sizeof(int))) == NULL) {
#ifdef debug
@ -407,8 +415,6 @@ int main(int argc, char** argv) {
return 6;
}
/* ouverture de la fenêtre graphique */
puts("(GUI) Opening window");
struct gui_resource_t gui_res = display_start(gui_res);
@ -424,8 +430,6 @@ int main(int argc, char** argv) {
ia_call_function(player_state[i], ia_start_match, NULL, nb_player, player_state[i].branch);
}
/* on note l'heure du début du jeu */
time_start_match = time(NULL);


Loading…
Cancel
Save