/* 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 #include #include #include "plateau_init.h" #include "update_queue.h" void deplacement(int** p, int* tete, int* queue) { /* affectations des commandes aux touches du jeu */ if (TouchEnAttente() == 1) { if (Touche() == XK_Left) { p[tete[0]][tete[1]] = 0; p[tete[0]][tete[1] - 1] = 1; p[queue[0]][queue[1]] = 0; tete[1] = tete[1] - 1; sens = "gauche"; } if (Touch() == XK_Right) { p[tete[0]][tete[1]] = 0; p[tete[0]][tete[1] + 1] = 1; p[queue[0]][queue[1]] = 0; tete[1] = tete[1] + 1; sens = "droite"; } if (Touch() == XK_Up) { p[tete[0]][tete[1]] = 0; p[tete[0] - 1][tete[1]] = 1; p[queue[0]][queue[1]] = 0; tete[0] = tete[0] - 1; sens = "haut"; } if (Touch() == XK_down) { p[tete[0]][tete[1]] = 0; p[tete[0] + 1][tete[1]] = 1; p[queue[0]][queue[1]] = 0; 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; } /* mise à jour de la position de queue dans le plateau */ maj_queue(queue, p); } } return p; }