Beispiel #1
0
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);
}