Skip to content
Extraits de code Groupes Projets
Valider 07067525 rédigé par Loïc DUBARD's avatar Loïc DUBARD :speech_balloon:
Parcourir les fichiers

pile affichée sur le côté

parent 53f7a059
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Aucun aperçu pour ce type de fichier
......@@ -63,6 +63,63 @@ void affichecouleur(pile **tableau, int N)
}
printf("\n");
}
void affichetableau_pile_cote(pile **tableau, int N,char *sel)
{
clrscr();
/**/
int x,y,nb=0;
if (*sel != '\0'){
determiner_indices(sel,N,&x,&y);
if (x>=0 && x<N && y>=0 && y<N)
nb=longueur_pile(tableau[x][y]);
else nb=0;
}
/**/
int i,j;
printf(" ");
for(i=0 ; i<N ; i++){
printf("%c ",'A'+i);
}
printf("\n");
for (i=0 ; i<N ; i++){
printf(N-i>9 ? "%i":" %i",N-i);
for (j=0 ; j<N ; j++)
if ((i+j)%2 == 1){
if (est_vide(tableau[i][j]))
printf(NOIR " " RESET);
else if (tableau[i][j].sommet->chaine[1] == 'N')
printf(PNOIRE NOIR "%c " RESET, *sommet(tableau[i][j]));
else
printf(PBLANCHE NOIR"%c " RESET, *sommet(tableau[i][j]));
} else {
if (est_vide(tableau[i][j]))
printf(BLANC " " RESET);
else if (tableau[i][j].sommet->chaine[1] == 'N')
printf(PNOIRE BLANC"%c " RESET, *sommet(tableau[i][j]));
else
printf(PBLANCHE BLANC"%c " RESET, *sommet(tableau[i][j]));
}
if (nb>0 && i>=N-nb)
affiche_pile_a_cote(tableau,sel,x,y,N,i,nb);
else if (i == N-1)printf(" Aucune selection");
printf("\n");
}
printf("\n");
}
void affiche_pile_a_cote(pile **tableau,char *sel,int x,int y,int N, int ligne,int nb)
{
int k;
if (ligne == N-1) printf(" %s:",sel);
noeud* tmp=tableau[x][y].sommet;
for (k=0 ; k<nb ; k++){
if (ligne==N-nb+k){
if (ligne != N-1) printf(" ");
affichepion(tmp->chaine,NOIR);
}
tmp=tmp->next;
}
}
void affichepion(char *pion,char *CASE)
{
......@@ -79,7 +136,6 @@ void affichepile(char *sel,pile **tableau,int N)
else {
int i,j;
determiner_indices(sel,N,&i,&j);
//printf("(%d,%d)",i,j);
if (i>=N || i<0 || j<0 || j>=N)
printf("Aucune case n'est sélectionnée.");
else {
......@@ -96,12 +152,12 @@ void affichepile(char *sel,pile **tableau,int N)
void affichage(pile **tableau,int N, char *sel,int tour,char *message)
{
affichecouleur(tableau,N);
affichepile(sel,tableau,N);
//affichecouleur(tableau,N,sel);
//affichepile(sel,tableau,N);
affichetableau_pile_cote(tableau,N,sel);
if (tour%2 == 0)
printf("\n C'est au tour des Verts.");
printf("\n [\x1B[1;5;32m%sGRIS" RESET "] %s",NOIR,message);
else
printf("\n C'est au tour des Rouges.");
printf("\n%s",message);
printf("\n [\x1B[1;5;31m%sROUGES" RESET "] %s",NOIR,message);
}
......@@ -19,6 +19,18 @@ void affiche(pile **tableau, int N);
*/
void affichecouleur(pile **tableau, int N);
/*
* @require
* @assign
* @ensure : affiche le tableau en couleur AVEC la pile selectionnée sur le côté.
*/
void affichetableau_pile_cote(pile **tableau,int N,char *sel);
/*
* @require : nb le nombre d'élement de la pile >0
* @assign : \nothing
* @ensure : affiche l'élément de la pile selectionnée à afficher à côté de la ligne i du plateau
*/
void affiche_pile_a_cote(pile **tableau,char *sel,int x,int y, int N, int ligne,int nb);
/*
* @require
* @assign
......
......@@ -46,7 +46,7 @@ void case_destination(pile **tableau,int N,int i_src,int j_src, int *i_dest,int
scanf("%3s",dest);
if (dest[1] != '\0'){
determiner_indices(dest,N,i_dest,j_dest);
if (*i_dest>=0 && *i_dest<N && *j_dest>=0 && *j_dest<N){
if (*i_dest>=0 && *i_dest<N && *j_dest>=0 && *j_dest<N && nb>nb_de_pion(tableau[*i_dest][*j_dest],"BN"[*tour%2+1])){
noeud* tmp=tableau[i_src][j_src].sommet;
int valide,i;
for (i=0 ; i<nb ; i++){
......
Aucun aperçu pour ce type de fichier
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter