Esempio n. 1
0
int main(void) {

  srand((unsigned int)time(NULL));
  int snake[TAILLE_SNAKE][2],
      len_snake=10,
      pommes[TAILLE_POMME][2],
      len_pommes=5,
      direction[2]={0,-1},
      score=0,
      done=0;
  const unsigned long int tempsDepart=Microsecondes();
  unsigned long int prochainAffichage=0,prochainDeplacement=0;
  initSnake(snake,len_snake);
  initPommes(pommes, len_pommes, snake, len_snake);
  InitialiserGraphique();
  CreerFenetre(BORD,BORD,60*TAILLE_CASE+2*BORD,40*TAILLE_CASE+BORD+40);
  ChoisirEcran(1);


  /*EffacerEcran(CouleurParNom("black"));
  */
  while(!done){
    if(Microsecondes()>prochainAffichage){
      printScreen(snake, len_snake,  pommes, len_pommes, tempsDepart, score);
      prochainAffichage=Microsecondes()+CYCLE;
    }
    GestionTouche(snake, direction, &done);
    if(Microsecondes()>prochainDeplacement){
      DeplacementSnake(snake, len_snake, direction);
      CheckCollisionBord(snake);
      CheckCollisionPomme(len_pommes, pommes, snake, len_snake, &score);
      prochainDeplacement=Microsecondes()+100000;
    }
  }
}
Esempio n. 2
0
int main(void) {
  int snake[300][2],
      len_snake=10,
      pommes[20][2],
      len_pommes=5,
      i;
  unsigned long int temps = Microsecondes();
  initSnake(snake);
  initPommes(pommes);
  
  srand(time(NULL));
  InitialiserGraphique();
  CreerFenetre(BORD,BORD,600+2*BORD,400+BORD+40);

  printTerrain(snake, len_snake, pommes, len_pommes);
  printTime(temps);
    
  Touche();
  FermerGraphique();
  return EXIT_SUCCESS;
}
Esempio n. 3
0
int main(void) {

  srand((unsigned int)time(NULL));
  int snake[TAILLE_SNAKE][2],
      len_snake=10,
      pommes[TAILLE_POMME][2],
      len_pommes=5,
      direction[2]={0,-1},
      score=0,
      done=0;
  unsigned long int tempsDepart=Microsecondes(), tempsActuel,tempsTmp;
  unsigned long int prochainAffichage=0,prochainDeplacement=0;
  initSnake(snake,len_snake);
  initPommes(pommes, len_pommes, snake, len_snake);
  InitialiserGraphique();
  CreerFenetre(BORD,BORD,60*TAILLE_CASE+2*BORD,40*TAILLE_CASE+BORD+40);
  ChoisirEcran(1);/*on dessine tout dans un ecran virtuel (cela joue le role de buffer)
                    puis dans la fonction printScreen on copie l'ecran virtuel sur l'ecran reel*/


  while(!done){
    tempsActuel=Microsecondes();
    if(Microsecondes()>prochainAffichage){
      printScreen(snake, len_snake,  pommes, len_pommes, tempsDepart,tempsActuel, score);
      prochainAffichage=Microsecondes()+CYCLE;
    }
    tempsTmp=Microsecondes();
    GestionTouche(snake, direction, &done);
    tempsDepart+=Microsecondes()-tempsTmp;
    if(Microsecondes()>prochainDeplacement){
      DeplacementSnake(snake, len_snake, direction);
      CheckCollisionBord(snake, &done);
      CheckCollisionQueue(snake,len_snake,&done);
      CheckCollisionPomme(len_pommes, pommes, snake, &len_snake, &score);
      prochainDeplacement=Microsecondes()+50000;
    }
  }
  FermerGraphique();
  return EXIT_SUCCESS;
}
Esempio n. 4
0
int main(void) {
  
  srand((unsigned int)time(NULL));
  int snake[TAILLE_SNAKE][2],
      len_snake=10,
      pommes[20][2],
      len_pommes=10,
      direction[2]={0,-1};
  const unsigned long int tempsDepart=Microsecondes();
  unsigned long int prochainAffichage=0,prochainDeplacement=0;
  initSnake(snake);
  initPommes(pommes);

  InitialiserGraphique();
  CreerFenetre(BORD,BORD,60*TAILLE_CASE+2*BORD,40*TAILLE_CASE+BORD+40);
  ChoisirEcran(1);


  /*EffacerEcran(CouleurParNom("black"));
  */
  while(1){
    if(Microsecondes()>prochainAffichage){

      printScreen(snake, len_snake,  pommes, len_pommes, tempsDepart, 45 );
      prochainAffichage=Microsecondes()+CYCLE;
    }
    GestionTouche(snake,direction);
    VerificationBords(snake);
    if(Microsecondes()>prochainDeplacement){
      DeplacementSnake(snake,len_snake,direction);
      prochainDeplacement=Microsecondes()+100000;

    }
    if(ToucheEnAttente()==1 && Touche()==XK_Escape){
      FermerGraphique();
      return EXIT_SUCCESS;
    }
  }
}
Esempio n. 5
0
// Initialiser tout l'environnement graphique
int affichage_initialiser (void)
{
	int i;
	
	if( InitialiserGraphique() )
		return PROBLEME_AFFICHAGE;
	if( CreerFenetre( (Maxx()-W_FENETRE)/2, (Maxy()-W_FENETRE)/2, W_FENETRE, H_FENETRE ) )
		return PROBLEME_AFFICHAGE;
	
	EcrireTexte(300,H_FENETRE/2,"Chargement en cours...",2);
	
	liste_el=NULL;
	
	for(i=0;i<MAX_ELEMENT;i++)
		element[i] = 0;
	
	for(i=0;i<MAX_COULEUR;i++)
		palette[i] = 0;

	
	// On charge toutes les images
	
	/* mode d'emploi: 
	 * - On ajoute le NOM_DE_MON_ELEMENT dans le 'enum element_nom' de graphique.h
	 * - on charge l'image avec cette commande :
	 * element[NOM_DE_MON_ELEMENT] = charger_image_en_element ("LIEN_VERS_MON_ELEMENT",X_sur_l_image,Y_sur_l_image,LARGEUR,HAUTEUR);
	 * - A l'avenir nous utiliserons NOM_DE_MON_ELEMENT pour utiliser notre element
	 */
	
	
	

	element[EL_CASE_P0_BOMB] = charger_image_en_element ("gfx/mine_bleu.xpm",0,0,12,8);
	element[EL_CASE_P1_BOMB] = charger_image_en_element ("gfx/mine_rouge.xpm",0,0,12,8);
	element[EL_CASE_P0_VAR] = charger_image_en_element ("gfx/var_bleu.xpm",0,0,12,8);
	element[EL_CASE_P1_VAR] = charger_image_en_element ("gfx/var_rouge.xpm",0,0,12,8);
	element[EL_CASE_P0_KILL] = charger_image_en_element ("gfx/kill_bleu.xpm",0,0,12,8);
	element[EL_CASE_P1_KILL] = charger_image_en_element ("gfx/kill_rouge.xpm",0,0,12,8);
	
	element[EL_IND_G] = charger_image_en_element ("gfx/ind_g.xpm",0,0,30,28);
	element[EL_IND_D] = charger_image_en_element ("gfx/ind_d.xpm",0,0,30,28);
	
	element[EL_CHIFFRES] = charger_image_en_element ("gfx/chiffres.xpm",0,0,220,32);
	element[EL_CHIFFRES_BLEU] = charger_image_en_element ("gfx/chiffres_bleu.xpm",0,0,220,32);
	element[EL_CHIFFRES_ROUGE] = charger_image_en_element ("gfx/chiffres_rouge.xpm",0,0,220,32);

	element[EL_FLECHE_B] = charger_image_en_element ("gfx/fleche_b.xpm",0,0,50,50);
	element[EL_FLECHE_H] = charger_image_en_element ("gfx/fleche_h.xpm",0,0,50,50);
	element[EL_FLECHE_G] = charger_image_en_element ("gfx/fleche_g.xpm",0,0,50,50);
	element[EL_FLECHE_D] = charger_image_en_element ("gfx/fleche_d.xpm",0,0,50,50);
	
	element[EL_MODE1] = charger_image_en_element ("gfx/mode1.xpm",0,0,50,50);
	element[EL_MODE2] = charger_image_en_element ("gfx/mode2.xpm",0,0,50,50);
	element[EL_MODE3] = charger_image_en_element ("gfx/mode3.xpm",0,0,50,50);

	element[EL_RANK1] = charger_image_en_element ("gfx/r1.xpm",0,0,30,30);
	element[EL_RANK2] = charger_image_en_element ("gfx/r2.xpm",0,0,30,30);
	element[EL_RANK3] = charger_image_en_element ("gfx/r3.xpm",0,0,30,30);
	
	element[EL_VS] = charger_image_en_element ("gfx/vs.xpm",0,0,100,67);

	element[EL_LOGO] = charger_image_en_element ("gfx/logo.xpm",0,0,400,80);
	
	// On charge toutes les couleurs dans la palette
	
	/* mode d'emploi: 
	 * - On ajoute le NOM_DE_MA_COULEUR dans le 'couleur_role' de graphique.h
	 * - on charge la couleur avec cette commande :
	 * palette[NOM_DE_MA_COULEUR] = CouleurParComposante(...); // ou CouleurParNom(...);
	 * - A l'avenir nous utiliserons NOM_DE_MA_COULEUR pour utiliser notre couleur
	 */
	
	palette[CLR_BACKGROUND] = hexa2couleur (0xFFFFFF);
	palette[CLR_TEXTE_DEFAUT] = hexa2couleur (0x9a662f);
	
	palette[CLR_TEXTE_INACTIF] = hexa2couleur(0xfac68f);
	palette[CLR_PROG0] = hexa2couleur(0x0000FF);
	palette[CLR_PROG1] = hexa2couleur(0xFF0000);
	
	palette[CLR_CASE_VIDE] = hexa2couleur(0xF0F0F0);
	palette[CLR_CASE_VIDE_CONTOUR] = hexa2couleur(0xdFdFdF);
	
	palette[CLR_CASE_P0] = hexa2couleur(0x9090FF);
	palette[CLR_CASE_P0_CONTOUR] = hexa2couleur(0x7070FF);
	
	palette[CLR_CASE_P1] = hexa2couleur(0xFF9090);
	palette[CLR_CASE_P1_CONTOUR] = hexa2couleur(0xFF7070);
	
	palette[CLR_CASE_IP0] = hexa2couleur(0x0000FF);
	palette[CLR_CASE_IP1] = hexa2couleur(0xFF0000);
	
	palette[CLR_TEXTE_INFO] = hexa2couleur(0x5a9a2f);
	
	palette[CLR_STEPBAR] = hexa2couleur (0x9a662f);
	palette[CLR_STEPBAR_BACK] = hexa2couleur (0xDEB080);
	
	palette[CLR_LISTE_COMBATTANT_BACK] = hexa2couleur (0xEAE1D0);
	palette[CLR_LISTE_COMBATTANT_CONTOUR] = hexa2couleur (0xC8AC89);
	palette[CLR_TEXTE_COMBATTANT] = hexa2couleur (0xB27B55);
	
	
	
	for(i=0;i<MAX_ELEMENT;i++)
		if(element[i]==0)
			fprintf(stderr,"attention: l'image de l'element %d n'a pas chargee\n",i);
	
	ChoisirCurseur (0);
		
	return 0;
}
Esempio n. 6
0
int main() // Fonction principale
{
  int carre = NB_PIXEL_X_JEU/60;
  unsigned long suivant;
  suivant= Microsecondes()+delta;
  int i = 0;
  int etatJeu = 1;
  int score = 0;
  int direction = 0;
  int seconde = 0;
  int minute = 0;
  int tailleSerpent = 10;
  Coordonnees serpent[20];
  serpent[0].x = CENTRE_X_GRILLE;
  serpent[0].y = CENTRE_Y_GRILLE;
  Coordonnees queue;
  Pomme tabPomme[NB_POMME] = {};
  Obstacles tabObstacle[NB_OBSTACLE] = {};
  Coordonnees tete;
  InitialiserGraphique();
  CreerFenetre(10,10,NB_PIXEL_X_FENETRE,NB_PIXEL_Y_FENETRE);
  while(etatJeu){
    InitialiserVariable(&score,&direction,&tailleSerpent,&seconde,&minute,serpent);
    for (i = 0 ; i < NB_POMME; i++) // Initialisation du serpent
      {
	tabPomme[i].x = -1;
	tabPomme[i].y = -1;
	tabPomme[i].flagP = 0;
      }
    for (i = 1 ; i < TAILLE_MAX_SNAKE; i++) // Initialisation du serpent
      {
	serpent[i].x = -1;
	serpent[i].y = -1;
      }
    NettoyerEcran();
    RemplirRectangle(0,NB_PIXEL_Y_JEU,1080,carre*3); // Bande noir en bas
    for(i = 0; i < tailleSerpent; i++)
      {
	ChoisirCouleurDessin(CouleurParComposante(27,94,32));
	RemplirRectangle(serpent[i].x*carre,serpent[i].y*carre,carre,carre);
      }
    AfficherScore(score);
    AfficherTemps(seconde,minute,carre,&score);
    CreerObstacles(carre,tabObstacle);
    while(ToucheEnAttente() != 1)
      {
      }
    while(1)//Boucle principale
      {
	// DessinerGrille(carre);
	direction = DirectionSerpent(direction);
	if (Microsecondes()>suivant) // Si une seconde est passé
	  {
	    suivant=Microsecondes()+delta;
	    seconde++;
	    if(seconde == 60){
	      seconde = 0;
	      minute++;
	    }
	    AfficherTemps(seconde,minute,carre,&score);
	  }
	queue = DeplacerSerpent(carre,direction,serpent,tailleSerpent);
	tete = serpent[0];
	tailleSerpent = VerifieManger(&score,tete,tabPomme,tailleSerpent);
	CreerPomme(carre,tabPomme,tabObstacle,tailleSerpent,serpent);
	if(VerifieCollisionSerpent(tete,serpent,tailleSerpent,tabObstacle)){// Touche un mur => GAME OVER
	  break;
	}
	AfficherSerpent(serpent,tailleSerpent,carre,queue);
      }
    while(ToucheEnAttente() != 1)
      { 
	ChoisirCouleurDessin(CouleurParNom("red"));
	EcrireTexte(340,260,"Vous avez perdu !",2);	
	EcrireTexte(120,290,"Appuyez sur n'importe quelle touche pour recommencer",2);
	EcrireTexte(260,320,"Appuyez sur Echap pour quitter",2);	
      }
    if(Touche() == XK_Escape)
      {
	break;
      }
  }
  FermerGraphique();
  return EXIT_SUCCESS;
}