diff --git a/obj/affichage.o b/obj/affichage.o index 999b43d7edff1a0c59337cf34a2ac0bbdd92d2c9..3985760b38e53f8f2a5586eabb8f5cc7d47e4510 100644 Binary files a/obj/affichage.o and b/obj/affichage.o differ diff --git a/obj/main.o b/obj/main.o index 598a18072a9f40b036a0464905ac57eea6164e30..2a10c6ea5675f17db156b156f9cb01760037e95a 100644 Binary files a/obj/main.o and b/obj/main.o differ diff --git a/src/action.c b/src/action.c index a73cb62b3560045a7081eb0a823332517e68da4b..286d76a58fc93f68a2f1a8e58f6a87d2714704fe 100644 --- a/src/action.c +++ b/src/action.c @@ -1,17 +1,32 @@ #include<stdio.h> #include<stdlib.h> #include"tableau.h" -void realiser(char action,pile **tableau,int N) +#include"affichage.h" + + + + + + +void realiser(char action,pile **tableau,int N,char *cases) { + char sel[4]="\0\0\0\0"; switch (action){ - case 'c' : - printf("c"); + case 'c' : + affichecouleur(tableau,N); + affichepile(cases,tableau,N); + printf("\nEntrez les coordonnées de la case à selectionner >"); + scanf("%3s",sel); + if (sel[1] != '\0'){ + strcpy(cases,sel); + } break; case 'd' : printf("d"); break; case 'a' : nettoyer(tableau,N); + printf("\n Vous allez quitter le jeu"); exit(0); break; default : diff --git a/src/action.h b/src/action.h index bd7fc22dba74bb488d98ed9fa27dd1e0f3b695b5..cc1c9b517a3a3715cfd09a216f48d9896d54a509 100644 --- a/src/action.h +++ b/src/action.h @@ -4,4 +4,4 @@ * @assign * @ensure fait entrer dans le bon mode (abandon, selection ou déplacement) */ -void realiser(char action,pile **tableau,int N); +void realiser(char action,pile **tableau,int N,char *cases); diff --git a/src/affichage.c b/src/affichage.c index 7f8a9d380b8738694c3466f01413ac4511982c2c..d3ebf40629ad32f169243b3e80e07e30bfba0438 100644 --- a/src/affichage.c +++ b/src/affichage.c @@ -63,3 +63,27 @@ void affichecouleur(pile **tableau, int N) } printf("\n"); } + +void affichepion(char *pion,char *CASE) +{ + if (pion[1] == 'N') + printf(PNOIRE "%s %c " RESET,CASE, *pion); + else + printf(PBLANCHE "%s %c " RESET,CASE, *pion); +} + +void affichepile(char *sel,pile **tableau,int N) +{ + if (*sel == '\0' || strtol(sel+1,NULL,10)>N || strtol(sel+1,NULL,10)<1) + printf("Aucune case n'est sélectionnée."); + else { + printf("%s:\n",sel); + int i=N-strtol(sel+1,NULL,10),j=*sel-'A'; + noeud* tmp=tableau[i][j].sommet; + while (tmp != NULL){ + affichepion(tmp->chaine,NOIR); + tmp=tmp->next; + printf("\n"); + } + } +} diff --git a/src/affichage.h b/src/affichage.h index d014779935b447b65660fc27ca4dd915370f63f1..71ddfc771be15f95610bc698c76cb2d2b25b9605 100644 --- a/src/affichage.h +++ b/src/affichage.h @@ -19,5 +19,17 @@ void affiche(pile **tableau, int N); */ void affichecouleur(pile **tableau, int N); +/* + * @require + * @assign + * @ensure affiche le pion en couleur + */ +void affichepion(char *pion,char* CASE); +/* + * @require + * @assign + * @ensure affiche le contenu de la case/pile selectionnée + */ +void affichepile(char* sel, pile **tableau, int N); #endif diff --git a/src/main.c b/src/main.c index ee70efbc35e33e422429f236a843fee87f5b146b..8893657709a0b8c924479564465d17b88f56a3cb 100644 --- a/src/main.c +++ b/src/main.c @@ -10,17 +10,20 @@ int main(int argc, char **argv) if (argc != 1){ N=strtol(argv[1],NULL,10); } - pile **tableau=initialisation(N); empiler(tableau[0]+1,"RB"); empiler(tableau[0], "RN"); empiler(tableau[0]+2,"DB"); empiler(tableau[0]+3,"DN"); + empiler(tableau[0],"TB"); + char action; + char sel[4]="\0\0\0\0"; while (1){ - char action; affichecouleur(tableau,N); + affichepile(sel,tableau,N); + printf("\n Entrez une action (c,d,a) >"); scanf("%c",&action); - realiser(action,tableau,N); + realiser(action,tableau,N,sel); } nettoyer(tableau,N); return 0; diff --git a/stackchess b/stackchess index 3ff5910343ef0579d6d55db3db7dedd81c30aeb2..45f0baf8e2d22ac5db59ee1dd54bef98df9b5a8d 100755 Binary files a/stackchess and b/stackchess differ diff --git a/test.c b/test.c new file mode 100644 index 0000000000000000000000000000000000000000..cc0c5fb6851fde22624de27cba926fbfe9809306 --- /dev/null +++ b/test.c @@ -0,0 +1,8 @@ +#include<stdio.h> + +int main() +{ + char *sel="a"; + printf("%s",sel+1); + return 0; +}