/* Fonction qui sert à aggrandir la taille du serpent lorsque celui-ci mange une pomme Written by Yann KERAUDREN and Titouan LERICHE */ #include <stdlib.h> #include <stdio.h> #include "augmentation_serpent.h" void augmentation_serpent (struct adresse* pointeur) { int** corps_serpent = pointeur -> corps_serpent; unsigned short* indice_queue = pointeur -> indice_queue; unsigned char* tete = pointeur -> tete; unsigned short* taille_serpent = pointeur -> taille_serpent; int** corps_serpent2 = NULL; int i; /* augmentation de la taille du serpent */ *taille_serpent = *taille_serpent + 1; /* création d'un nouveau tableau */ corps_serpent2 = malloc( *taille_serpent * sizeof(int*)); for ( i = 0; i < *taille_serpent; i++) { corps_serpent2[i] = malloc( 2 * sizeof(int)); } /* attributions des anciennes cases du corps dans le nouveau tableau et ajout de la nouvelle tête au bonne endroit*/ for ( i = 0 ; i < *indice_queue; i++) { corps_serpent2[i][0]= corps_serpent[i][0] ; corps_serpent2[i][1]= corps_serpent[i][1] ; } corps_serpent2[*indice_queue][0] = tete[0]; corps_serpent2[*indice_queue][1] = tete[1]; for ( i = *indice_queue ; i < *taille_serpent - 1; i++) { corps_serpent2[i+1][0] = corps_serpent[i][0]; corps_serpent2[i+1][1] = corps_serpent[i][1]; } *indice_queue = *indice_queue + 1; pointeur -> corps_serpent = corps_serpent2; for ( i = 0; i < *taille_serpent - 1; i++) { free( corps_serpent[i]); } free(corps_serpent); }