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

selection et affichage d'une pile

parent cff74c28
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
Aucun aperçu pour ce type de fichier
#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");
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 :
......
......@@ -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);
......@@ -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");
}
}
}
......@@ -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
......@@ -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");
while (1){
empiler(tableau[0],"TB");
char action;
char sel[4]="\0\0\0\0";
while (1){
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;
......
Aucun aperçu pour ce type de fichier
#include<stdio.h>
int main()
{
char *sel="a";
printf("%s",sel+1);
return 0;
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter