début du déplacement du serpent

This commit is contained in:
Yann KERAUDREN 2023-12-13 19:29:11 +01:00
parent 0bb700e33c
commit 8cec4edd14
4 changed files with 65 additions and 54 deletions

@ -29,6 +29,62 @@ void deplacement (struct adresse* pointeur, unsigned char* sens) {
yellow = CouleurParComposante(255,255,0);
printf("%d %d", queue[0], queue[1]);
if ( *sens == BAS) {
plateau[tete[0] + 1][tete[1]] = 1;
plateau[queue[0]][queue[1]] = 0;
tete[0] = tete[0] + 1;
ChoisirCouleurDessin(yellow);
RemplirRectangle(20*(tete[1] + 1),20*(tete[0] +1 ),20,20);
ChoisirCouleurDessin(green);
RemplirRectangle(20*(queue[1] +1 ),20*(queue[0] +1 ),20,20);
queue[0] = queue[0] + 1;
}
if ( *sens == HAUT) {
plateau[tete[0] - 1][tete[1]] = 1;
plateau[queue[0]][queue[1]] = 0;
tete[0] = tete[0] -1;
}
if ( *sens == DROITE) {
plateau[tete[0]][tete[1] + 1] = 1;
plateau[queue[0]][queue[1]] = 0;
tete[1] = tete[1] + 1;
}
if ( *sens == GAUCHE) {
plateau[tete[0]][tete[1] - 1] = 1;
plateau[queue[0]][queue[1]] = 0;
tete[1] = tete[1] - 1;
}
/* affectations des commandes aux touches du jeu */
@ -89,55 +145,9 @@ void deplacement (struct adresse* pointeur, unsigned char* sens) {
*sens = DROITE;
}
}
else {
if ( *sens == BAS) {
plateau[tete[0] + 1][tete[1]] = 1;
plateau[queue[0]][queue[1]] = 0;
tete[0] = tete[0] + 1;
ChoisirCouleurDessin(yellow);
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
ChoisirCouleurDessin(green);
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
}
if ( *sens == HAUT) {
plateau[tete[0] - 1][tete[1]] = 1;
plateau[queue[0]][queue[1]] = 0;
tete[0] = tete[0] -1;
}
if ( *sens == DROITE) {
plateau[tete[0]][tete[1] + 1] = 1;
plateau[queue[0]][queue[1]] = 0;
tete[1] = tete[1] + 1;
}
if ( *sens == GAUCHE) {
plateau[tete[0]][tete[1] - 1] = 1;
plateau[queue[0]][queue[1]] = 0;
tete[1] = tete[1] - 1;
}
@ -145,12 +155,12 @@ void deplacement (struct adresse* pointeur, unsigned char* sens) {
/* mise à jour de la position de queue dans le plateau */
}
}
}

Binary file not shown.

@ -51,6 +51,8 @@ int main(void) {
deplacement(pointeur, sens);
suivant = Microsecondes() + CYCLE;
}

@ -20,7 +20,6 @@ struct adresse* plateau_init(void) {
int** plateau = NULL;
struct adresse plateau_tete_queue = {NULL, NULL, NULL};
struct adresse* pointeur = NULL;
@ -55,12 +54,12 @@ struct adresse* plateau_init(void) {
/* positionnement du serpent et marquage de la tete et la queue */
tete[0] = (LIGNES/2)-5 ;
tete[0] = ((LIGNES/2)+(TAILLE_SERPENT/2)-1);
tete[1] = COLONNES/2 ;
queue[0] = ((LIGNES/2)-5)+TAILLE_SERPENT-1;
queue[0] = ((LIGNES/2)-(TAILLE_SERPENT/2));
queue[1] = COLONNES/2;
for (i = 0; i < TAILLE_SERPENT ; i++) {