From d9222e05337f525e6838c4810e7d9d1e33a6d9cf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc=20Dubard?= <loic.dubard@ensiie.fr>
Date: Fri, 9 Nov 2018 17:33:36 +0100
Subject: [PATCH] =?UTF-8?q?r=C3=A9organisation=20du=20projet=20et=20cr?=
 =?UTF-8?q?=C3=A9ation=20Makefile?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Makefile                   |  11 ++++++
 obj/affichage.o            | Bin 0 -> 2288 bytes
 obj/main.o                 | Bin 0 -> 1872 bytes
 obj/tableau.o              | Bin 0 -> 2728 bytes
 src/affichage.c            |  26 ++++++++++++++
 src/affichage.h            |  14 ++++++++
 stackchess.c => src/main.c |   6 ++--
 src/tableau.c              |  72 +++++++++++++++++++++++++++++++++++++
 src/tableau.h              |  70 ++++++++++++++++++++++++++++++++++++
 stackchess                 | Bin 0 -> 17192 bytes
 10 files changed, 197 insertions(+), 2 deletions(-)
 create mode 100644 Makefile
 create mode 100644 obj/affichage.o
 create mode 100644 obj/main.o
 create mode 100644 obj/tableau.o
 create mode 100644 src/affichage.c
 create mode 100644 src/affichage.h
 rename stackchess.c => src/main.c (76%)
 create mode 100644 src/tableau.c
 create mode 100644 src/tableau.h
 create mode 100755 stackchess

diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..d7a105c
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,11 @@
+CC=gcc -Wall -Wextra -ansi
+
+stackchess :  main.o tableau.o affichage.o
+	cd obj && $(CC) $^ -o ../$@
+
+main.o : src/main.c
+	$(CC) -c $< -o ./obj/$@
+
+%.o: src/%.c src/%.h
+	$(CC) -c $< -o obj/$@
+
diff --git a/obj/affichage.o b/obj/affichage.o
new file mode 100644
index 0000000000000000000000000000000000000000..e86c05005ee87b10d46e42d89b070b9fa69fc406
GIT binary patch
literal 2288
zcmb_c&rcIk5T0cf5R0H<VuHqA{DII7auGC=0xsP{BM~7Uo26`Rqb;PnHE3!yY1A}@
z1W$V9Kk(>DF-FnEsPX1iF)4wINe_)_QfIbr=(1fBW1P)<Z{GL5nR##Ky}hr7$D1Sx
zSR@#R`ixP4=X>jV&{l)c4nCOH@;|lQmS4-?E9NunYiflSH@2`_Q%j_8_GwF(NO?hB
zk-CDqo-0a2YANFrYc`xyOHx5CT~ybzAJ^0}F*hFD^osUOTk3jCh*nUGn)F30Kw-M9
zMZapVzsvS~(Dw0g)jHe|Z!=g>|K5d`f7jq4r<QSRW!zfFVzOGT?%Z|-*DCf}E3Szg
zY@TiK!so7J+FteIS;VQ?Jo{<+!<*hf0D2+o_e1ui30Z*9*w_XCnajpZLQnYzl>wzc
zFw|31&_x&J1Vy?#3DQER)a`3&UB&_)LyQ{9RVwJnfzC%wW9`jySVD@8dv!$J1HY<X
zYqICf0Fd$X5*a;ti42a*<RHk<;+WM{8NBx^Lvx)Zw00a1IreFv9kC<WIt9l$P#L`N
zfnD(PyWqiH@X#(e=&@KL8rN?aN>u0uL_*<-(UEXuVto9XIu)5384arum`^8CRt)Ad
zmI;PwMQ$f%4KU}DNy8!#oumOyV;qtuY?R#!UPO{}1fozS_G4pwj6f9T*Jk*<ghG5D
zHs&unaLO^`PX*3?Xe3#w4GnQWJMaUjv!8DQXFpuo9}d2A|G!=QHZkXm>)!tfy4Wb}
zpX2rj+?}6c2i}2p%=eQM6!ODowE@MvleF|1P)sXb8{@2{ja#~684DIDv$~~&GGm&c
zq~~grC{;3rYpFTQP(oLx1E!@%Zz6%rjCdrL){}-E<3DtM^g&1C{IbiSQ24ztF4DkL
z=thll72HN@%6st(hzkR%2dVsWj|%=NfxG`0Puzh7-wpQ(pZ{u4?}2>os2$EZzWZO`
zjz1*q`*C#2iXa|$f~d1SkE0IENqxx#C+NYwE-?50SB3qc%bxSk@FXf;_3IbEWUdp{
zk8IhVaSG#(jS!SY{0CyBx4I9T+nz9Y?GS<m0Z!1wA;R4@au78ydrj<L-)7bnxBVX$
CJ~Ea7

literal 0
HcmV?d00001

diff --git a/obj/main.o b/obj/main.o
new file mode 100644
index 0000000000000000000000000000000000000000..83f308b5febfbd49ff1ad342670fcc623cd4076c
GIT binary patch
literal 1872
zcmbu9&1(};5Wr`X+Ez_!6c0ib0)kYrOBICHgXF_aRtPP`1TR9^#tm7_?n?Fvtxy#r
z!V-l18U6|4K?Dz_;MsF8f<g}U9;h?B@1-y6?!``-%*^l2%=_BcH(ITdQWOxPzymmm
z1O>>=o%n^oEkG7B(A52(`e2;*_r|*a@^D|9%;V@_Z>+GqKGY8N!PiB72%pa({X%uR
zzyFJ@uT6&9ga^8>9bq;q=pXLMX~X7(2K*nQ?jP`p(ht7XHvy{U^8NhELv!0Qocy|a
zS6y4(xEVT>L~=PapuDPsvXfJmGYg9&-0)T8q$EE56qj=EQ|0V@>K$efh!;AmIrwuN
zH=2$;Nq{u|#Yq}F#Yq~@#9{2Rkig>?oCdm^S)t5J(mI2^Bg>-ZW>bUcdIG<dz&8?j
zF@Zly;9wh;qqYMBt!iznRIIhODwW4tqtz&uYFZ0C)@N=HEXQJ&(X%{*S*`=7{le;*
zeK0y5tKBuhF&T4r5rh(aZ0OR-pGTb>hf)fM1D=t1gYy(xx)qWClymAsXD7HV@g<4B
zmiPsU=Q*eTq*GD7U7H!(pwc!2+ZA5l>=`OEcNnP83}%43?RlW~-7sjowrx5%=D5sM
ztDDVLj~VUfm_TJ_x7FzzwmF^WlujP&=}knxv;r~`@qL9+m@9m;%cyjQ1=JbgPiDj+
z{Xe03#Fu`B^BbH;U)TX3j~ePB%WVv(=l|B<!CLA$b9Wev`J;WK^V54FwuUOpcOG1m
zA^M_T*pkHL)ZcO-`JzssC+HB1uK$Q9tcyf$#rX?dM<?$7MttMqp6LFlR@4g~H#hZO
p;R}7sExpyVG4;fvXN(9w@(t1YWZ~_m=puTt^&A@0%+QI}{{^4i!(#vd

literal 0
HcmV?d00001

diff --git a/obj/tableau.o b/obj/tableau.o
new file mode 100644
index 0000000000000000000000000000000000000000..1937f871456d0a771a097810b4fefb0042dba670
GIT binary patch
literal 2728
zcmbtVU5Hyn6h2A%r(L_L6tuQNK#(oE*VPwmi<0ejb}uEm(l)46$=*$F+0gt*a#y<2
zq7W;jm&HE#;A8y(7km)}@y)bW(!PmO@L?Z<tPn{a>RTQH^*eKClJR;MM9(raXTEdJ
zcV^DHnSD=W=Hsy#X^GKGG~Q{HXk+(SPfImT6SSAIcJuc$cB4Plyu9g)P5Tr3Mkir6
z+g<jto1)VeeO7ywk=4)k?flR7`ovx7<7Yee`r-ZKm_%F1=-xBF=!0<mz>k5W=-9EJ
zY@hsWmkDnCmf(Gxjnoj`m@m4=#pb0u4bg|*XZ@<}BdT$0>fBpD@KNpN<pH39eWf+|
zaclD1RtWY<0gZkNzFoVy+W9^Setn-Hn$O%!f~afzybSE-t9ycN7JBm9ogkZLk&Z_t
z$CcLVi-9NMDyR@Mf`-+5TJ;s1%yDm28YJrN{En|X;!pC8dJ_mlUR8D0!G}!U&_SB3
zTWv99f}UuLfmCLEG5lMVySmB)qsofAAqFVz;JDbjbh{yj(1)ylqgkKWhD@K$h`B2-
zt9WrvT9}(VmYO>0E*G6j>ZtXcH8cIfkw76jz-NWT-aSpRi^<rbiQRjy;X_RUJIn^i
zS3J$`OMV!iduW$vB;udK2@u=U7%Y$Qq<v10?MsY9_Vc9enX&zS#v$`OX?uKDIxzor
z#vw~QjqK+}_7>xiBRpw)A>dB|>R_;J@TBeW&jSa>wh{iV?w~*KN0}3mzht5W{-PuS
zrYK3!t|%BR#-m_(Bxt9x3)H<>9yZP+dj;$<4E}wEWd=YL{ycEz(ebjMz|so8iIqk6
z5$gg5`~SiqMD`EsA_n6J)nm7WJ<DqtQF-44&i-r4U-l8$vcf-8xa=P=@|@+8>#SON
zDprbK(J2+{j#sQ!D7TPVJTaTeEzZxM5odE}XHR5Aj>=A{RLzrH_j2zP3og~G<+AIM
zTYkG(a%)s@gY|sPb*bjoVXC;ES6zcm%E4ff9efb_@O~gKZ-f7_4L+^z!CwORO!KT5
z_@se<WZ?S@yl3ECPtEgG92*Gpn>=&d;3;;7uvxjt{Yg2Gas53MLikO!{~(0x@8OFO
zuD^#{Azb%;D}?L5lT}|Uqvu$?TClEYt>%^-%X2S!WEC9GA#1r_Co9h#t^li4J=a=z
zB|BaBocsl{q`SM4J706ku1fd6mlPPdCE;Ik8W_tdv$)u+_DLI0hcI?vq%lmnt$ymi
zD)0fU9Lw)6%cH?UPhw>}{PJ84<yG$g$p179%=usApG7R^=Xb>vo&RwYgs$(e*JB1|
zx_<dD&(H4-bA{bEG@uhHa$P^2>lBoz`d?QK)$b11pI>Diuj?O`o4GesLBCe{`R(A?
ja6I#dYY&KCSN*@h8$&|Zk?(O-ysiF)ykW$$8jk-9CHBTh

literal 0
HcmV?d00001

diff --git a/src/affichage.c b/src/affichage.c
new file mode 100644
index 0000000..cb96d5f
--- /dev/null
+++ b/src/affichage.c
@@ -0,0 +1,26 @@
+#include<stdio.h>
+#include"tableau.h"
+/*affichage.c*/
+
+void affiche(pile** tableau, int N)
+{
+  int i,j,h;
+  for (i=0 ; i<N ; i++){
+    for (h=0 ; h<N ; h++){
+      printf("+--");
+      
+      if (h == N-1)printf("+\n");
+    }
+    for (j=0 ; j<N ; j++)
+      if (est_vide(tableau[i][j]))
+        printf("|  ");
+      else
+        printf("|%s", sommet(tableau[i][j]));
+    printf("|\n");
+  }
+  for (i=0 ; i<N ; i++ ){
+    printf("+--");
+    if (i == N-1) printf("+");
+  }
+  printf("\n");
+}
diff --git a/src/affichage.h b/src/affichage.h
new file mode 100644
index 0000000..04c6bee
--- /dev/null
+++ b/src/affichage.h
@@ -0,0 +1,14 @@
+#ifndef _AFFICHAGE
+#define _AFFICHAGE
+
+#include"tableau.h"
+/*affichage.h*/
+
+/*
+ * @require
+ * @assign
+ * @ensure effectue le rafraichissement de l'écran et l'affichage du jeu en terminal
+*/
+void affiche(pile **tableau, int N);
+
+#endif
diff --git a/stackchess.c b/src/main.c
similarity index 76%
rename from stackchess.c
rename to src/main.c
index 511b00d..ba9c7bf 100644
--- a/stackchess.c
+++ b/src/main.c
@@ -1,8 +1,10 @@
 #include"tableau.h"
+#include"affichage.h"
+/*main.c*/
 
 
-
-int main(int argc, char **argv){
+int main(int argc, char **argv)
+{
   int N = 6;
   if (argc != 1){
     N=strtol(argv[1],NULL,10);
diff --git a/src/tableau.c b/src/tableau.c
new file mode 100644
index 0000000..5c47002
--- /dev/null
+++ b/src/tableau.c
@@ -0,0 +1,72 @@
+#include<stdio.h>
+#include<stdlib.h>
+#include<string.h>
+
+#include"tableau.h"
+/*tableau.c*/
+
+pile **initialisation(int N)
+{
+  int i,j;
+  pile ** tableau;
+  tableau = (pile**) malloc(N*sizeof(pile*));
+  for (i=0 ; i<N ; i++){
+    tableau[i] =(pile*)malloc(N*sizeof(pile));
+    for (j=0 ; j<N ; j++)
+      tableau[i][j].sommet = NULL;
+  }
+  return tableau;
+}
+
+int est_vide(pile p)
+{
+  return p.sommet == NULL;
+}
+
+char *sommet(pile p)
+{
+  return p.sommet->chaine;
+} 
+
+
+void empiler(pile *p, char *elt)
+{
+  noeud* nouveau;
+  nouveau = (noeud*) malloc(sizeof(noeud));
+  nouveau->chaine = elt;
+  nouveau->next = p->sommet;
+  p->sommet = nouveau;
+}
+
+char *depiler(pile *p)
+{
+  if (! est_vide(*p)){
+    char *elt;
+    elt = p->sommet->chaine;
+    noeud* tmp = p->sommet;
+    p->sommet = p->sommet->next;
+    free(tmp);
+    return elt;
+  }
+  return NULL;
+}
+
+void reset(pile *p)
+{
+  while (p->sommet)
+    depiler(p);
+}
+
+void nettoyer(pile **tableau,int N)
+{
+  int i,j;
+  for (i=0 ; i<N ; i++){
+    for (j=0 ; j<N ; j++)
+      reset(&(tableau[i][j]));
+  }
+  for (i=0 ; i<N ; i++)
+    free(tableau[i]);
+  free(tableau);
+  
+}
+
diff --git a/src/tableau.h b/src/tableau.h
new file mode 100644
index 0000000..52be8e2
--- /dev/null
+++ b/src/tableau.h
@@ -0,0 +1,70 @@
+
+#ifndef _TABLEAU
+#define _TABLEAU
+
+#include<stdio.h>
+#include<stdlib.h>
+#include<string.h>
+/*tableau.h*/
+
+typedef struct _noeud noeud;
+struct _noeud{
+  char *chaine;
+  noeud* next;
+};
+
+typedef struct _pile pile;
+struct _pile{
+  noeud* sommet;
+};
+
+/*
+ @require 
+ @assign alloue un tableau de taille N*N
+ @ensure renvoie un tableau alloué de taille N*N dont les cases sont des piles 
+*/
+pile **initialisation(int N);
+
+/*
+ @require
+ @assign
+ @ensure retourne 1 si la pile est vide 0 sinon
+*/
+int est_vide(pile p);
+
+/*
+ @require
+ @assign
+ @ensure retourne la valeur du sommet de la pile 
+*/
+char *sommet(pile p);
+
+/*
+ @
+ @
+ @
+*/
+void empiler(pile *p, char *elt);
+
+/*
+ * @require
+ * @assign
+ * @ensure enlève le sommet de la pile p et le retourne
+*/
+char *depiler(pile *p);
+
+/*
+ * @require
+ * @assign
+ * @ensure remet une pile à zero
+*/
+void reset(pile *p);
+
+/*
+ * @require
+ * @assign
+ * @ensure nettoie la mémoire allouée au tableau 
+*/
+void nettoyer(pile **tableau,int N);
+
+#endif 
diff --git a/stackchess b/stackchess
new file mode 100755
index 0000000000000000000000000000000000000000..e5a9c2526ef9436324f0ba3dde332545833abdbc
GIT binary patch
literal 17192
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

literal 0
HcmV?d00001

-- 
GitLab