2023-12-18 00:30:29 +01:00
|
|
|
/* Fonction qui efface la queue du serpent lorsqu'il se déplace et augmente la taille du serpent lorsqu'il mange une pomme
|
2023-12-14 01:07:57 +01:00
|
|
|
|
|
|
|
Written by Yann KERAUDREN and Titouan LERICHE */
|
|
|
|
|
|
|
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <graph.h>
|
2023-12-17 04:09:38 +01:00
|
|
|
#include <time.h>
|
2023-12-14 01:07:57 +01:00
|
|
|
#include "supp_queue.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-19 13:34:32 +01:00
|
|
|
|
2023-12-23 16:23:43 +01:00
|
|
|
void supp_queue( struct adresse* pointeur, unsigned char* retard, short int* compteur, unsigned long* acceleration, int numsprite) {
|
2023-12-14 01:07:57 +01:00
|
|
|
|
|
|
|
|
2023-12-17 04:09:38 +01:00
|
|
|
int** corps_serpent = pointeur -> corps_serpent;
|
2023-12-14 01:07:57 +01:00
|
|
|
|
2023-12-17 04:09:38 +01:00
|
|
|
int** plateau = pointeur -> plateau;
|
|
|
|
|
|
|
|
unsigned short* taille_serpent = pointeur -> taille_serpent;
|
2023-12-14 01:07:57 +01:00
|
|
|
|
|
|
|
unsigned char* tete = pointeur -> tete;
|
|
|
|
|
2023-12-17 04:09:38 +01:00
|
|
|
unsigned short* indice_queue = pointeur -> indice_queue;
|
|
|
|
|
|
|
|
|
2023-12-18 00:30:29 +01:00
|
|
|
int ligne_pomme, colonne_pomme, i;
|
2023-12-14 01:07:57 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-17 04:09:38 +01:00
|
|
|
couleur green, red;
|
|
|
|
|
|
|
|
|
|
|
|
srand(time(NULL));
|
|
|
|
|
2023-12-23 16:23:43 +01:00
|
|
|
|
2023-12-18 00:30:29 +01:00
|
|
|
|
2023-12-14 01:07:57 +01:00
|
|
|
|
2023-12-17 04:09:38 +01:00
|
|
|
/* teste si le serpent mange une pomme */
|
|
|
|
|
|
|
|
if (plateau[tete[0]][tete[1]] == 2 ) {
|
|
|
|
|
2023-12-18 23:40:33 +01:00
|
|
|
*retard = *retard + 2;
|
2023-12-17 04:09:38 +01:00
|
|
|
|
2023-12-23 16:23:43 +01:00
|
|
|
*acceleration = *acceleration + 500L;
|
|
|
|
|
2023-12-19 13:34:32 +01:00
|
|
|
ajout_score(compteur);
|
|
|
|
|
2023-12-17 04:09:38 +01:00
|
|
|
|
2023-12-19 11:19:47 +01:00
|
|
|
/* apparition de la nouvelle pomme */
|
2023-12-17 04:09:38 +01:00
|
|
|
|
2023-12-18 23:40:33 +01:00
|
|
|
ligne_pomme = rand() % 40;
|
|
|
|
colonne_pomme = rand() % 60;
|
2023-12-17 04:09:38 +01:00
|
|
|
|
2023-12-18 23:40:33 +01:00
|
|
|
/* teste pour ne pas faire apparaître la pomme sur une case déjà occupée */
|
2023-12-17 04:09:38 +01:00
|
|
|
|
2023-12-18 23:40:33 +01:00
|
|
|
while (plateau[ligne_pomme][colonne_pomme] == 2 || plateau[ligne_pomme][colonne_pomme] == 1) {
|
2023-12-17 04:09:38 +01:00
|
|
|
|
2023-12-18 23:40:33 +01:00
|
|
|
ligne_pomme = rand() % 40;
|
|
|
|
colonne_pomme = rand() % 60;
|
|
|
|
}
|
2023-12-17 04:09:38 +01:00
|
|
|
|
2023-12-18 23:40:33 +01:00
|
|
|
plateau[ligne_pomme][colonne_pomme] = 2;
|
2023-12-17 04:09:38 +01:00
|
|
|
|
2023-12-23 16:23:43 +01:00
|
|
|
green = CouleurParComposante(50,205,50);
|
|
|
|
ChoisirCouleurDessin(green);
|
2023-12-18 23:40:33 +01:00
|
|
|
RemplirRectangle(20*(colonne_pomme + 1),20*(ligne_pomme + 1),20,20);
|
2023-12-23 16:23:43 +01:00
|
|
|
|
|
|
|
|
|
|
|
AfficherSprite(numsprite,20*(colonne_pomme + 1), 20*(ligne_pomme + 1));
|
|
|
|
|
2023-12-17 04:09:38 +01:00
|
|
|
|
2023-12-19 11:19:47 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (*retard >0 ) {
|
|
|
|
|
|
|
|
augmentation_serpent(pointeur);
|
|
|
|
|
|
|
|
*retard = *retard - 1;
|
|
|
|
|
|
|
|
|
2023-12-17 04:09:38 +01:00
|
|
|
|
|
|
|
|
|
|
|
}
|
2023-12-18 23:40:33 +01:00
|
|
|
|
2023-12-17 04:09:38 +01:00
|
|
|
else {
|
2023-12-14 01:07:57 +01:00
|
|
|
|
2023-12-17 04:09:38 +01:00
|
|
|
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;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-12-14 01:07:57 +01:00
|
|
|
|
|
|
|
if ( *indice_queue == *taille_serpent ) {
|
|
|
|
|
|
|
|
*indice_queue = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
2023-12-18 23:40:33 +01:00
|
|
|
|
2023-12-14 01:07:57 +01:00
|
|
|
|
|
|
|
|