예제 #1
0
void mode_interactif_deplacer_piece(jeu_siam* jeu,int x,int y,orientation_deplacement deplacement,orientation_deplacement orientation,int* victoire)
{
    assert(jeu!=NULL);
    assert(victoire!=NULL);

    if(mode_interactif_parametres_etre_valides(jeu,x,y,orientation))
    {
        coup_jeu coup=api_siam_tenter_deplacer_piece_si_possible(jeu,x,y,deplacement,orientation);
        if(coup_etre_valide(&coup))
        {
            printf("  d %d %d %s %s\n",x,y,orientation_nommer_nom_cours(deplacement),orientation_nommer_nom_cours(orientation));
            mode_interactif_sauvegarder_jeu_fichier(jeu);
            if(coup_etre_victorieux(&coup))
            {
                coup_afficher_victoire(&coup);
                *victoire=1;
            }
        }
        else
            puts("Echec deplacement piece impossible");
    }
    else
        printf("Deplacement piece (%d,%d) impossible \n",x,y);

}
예제 #2
0
void mode_interactif_introduire_nouvelle_piece(jeu_siam* jeu,int x,int y,orientation_deplacement orientation,int* victoire)
{
    assert(jeu!=NULL);
    assert(victoire!=NULL);

    if(mode_interactif_parametres_etre_valides(jeu,x,y,orientation))
    {
        coup_jeu coup=api_siam_tenter_introduire_nouvelle_piece_si_possible(jeu,x,y,orientation);
        if(coup_etre_valide(&coup))
        {
            printf("  n %d %d %s\n",x,y,orientation_nommer_nom_cours(orientation));

            mode_interactif_sauvegarder_jeu_fichier(jeu);
            if(coup_etre_victorieux(&coup))
            {
                coup_afficher_victoire(&coup);
                *victoire=1;
            }
        }
        else
            puts("Echec introduction piece impossible");
    }
    else
        printf("Introduction piece impossible aux coordonnees %d %d\n",x,y);


}
예제 #3
0
void piece_afficher_nom_cours(const piece_siam* piece)
{
  assert(piece!=NULL);

  printf("%s",type_nommer_nom_cours(piece->type));
  if(piece_etre_animal(piece))
    printf("-%s",orientation_nommer_nom_cours(piece->orientation));
}
예제 #4
0
void mode_interactif_changer_orientation(jeu_siam* jeu,int x,int y,orientation_deplacement orientation)
{
    assert(jeu!=NULL);

    if(mode_interactif_parametres_etre_valides(jeu,x,y,orientation))
    {
        coup_jeu coup=api_siam_tenter_changer_orientation_piece_si_possible(jeu,x,y,orientation);
        if(coup_etre_valide(&coup))
        {
            printf("  o %d %d %s\n",x,y,orientation_nommer_nom_cours(orientation));
            mode_interactif_sauvegarder_jeu_fichier(jeu);
        }
        else
            puts("Echec changement orientation piece impossible");
    }
    else
        printf("Changement orientation piece (%d,%d) impossible \n",x,y);

}
예제 #5
0
void entree_sortie_ecrire_plateau_pointeur_fichier(FILE* identifiant,const plateau_siam* plateau)
{
  int y, x;
  for (y = NBR_CASES-1; y >= 0; y--) {
    fprintf(identifiant, "[%d] ", y);
    for (x = 0; x < NBR_CASES; x++) {
      const piece_siam *piece = plateau_obtenir_piece_info(plateau, x, y);
      if (type_etre_animal(piece->type))
	fprintf(identifiant, "%s-%s | ", type_nommer_nom_cours(piece->type), orientation_nommer_nom_cours(piece->orientation));
      else
	fprintf(identifiant, "%s | ", type_nommer_nom_cours(piece->type));
    }
    fprintf(identifiant, "\n");
  }
  fprintf(identifiant, "    ");
  for (x = 0; x < NBR_CASES; x++) {
    fprintf(identifiant, "[%d]   ", x);
  }
  printf("\n");
}