/* Fonction qui efface la queue du serpent lorsqu'il se déplace et augmente la taille du serpent lorsqu'il mange une pomme

   Written by Yann KERAUDREN and Titouan LERICHE */


#include <stdlib.h>
#include <stdio.h>
#include <graph.h>
#include <time.h>
#include "supp_queue.h"





void supp_queue( struct adresse* pointeur, unsigned char* retard, short int* compteur, unsigned long* acceleration, int numsprite)  {


  int** corps_serpent = pointeur -> corps_serpent;

  int** plateau = pointeur -> plateau;

  unsigned short* taille_serpent = pointeur -> taille_serpent;

  unsigned char* tete = pointeur -> tete;

  unsigned short* indice_queue = pointeur -> indice_queue; 


  int ligne_pomme, colonne_pomme, i;

  
  
  couleur green, red;


  srand(time(NULL));


	 

  /* teste si le serpent mange une pomme */

  if (plateau[tete[0]][tete[1]] == 2 )  {

    *retard = *retard + 2;

    *acceleration = *acceleration + 500L; 

    ajout_score(compteur);


    /* apparition de la nouvelle pomme */

      ligne_pomme = rand() % 40;
      colonne_pomme = rand() % 60;

      /* teste pour ne pas faire apparaître la pomme sur une case déjà occupée */
    
      while (plateau[ligne_pomme][colonne_pomme] == 2 || plateau[ligne_pomme][colonne_pomme] == 1)  {

	ligne_pomme = rand() % 40;
	colonne_pomme = rand() % 60;
      }

      plateau[ligne_pomme][colonne_pomme] = 2;

      green = CouleurParComposante(50,205,50);
      ChoisirCouleurDessin(green);
      RemplirRectangle(20*(colonne_pomme + 1),20*(ligne_pomme + 1),20,20);
      

      AfficherSprite(numsprite,20*(colonne_pomme + 1), 20*(ligne_pomme + 1));
      
    




  }

  if (*retard >0 ) {

      augmentation_serpent(pointeur);

      *retard = *retard - 1;




  }
  
  else {
  
    green = CouleurParComposante(50,205,50);
    ChoisirCouleurDessin(green);
    RemplirRectangle(20*(corps_serpent[*indice_queue][1]+1),20*(corps_serpent[*indice_queue][0]+1),20,20);

    corps_serpent[*indice_queue][0] = tete[0];
    corps_serpent[*indice_queue][1] = tete[1];


    *indice_queue = *indice_queue + 1;

  }







  if ( *indice_queue == *taille_serpent )  {

    *indice_queue = 0;

  }


}