Browse Source

Main : ajout rotation plateau et déplacement de pion

Un indice de joueur corrigé dans l'initialisation
master
Nikos 8 years ago
parent
commit
0338a36d98
1 changed files with 9 additions and 5 deletions
  1. +9
    -5
      main.c

+ 9
- 5
main.c View File

@ -312,6 +312,7 @@ int main(int argc, char** argv) {
#endif
/* ouverture de la fenêtre graphique */
puts("(GUI) Opening window");
struct gui_resource_t gui_res = display_start(gui_res);
/* appel de start_match */
@ -337,10 +338,11 @@ int main(int argc, char** argv) {
player_state[i].error = 0;
player_state[i].branch = star_branch(nb_player, i);
for( j=0 ; j < 10 ; j++ )
game_state.board[start_position[player_state[i].branch][j]] = player_state[i].branch;
game_state.board[start_position[player_state[i].branch-1][j]] = player_state[i].branch;
}
/* rafraîchissement du plateau à l'écran */
puts("(GUI) Rendering board");
display_render_board(gui_res, game_state, 1/*joueur 1 en face*/);
SDL_Flip(gui_res.screen);
@ -375,6 +377,8 @@ int main(int argc, char** argv) {
fprintf(stderr, "mouvement (%d,%d) valide\n",movement.start_pos, movement.end_pos);
#endif
/* on effectue le mouvement */
printf("(GUI) Moving pawn %d → %d\n",movement.start_pos, movement.end_pos);
display_animove_pawn(gui_res, game_state, player_state[i].branch, movement.start_pos, movement.end_pos);
game_state_copy.board[movement.start_pos]=none;
game_state_copy.board[movement.end_pos]=player_state[i].branch;
if(next_move)
@ -387,9 +391,6 @@ int main(int argc, char** argv) {
ia_call_function(player_state[i], ia_end_game, NULL);
}
}
/* le joueur a déplacé un pion, rafraîchissement du plateau à l'écran */
display_render_board(gui_res, game_state, i+1/*joueur, ∈[1-6]*/);
SDL_Flip(gui_res.screen);
} else {
#ifdef debug
fprintf(stderr, "mouvement (%d,%d) invalide\n",movement.start_pos, movement.end_pos);
@ -402,11 +403,14 @@ int main(int argc, char** argv) {
next_move=0;
}
first_move=0;
/* le joueur a joué, rotation du plateau à l'écran vers le suivant */
printf("(GUI) Rotating board %d → %d\n", player_state[i].branch, player_state[((i+1)%nb_player)].branch);
display_anirotate_board(gui_res, game_state, player_state[i].branch, player_state[((i+1)%nb_player)].branch /*joueur actuel et suivant, ∈[1-6]*/);
} while(next_move);
}
}
puts("fin de la partie");
/* pour les joueurs qui n'ont pas perdus */
/* pour les joueurs qui n'ont pas perdu */
for (i=0; i < nb_player ; i++)
if(player_state[i].error < 3)
ia_call_function(player_state[((++i)%nb_player)], ia_end_game, NULL);


Loading…
Cancel
Save