Exemple #1
0
void plateau(plateau_t *p)
{
	init_tableau(p); /*On initialise un tableau ou on place des murs , le perso , la caisse et le point d'arrive*/
	placer_mur(p);
	placer_robot(p);
	placer_caisse(p);
	placer_arrive(p);
}
Exemple #2
0
int main()
{


// Debut du code
int p,min;
init_tableau();
//p=produit_t();
min=minimum();
//printf("%d\n%d",p,min);
decale();
insert();


// Fin du code


exit(0);
}
Exemple #3
0
int main (int argc , char** argv){

   int ilargeur,ihauteur,nbserpents,temps_attente;

/* recuperation des arguments de la commande */

  if (argc !=4)  /* teste si le nombre d'arguments est egale a celui specifier pour snake */
    {
      printf("entrer tout vos arguments\n");
    }
  if(argv[0][0]=='.')
    {
      sscanf(argv[1],"%dx%d",&ihauteur,&ilargeur);
      sscanf(argv[2],"%d",&nbserpents);
      sscanf(argv[3],"%d",&temps_attente);
    }
 printf("ilargeur = %d\n",ilargeur);
 printf("ihauteur = %d\n",ihauteur);
 printf("nbserpents = %d\n",nbserpents);
 printf("temps d'attente = %d\n",temps_attente);
 
serpent stab[nbserpents];

/* initialisation de l'environnement */

 char cEchiquier [ihauteur*ilargeur];
 int blocage [nbserpents];
 int somme_blocage=0;
 int t;
 for(t=0; t < nbserpents; t++){
          blocage[t]=0;
          }

init_tableau( ihauteur, ilargeur, cEchiquier);

/* Generation et placement des serpents */

 int k,dir;
 srand(time(NULL));

 for(k=0;k<nbserpents;k++){

   stab[k].xposition= rand()%ihauteur ;
   stab[k].yposition= rand()%ilargeur;
   dir=rand()%3;

    /* Trouver le sens de direction */

    switch(dir)
      {
      case 0 : stab[k].sens=haut; 
	break;
      case 1 : stab[k].sens=bas; 
	break;
      case 2 : stab[k].sens=droite; 
	break;
      case 3 : stab[k].sens=gauche; 
	break;
      }

   printf("%c\n",stab[k].sens); 
   printf("%d\n",stab[k].xposition);
   printf("%d\n",stab[k].yposition);
   cEchiquier[stab[k].xposition*ilargeur+stab[k].yposition]=stab[k].sens; /* Placement du serpent dans le tableau d affichage */
 }

 init_environnement( ihauteur, ilargeur,cEchiquier);    /* affichage */
 
 while(somme_blocage != nbserpents){      /* teste si tout les serpents sont bloqués ou pas */

   for(k=0;k<nbserpents;k++){             /* boucle gerant les deplacements des serpents */
                            switch(stab[k].sens){
                                        case haut : blocage[k]=depl_sens_haut(ihauteur,ilargeur,&stab[k],cEchiquier);
                                        break;
                                        case bas: blocage[k]=depl_sens_bas(ihauteur,ilargeur,&stab[k],cEchiquier) ;
                                        break;
                                        case droite : blocage[k]=depl_sens_droite(ihauteur,ilargeur,&stab[k],cEchiquier) ; 
                                        break;
                                        case gauche : blocage[k]=depl_sens_gauche(ihauteur,ilargeur,&stab[k],cEchiquier);
                                        break;
                                        }
                     }
                      int t;
                      somme_blocage=0;
                      for(t=0; t < nbserpents; t++){
			somme_blocage=somme_blocage+blocage[t]; /* calcul de la variable somme_blocage */
                               }
		      attente(temps_attente); /* temporisation */
		      system( CLRSCR );        /* effacement de l'ecran */
                      init_environnement( ihauteur, ilargeur,cEchiquier); /* affichage du tableau a l'etat suivant (initial+1)*/

                     }

               /* statisques du programme */

 int gh;
 int gl;
 int ha=0;
 int ba=0;
 int dr=0;
 int ga=0;
 int occupe=0;
 int vide=0;
 for(gh=0;gh<ihauteur;gh++){
           for(gl=0;gl<ilargeur;gl++){
                                      if(cEchiquier[gh*ilargeur+gl]==haut){
                                                                           occupe=occupe+1;
                                                                           ha=ha+1;
                                                                           }
                                      else if(cEchiquier[gh*ilargeur+gl]==bas){
                                           occupe=occupe+1;
                                           ba=ba+1;
                                           }
                                      else if(cEchiquier[gh*ilargeur+gl]==droite){
                                           occupe=occupe+1;
                                           dr=dr+1;
                                           }
                                      else if(cEchiquier[gh*ilargeur+gl]==gauche){
                                           occupe=occupe+1;
                                           ga=ga+1;
                                           }
                                      else if (cEchiquier[gh*ilargeur+gl]==' '){
                                           vide=vide+1;
                                           }
                                      }
           }
 printf("%d\n",ihauteur*ilargeur);
 printf("%d\n",occupe);
 printf("%d\n",vide);

 float pourcentage,pourcentage1,pourcentage2,pourcentage3,pourcentage4;
 pourcentage= ((float)(occupe))/((float)(ilargeur*ihauteur))*100;
 printf("Le plateau est rempli a %0.1f (%d/%d) dont :\n",pourcentage,occupe,ilargeur*ihauteur);
 pourcentage1= ((float)(ha))/((float)(occupe))*100;   
 printf("- %0.1f '^' (%d/%d)\n",pourcentage1,ha,occupe);
 pourcentage2= ((float)(ba))/((float)(occupe))*100;
 printf("- %0.1f 'v' (%d/%d)\n",pourcentage2,ba,occupe);
 pourcentage3= ((float)(dr))/((float)(occupe))*100;
 printf("- %0.1f '>' (%d/%d)\n",pourcentage3,dr,occupe);
 pourcentage4= ((float)(ga))/((float)(occupe))*100;
 printf("- %0.1f '<' (%d/%d)\n",pourcentage4,ga,occupe);                                        
                                           
            
                          
 return 0;
   }                     /* fin du corps principale du programme */
Exemple #4
0
int main (int argc , char** argv)
{
  int largeur,hauteur,nbserpents,attente;

/*----------------- 1.recuperation des arguments de la commande---------------------------*/

  if (argc !=4)  /* test si le nombre d'arguments entres lors de l'exécution est egale a 4  */
    {
      printf("entrer tout vos arguments\n");
    }
  if(argv[0][0]=='.')
    {
      sscanf(argv[1],"%dx%d",&hauteur,&largeur);
      sscanf(argv[2],"%d",&nbserpents);
      sscanf(argv[3],"%d",&attente);
    }
 printf("largeur = %d\n",largeur);
 printf("hauteur = %d\n",hauteur);
 printf("nbserpents = %d\n",nbserpents);
 printf("temps d'attendre = %d\n",attente);
  
 /* ----------- 2. initialisation de l'environnement (tableau) qui permet l'enregistrement des serpents -------*/
 
 char tableau [hauteur*largeur];
 init_tableau( hauteur, largeur, tableau);

 /*------- initialisation de nombre de bloquage des serpents-------*/
  
 int bloque [nbserpents];
 int somme_bloque=0;
 int t;
 for(t=0; t < nbserpents; t++)
   {
    bloque[t]=0;
   }

 /* ----------------- 3.generation des directions aleatoires des serpents ----------*/
 
 serpent tab1[nbserpents]; /*declaration des la structure de tableau des serpents à afficher*/
 int k,sens1;
 srand(time(NULL));

 for(k=0;k<nbserpents;k++)
  {

   tab1[k].xposi= rand()%hauteur ; /* position du serpent suivent x */
   tab1[k].yposi= rand()%largeur;  /* position du serpent suivent y */
   sens1=rand()%3; /* sens de deplacement du serpent */

    /* Trouver le sens de direction */

    switch(sens1)
      {
      case 0 : tab1[k].sens=haut; 
	break;
      case 1 : tab1[k].sens=bas; 
	break;
      case 2 : tab1[k].sens=droite; 
	break;
      case 3 : tab1[k].sens=gauche; 
	break;
      }
   printf("%c\n",tab1[k].sens); 
   printf("%d\n",tab1[k].xposi);
   printf("%d\n",tab1[k].yposi);
   
   tableau[tab1[k].xposi*largeur+tab1[k].yposi]=tab1[k].sens; /* Placement des serpents dans l'environnement */
 }

 /* ------------------ 4. Affichage de cadre du tableau --------------------------------*/
 
 affichage_cadre( hauteur, largeur,tableau);   
 
 /* ------------------ 5. Deplacement des serpents dans l'environnement définie -------------------*/
 
 while(somme_bloque != nbserpents) /* on teste si les serpent sont tous bloqués */
   {      

    for(k=0;k<nbserpents;k++) /* cette branche permet  de gerer tous les deplacements des serpents */
	 {              
        switch(tab1[k].sens)
	   {
        case haut : bloque[k]=depl_sens_haut(hauteur,largeur,&tab1[k],tableau);
        break;
        case bas: bloque[k]=depl_sens_bas(hauteur,largeur,&tab1[k],tableau) ;
        break;
        case droite : bloque[k]=depl_sens_droite(hauteur,largeur,&tab1[k],tableau) ; 
        break;
        case gauche : bloque[k]=depl_sens_gauche(hauteur,largeur,&tab1[k],tableau);
        break;
       }
     }
 int t;
 somme_bloque=0;
 for(t=0; t < nbserpents; t++)
     {
	   somme_bloque=somme_bloque+bloque[t]; /* calcul de la variable somme_bloque */
     }
 attendre(attente); /* delai d'attente */
 system( CLRSCR );    /* effacer à chaque fois l'ecran*/
 affichage_cadre( hauteur, largeur,tableau); /* affichage du tableau a l'etat suivant (initial+1)*/

   } /* fin de while*/

  /* -------------6. statisques : pourcentage pour remplissage + chaque direction ------------------------------- */

 int gh; /* parcours en hauteur*/
 int gl; /* parcours en largeur*/
 int ha=0;  /* nombre de deplacement de la direction 'HAUT' */
 int ba=0;  /* nombre de deplacement de la direction 'BAS' */
 int dr=0;  /* nombre de deplacement de la direction 'DROITE' */
 int ga=0;  /* nombre de deplacement de la direction 'GAUCHE' */
 int occupe=0;  /* nombre de place occupé dans l'environnement(tableau) par tous les directions */
 int vide=0;    /* nombre de place vide*/
 
 for(gh=0;gh<hauteur;gh++){
           for(gl=0;gl<largeur;gl++){
                                      if(tableau[gh*largeur+gl]==haut){
                                                                           occupe=occupe+1;
                                                                           ha=ha+1;
                                                                           }
                                      else if(tableau[gh*largeur+gl]==bas){
                                           occupe=occupe+1;
                                           ba=ba+1;
                                           }
                                      else if(tableau[gh*largeur+gl]==droite){
                                           occupe=occupe+1;
                                           dr=dr+1;
                                           }
                                      else if(tableau[gh*largeur+gl]==gauche){
                                           occupe=occupe+1;
                                           ga=ga+1;
                                           }
                                      else if (tableau[gh*largeur+gl]==' '){
                                           vide=vide+1;
                                           }
                                      }
           }
 printf("%d\n",hauteur*largeur);
 printf("%d\n",occupe);
 printf("%d\n",vide);

 float pourcentage;  /* pourcenatge de remplissage de l'espace */
 float pourcentage1; /* pourcenatge de remplisssage de la direction HAUT*/
 float pourcentage2; /* pourcenatge de remplisssage de la direction BAS*/
 float pourcentage3; /* pourcenatge de remplisssage de la direction DROITE*/
 float pourcentage4; /* pourcenatge de remplisssage de la direction GAUCHE*/
 
 pourcentage= ((float)(occupe))/((float)(largeur*hauteur))*100;
 printf("Le plateau est rempli a %0.1f (%d/%d) dont :\n",pourcentage,occupe,largeur*hauteur);
 pourcentage1= ((float)(ha))/((float)(occupe))*100;   
 printf("- %0.1f '^' (%d/%d)\n",pourcentage1,ha,occupe);
 pourcentage2= ((float)(ba))/((float)(occupe))*100;
 printf("- %0.1f 'v' (%d/%d)\n",pourcentage2,ba,occupe);
 pourcentage3= ((float)(dr))/((float)(occupe))*100;
 printf("- %0.1f '>' (%d/%d)\n",pourcentage3,dr,occupe);
 pourcentage4= ((float)(ga))/((float)(occupe))*100;
 printf("- %0.1f '<' (%d/%d)\n",pourcentage4,ga,occupe);                  
                                           
                           
 return 0;
   }   /*---------------- Fin de programme principale ----------------*/