coup_jeu api_siam_tenter_introduire_nouvelle_piece_si_possible(jeu_siam* jeu, int x,int y, orientation_deplacement orientation) { assert(jeu_etre_integre(jeu)); coup_jeu coup; coup_jeu_initialiser(&coup); type_piece type = joueur_obtenir_animal(jeu->joueur); if(plateau_modification_introduire_piece_etre_possible(&(jeu->plateau),x,y,type,orientation)==0) return coup; const piece_siam *piece = plateau_obtenir_piece_info(&(jeu->plateau), x, y); if(piece->type != case_vide) { if(poussee_etre_valide(&(jeu->plateau), x, y, orientation, orientation) == 1) { //ici il faut vérifier la condition de victoire avant la poussée //car si jamais un rocher est au bord, il faut pouvoir le voir avant que la poussé ne soit effectuée ! coup.condition_victoire=verification_condition_victoire_valide(jeu,x,y,orientation); poussee_realiser(&(jeu->plateau), x, y, orientation, orientation, &(coup.condition_victoire)); } } plateau_modification_introduire_piece(&(jeu->plateau),x,y,type,orientation,&(coup.condition_victoire)); coup.valide=1; //on change de joueur joueur_changer(&(jeu->joueur)); return coup; }
type_piece jeu_obtenir_type_animal_courant(const jeu_siam* jeu) { assert(jeu_etre_integre(jeu)); return joueur_obtenir_animal(jeu->joueur); }