2023-12-12 19:55:28 +01:00

159 lines
2.4 KiB
C

/* Fonctions qui prend en argument le plateau de jeu et le modifie en fonction des déplacements du serpent
Written by Yann KERAUDREN and Titouan LERICHE */
#include <stdlib.h>
#include <stdio.h>
#include <graph.h>
#include "plateau_init.h"
#include "update_queue.h"
#include "deplacement.h"
void deplacement (struct adresse* pointeur, unsigned char* sens) {
int** plateau = pointeur -> plateau;
unsigned char* tete = pointeur -> tete;
unsigned char* queue = pointeur -> queue;
couleur green, yellow;
green = CouleurParComposante(50,205,50);
yellow = CouleurParComposante(255,255,0);
/* affectations des commandes aux touches du jeu */
if (ToucheEnAttente() == 1) {
if (Touche() == XK_Left) {
plateau[tete[0]][tete[1]] = 0;
plateau[tete[0]][tete[1] - 1] = 1;
plateau[queue[0]][queue[1]] = 0;
tete[1] = tete[1] - 1;
*sens = GAUCHE;
}
if (Touche() == XK_Right) {
plateau[tete[0]][tete[1]] = 0;
plateau[tete[0]][tete[1] + 1] = 1;
plateau[queue[0]][queue[1]] = 0;
tete[1] = tete[1] + 1;
*sens = DROITE;
}
if (Touche() == XK_Up) {
plateau[tete[0]][tete[1]] = 0;
plateau[tete[0] - 1][tete[1]] = 1;
plateau[queue[0]][queue[1]] = 0;
tete[0] = tete[0] - 1;
*sens = HAUT;
}
if (Touche() == XK_Down) {
plateau[tete[0]][tete[1]] = 0;
plateau[tete[0] + 1][tete[1]] = 1;
plateau[queue[0]][queue[1]] = 0;
tete[0] = tete[0] + 1;
*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;
}
/* mise à jour de la position de queue dans le plateau */
}
}
}