mise à jour de l'évenement manger une pomme
This commit is contained in:
77
snake/augmentation_serpent.c
Normal file
77
snake/augmentation_serpent.c
Normal file
@@ -0,0 +1,77 @@
|
||||
/* 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 = 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] = corps_serpent[i] ;
|
||||
|
||||
}
|
||||
|
||||
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] = corps_serpent[i];
|
||||
|
||||
}
|
||||
|
||||
*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);
|
||||
|
||||
|
||||
}
|
Reference in New Issue
Block a user