neutron.c 1.71 KB
#include <stdio.h>
#define N 5

#define reset "\033[0m"
#define reverse "\033[7m"

#define rouge "\033[;31m"
#define vert "\033[;32m"
#define bleu "\033[;34m"

#define green 0
#define blue 1
#define red 2
#define empty -1

typedef struct d{
    int tab[N][N];
    int indi; //indice de ligne du neutron
    int indc; //indice de colonne du neutron
}damier;


//fonction qui initialise un damier
damier init(){
  damier d;
  int i,j;

  for(i=0;i<N;i++){
     for(j=0;j<N;j++){
       d.tab[i][j]=-1;
     }
  }
  
  for(j=0;j<N;j++){
    d.tab[0][j]=2;
  }
  
  for(j=0;j<N;j++){
    d.tab[4][j]=1;
  }
  
  
  d.tab[2][2]=0;

  d.indi=3;
  d.indc=3;

  return d;
}

void affichage(damier d){
    int i,j;
    for (i=0;i<N;i++){
         for (j=0;j<N;j++){
             if (d.tab[i][j]==green){
	       printf("%s%s   %s ",vert,reverse,reset);
             }
             else if (d.tab[i][j]==blue){
                 printf("%s%s   %s ",bleu,reverse,reset);
             }
             else if (d.tab[i][j]==red){
                 printf("%s%s   %s ",rouge,reverse,reset);
             }
             else{
                 printf("    ");
             }
         }
         printf("\n");
    }
}

/* dir : Donnée (donne la direction voulu par le joueur)
   i,j : Données,indice de ligne et de colonne du pion qu'on veut déplacer
   d: D/R
*/

void dep(int i,int j,int dir,damier *d){
  int temp;
  i=N-i;
  j=j-1;
  if (dir==1){
    while ((i>=0) && ((d->tab[i-1][j])!=empty)){
      temp=d->tab[i][j];
      (d->tab[i][j])=(d->tab[i-1][j]);
      (d->tab[i-1][j])=temp;
      i=i-1;
    }
  }

}
    

int main(){
  
  damier d;
  d=init();
  affichage(d);
  printf("\n\n");
  dep(1,1,1,&d);
  affichage(d);
  return 0;
}