From 7ca6077d0e1dbac1602123b5e6fbfbbe83f07eaf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc=20Dubard?= <loic.dubard@ensiie.fr>
Date: Fri, 9 Nov 2018 20:57:00 +0100
Subject: [PATCH] tableau en couleur

---
 .gitignore      |   1 +
 Makefile        |   6 +++++-
 obj/affichage.o | Bin 2288 -> 9776 bytes
 obj/main.o      | Bin 1872 -> 6912 bytes
 obj/tableau.o   | Bin 2728 -> 8616 bytes
 src/affichage.c |  55 +++++++++++++++++++++++++++++++++++++++++-------
 src/affichage.h |  13 ++++++++++--
 src/couleur.h   |  54 +++++++++++++++++++++++++++++++++++++++++++++++
 src/main.c      |   8 ++++---
 stackchess      | Bin 17192 -> 24464 bytes
 10 files changed, 123 insertions(+), 14 deletions(-)
 create mode 100644 src/couleur.h

diff --git a/.gitignore b/.gitignore
index cba7efc..4d37d30 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
 a.out
+obj/*
diff --git a/Makefile b/Makefile
index d7a105c..fb67bf3 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-CC=gcc -Wall -Wextra -ansi
+CC=gcc -Wall -Wextra -ansi -g -std=c99
 
 stackchess :  main.o tableau.o affichage.o
 	cd obj && $(CC) $^ -o ../$@
@@ -6,6 +6,10 @@ stackchess :  main.o tableau.o affichage.o
 main.o : src/main.c
 	$(CC) -c $< -o ./obj/$@
 
+
+affichage.o : src/affichage.c src/couleur.h
+	$(CC) -c $< -o ./obj/$@
+
 %.o: src/%.c src/%.h
 	$(CC) -c $< -o obj/$@
 
diff --git a/obj/affichage.o b/obj/affichage.o
index e86c05005ee87b10d46e42d89b070b9fa69fc406..03ac6e4ac6746c821f36950b76d322066814e47e 100644
GIT binary patch
literal 9776
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

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

diff --git a/obj/main.o b/obj/main.o
index 83f308b5febfbd49ff1ad342670fcc623cd4076c..74d76029f69338a80620f4437b9ae73dffa108d1 100644
GIT binary patch
literal 6912
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

delta 439
zcmZoLyTCU=LtKD`0S+9%EC&W&2A+xb!4n@?F#1iF=JFKk1c^KH3A8ae^Rh9u@UU}C
zJ}4?Rc>-4*BRh~KI$4EVYBC?U(Bu!2ER)Z0^DuT!zR6wB=sEczxA^1&9uHZDywsAC
z{L0iKumubZrcfGWH}~YbJmS1OK-QoC5D+q%kyqR!21yMsl58%LI3JRD9g;XdlKA8w
zB0-a9il$G#Aj&>TOabUNMKN<h24;xz2~b^JlQYHi8BYRzBR+Y9m<E*fK}>`7BuK^N
zMk(RR24Vt}8^l>Avq*|Cone?9C8@^fG}%#Hobe@C8&H}td@`fBIMWA)$+v)#L6aTD
z#6>4SZIXc51f)48>q=>hYA`~C8lW^ckjptaS4x|61rtOjX!1fSbIuh|6B2<gmj?hb
CCTko3

diff --git a/obj/tableau.o b/obj/tableau.o
index 1937f871456d0a771a097810b4fefb0042dba670..b62cc85da7d295b0582d0ad5ee5b138195cc5bb1 100644
GIT binary patch
literal 8616
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

delta 418
zcmZ4Cyh3z>rWiW|95{ek4h%dD+#Bt^nI?Dh$!=cGSI@}EHhH6r=wurKsmW>rLYp55
z<S;UFP4*QMm*fKK`12nEUP8@b0n%KPYk{)dNU|A>5NVJs|KznmSw1A$*GRGglkW<N
ztMDVqIx`{ZMG~JJA$@CdqfGkb12XKBU&urVo?wM2yaAyYI41|nPUkcP@<8SrOfHla
zXOx}1kzaW79eEyBE0Fl)hy22f%O^L=s!RDp)j@3o@*rRZ(_}$evB@(O1a!TCA|M|)
zKxE+L0yYS91yqC+NV8AAs-Ppl3=!D?^&r<|L3#1X8j2E}5m2{ggWVIOsKV(1jfzOH
Ih>R=`03zIAJpcdz

diff --git a/src/affichage.c b/src/affichage.c
index cb96d5f..7f8a9d3 100644
--- a/src/affichage.c
+++ b/src/affichage.c
@@ -1,26 +1,65 @@
 #include<stdio.h>
 #include"tableau.h"
+#include"affichage.h"
+#include"couleur.h"
 /*affichage.c*/
 
 void affiche(pile** tableau, int N)
 {
-  int i,j,h;
+  clrscr();
+  int i,j;
+  printf(" ");
+  for(i=0 ; i<N ; i++){
+    printf(" %c ",'a'+i);
+  }
+  printf("\n");
   for (i=0 ; i<N ; i++){
-    for (h=0 ; h<N ; h++){
+    printf(" ");
+    for (j=0 ; j<N ; j++){
       printf("+--");
-      
-      if (h == N-1)printf("+\n");
     }
+
+    printf("+\n%i",N-i);
     for (j=0 ; j<N ; j++)
-      if (est_vide(tableau[i][j]))
-        printf("|  ");
-      else
-        printf("|%s", sommet(tableau[i][j]));
+      printf( "|%s", est_vide(tableau[i][j]) ? "  " :  sommet(tableau[i][j]));
     printf("|\n");
   }
+  printf(" ");
   for (i=0 ; i<N ; i++ ){
     printf("+--");
     if (i == N-1) printf("+");
   }
   printf("\n");
 }
+
+void affichecouleur(pile **tableau, int N)
+{
+  clrscr();
+  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]));
+      }
+    printf("\n");
+  }
+  printf("\n");
+}
diff --git a/src/affichage.h b/src/affichage.h
index 04c6bee..d014779 100644
--- a/src/affichage.h
+++ b/src/affichage.h
@@ -2,13 +2,22 @@
 #define _AFFICHAGE
 
 #include"tableau.h"
+
 /*affichage.h*/
 
 /*
- * @require
- * @assign
+ * @require \nothing
+ * @assign \nothing
  * @ensure effectue le rafraichissement de l'écran et l'affichage du jeu en terminal
 */
 void affiche(pile **tableau, int N);
 
+/*
+ * @require \nothing
+ * @assign \nothing
+ * @ensure affiche le tableau en couleur 
+ */
+void affichecouleur(pile **tableau, int N);
+
+
 #endif
diff --git a/src/couleur.h b/src/couleur.h
new file mode 100644
index 0000000..1323b6d
--- /dev/null
+++ b/src/couleur.h
@@ -0,0 +1,54 @@
+#ifndef _COULEUR_
+#define _COULEUR_ 
+
+#include <stdio.h>
+
+
+
+/**
+ * @file couleur.h
+ * 
+ * Ce fichier décrit un ensemble de fonctions concernant l'affichage interactif et amélioré du jeu.
+ * Il contient 7 directives de préprocesseur.
+ * 
+ */
+
+
+/**
+ * @brief nettoyer l'écran
+ */
+#define clrscr() printf("\033[H\033[2J") 
+
+/**
+ * @brief couleur noire du background
+ */
+#define NOIR   "\x1B[48;2;0;0;0m"
+
+/**
+ * @brief couleur VERT des pions blancs
+ */
+#define PBLANCHE "\x1B[0;32m"
+
+/**
+ * @brief couleur ROUGE des pions noirs
+ */
+#define PNOIRE "\x1B[0;31m"
+
+/**
+ * @brief couleur blanche du background 
+ */
+
+#define BLANC   "\x1B[48;2;255;255;255m"
+
+/**
+ * @brief revenir à la couleur par defaut
+ */
+#define RESET "\x1B[0m"
+
+/**
+ * @brief cacher le curseur
+ */
+#define HIDE "\e["
+
+
+#endif
diff --git a/src/main.c b/src/main.c
index ba9c7bf..b6ee7fa 100644
--- a/src/main.c
+++ b/src/main.c
@@ -11,9 +11,11 @@ int main(int argc, char **argv)
   } 
   
   pile **tableau=initialisation(N);
-  empiler(&(tableau[0][0]), "RN");
-  affiche(tableau,N);
-
+  empiler(tableau[0]+1,"RB");
+  empiler(tableau[0], "RN");
+  empiler(tableau[0]+2,"DB");
+  empiler(tableau[0]+3,"DN");
+  affichecouleur(tableau,N);
   nettoyer(tableau,N);
   return 0;
 }
diff --git a/stackchess b/stackchess
index e5a9c2526ef9436324f0ba3dde332545833abdbc..20256850c324160244ebdf068f264d88be8c80b5 100755
GIT binary patch
literal 24464
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
EA8Z)k=>Px#

delta 1551
zcmZWpZA?>F7(VA#N~wI5meQh=eyJ3(fD$K+n6+wICB+H@F|aAy!a_FL!Zry@nnC14
zo3;!3{utT*NTP&H5=m}i*p`fsMHrb|Fw3?d@?$2tltChuN{DNB_nzJZ+2%=ZpL?G7
zd7t-v?>Xt<Bpn@~gLcDcCD~d|QckuLC&?$fuDm?2b|~eDLkU`1tR5BQ?Wh3N^jnM3
zEN}mhewikIC=`Ck(H~rU@?z`Q{H~A7Cf@yQIwkZ+JSeIZUuLAelR}6moUyh|{6>>b
z9mg=u6L7D3g6zS_p@K}t%thiD2{y!8An+?A-W1@dwv0AFr?yP6{0%p?pVNM*(tSd2
z!yVmB-r8T1)a#DZpgUgae(3)NGb1eTK3vPuLq<-jcWDJZ=iD*Y>hgY1_(<P&LMGTQ
z@-rp}-4A;sw89;`kdCqQ7>kT0J!9w@W1e^C+#5{3bcsNzVc*Vs2}$ao`bdZJ9a~m!
zVa~D>Tt<8M4UBsNvlw1fZ&tD-EjQ3|11+;c?GkFjM<!7adHU?%BV>hC7@KpmFF}^~
zp(wQFavznO{l+h-CyP)L8Tn7T|EG$<`R}q!JuKbT=sJBO@SCf_RqqY&*=r}H!4q~c
zeAN|5oCvIY3m<uUS5%(qgd$>kCf>@cRf>bk1;tf!O7}@p<ZzH8;y0U#f6s>m&zkO3
zRI($-!y>9xN%|hK3vm_kGU5<odsLECl#q2qJL2#YN%A62Af88@M+_lmtx3`t;`@kq
z5r+_05S=ke(%|jW4n38mQhZUZOHx<zI>LJvD~-SvONmha7-lScD|#MdF)X^dUci^v
z@Od4Z2{6)?sTmNCWhjNd^i&j@kzxbPg2ieRYNAkO%@>YG;cbLNQ5ZmIj>3pFpMC*%
ztR{LL9$9TxJGNYlt!=p}yp-7;N2(9`mNlrh9aXU@F5?vNpjs!6+sf7WDJg}Bqg>dX
zD_V=|@G1*tak09dA^``z#ncFIcnx$2fA#RG_iJ&g#!iLnR`~N|CyV(?1amH2^_`|O
zu;laYc%a3KxT<6zHms;6Sp?ncPVI*gpEhp_DGf0akCSUS{0R4a2D%8t_`3?xQ-;<A
zDzi~b%(7$~SEjR%k4JnaM<$Y!<7*D*GkFs?x!%V4alK5ma=wi5;1YDuQ)}#gg{v;<
z<ZvNZ)o^}+yJmBKHaS`*xrPn0#jZMA^;}=TeOi(%o;vaxl1I)sIl-Y#);E!U?wq_9
z7;NW8U-7~Qp3uqpab94Q^WDg23&!UP1fiqOka7c~RyHhkh{JUgRBWp+5a6QHDQX&9
z6vD+6_@JpcV|T7>mPF`K>R_s=lp3I;(FB@iP4;ttuW+EbBzwp#XKkWJ>}WO#uyEF>
m?<$o;ZK*P{`(F%+vqfpYAC{SEIB@Q8+VD&AE)_b?nf?JxnWU%y

-- 
GitLab