137 lines
1.9 KiB
C
Raw Normal View History

/* 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 <graphe.h>
#include "plateau_init.h"
2023-12-08 14:27:14 +01:00
#include "update_queue.h"
2023-12-08 11:15:39 +01:00
2023-12-11 16:19:17 +01:00
void deplacement(int** p, int* tete, int* queue) {
2023-12-10 00:36:22 +01:00
/* affectations des commandes aux touches du jeu */
if (TouchEnAttente() == 1) {
2023-12-10 22:51:36 +01:00
if (Touche() == XK_Left) {
p[tete[0]][tete[1]] = 0;
2023-12-07 16:16:15 +01:00
2023-12-08 14:27:14 +01:00
p[tete[0]][tete[1] - 1] = 1;
2023-12-07 16:16:15 +01:00
p[queue[0]][queue[1]] = 0;
2023-12-08 11:15:39 +01:00
tete[1] = tete[1] - 1;
2023-12-11 16:19:17 +01:00
sens = "gauche";
2023-12-08 14:27:14 +01:00
}
2023-12-10 22:51:36 +01:00
if (Touch() == XK_Right) {
2023-12-08 14:27:14 +01:00
p[tete[0]][tete[1]] = 0;
p[tete[0]][tete[1] + 1] = 1;
p[queue[0]][queue[1]] = 0;
tete[1] = tete[1] + 1;
2023-12-11 16:19:17 +01:00
sens = "droite";
2023-12-08 14:27:14 +01:00
}
2023-12-11 16:19:17 +01:00
if (Touch() == XK_Up) {
2023-12-08 14:27:14 +01:00
p[tete[0]][tete[1]] = 0;
2023-12-07 16:16:15 +01:00
2023-12-08 14:27:14 +01:00
p[tete[0] - 1][tete[1]] = 1;
p[queue[0]][queue[1]] = 0;
tete[0] = tete[0] - 1;
2023-12-11 16:19:17 +01:00
sens = "haut";
2023-12-08 14:27:14 +01:00
}
2023-12-11 16:19:17 +01:00
if (Touch() == XK_down) {
2023-12-08 14:27:14 +01:00
p[tete[0]][tete[1]] = 0;
p[tete[0] + 1][tete[1]] = 1;
p[queue[0]][queue[1]] = 0;
2023-12-11 16:19:17 +01:00
tete[0] = tete[0] + 1;
sens = "bas";
}
else {
if ( strcmp(sens,"bas") == 1) {
p[tete[0] + 1][tete[1]] = 1;
p[queue[0]][queue[1]] = 0;
tete[0] = tete[0] + 1;
}
if ( strcmp(sens, "haut") ==1) {
p[tete[0] - 1][tete[1]] = 1;
p[queue[0]][queue[1]] = 0;
tete[0] = tete[0] -1;
}
if ( strcmp(sens, "droite") ==1) {
p[tete[0]][tete[1] + 1] = 1;
p[queue[0]][queue[1]] = 0;
tete[1] = tete[1] + 1;
}
if ( strcmp(sens, "gauche") ==1) {
p[tete[0]][tete[1] - 1] = 1;
p[queue[0]][queue[1]] = 0;
tete[1] = tete[1] - 1;
}
2023-12-08 11:15:39 +01:00
2023-12-08 14:27:14 +01:00
/* mise à jour de la position de queue dans le plateau */
maj_queue(queue, p);
2023-12-07 16:16:15 +01:00
}
}
2023-12-08 14:27:14 +01:00
return p;
}
2023-12-07 16:16:15 +01:00