ajout de la délimitation du terrain de jeu et coupure du jeu si le serpent se rentre dedans
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
|
||||
|
||||
|
||||
void deplacement (struct adresse* pointeur, unsigned char* sens) {
|
||||
unsigned char deplacement (struct adresse* pointeur, unsigned char* sens) {
|
||||
|
||||
|
||||
int** plateau = pointeur -> plateau;
|
||||
@@ -45,138 +45,307 @@ void deplacement (struct adresse* pointeur, unsigned char* sens) {
|
||||
touche = Touche();
|
||||
|
||||
if (touche == XK_Left) {
|
||||
|
||||
|
||||
|
||||
plateau[tete[0]][tete[1]] = 0;
|
||||
/* test de dépassement des limites du plateau de jeu */
|
||||
if ( tete[1] == 0) {
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* modificaton du plateau de jeu et affichage de la tête */
|
||||
else{
|
||||
|
||||
|
||||
plateau[corps_serpent[*indice_queue][0]][corps_serpent[*indice_queue][1]] = 0;
|
||||
plateau[corps_serpent[*indice_queue][0]][corps_serpent[*indice_queue][1]] = 0;
|
||||
|
||||
tete[1] = tete[1] - 1;
|
||||
tete[1] = tete[1] - 1;
|
||||
|
||||
|
||||
ChoisirCouleurDessin(yellow);
|
||||
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
|
||||
|
||||
/* test si le serpent se rentre dedans */
|
||||
if (plateau[tete[0]][tete[1]] == 1) {
|
||||
|
||||
return 0;
|
||||
|
||||
|
||||
*sens = GAUCHE;
|
||||
}else{
|
||||
|
||||
supp_queue(pointeur);
|
||||
|
||||
plateau[tete[0]][tete[1]] = 1;
|
||||
ChoisirCouleurDessin(yellow);
|
||||
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
|
||||
|
||||
|
||||
*sens = GAUCHE;
|
||||
|
||||
supp_queue(pointeur);
|
||||
|
||||
plateau[tete[0]][tete[1]] = 1;
|
||||
|
||||
|
||||
|
||||
return;
|
||||
return 1;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (touche == XK_Right) {
|
||||
|
||||
plateau[tete[0]][tete[1]] = 0;
|
||||
|
||||
|
||||
/* test de dépassement des limites du plateau de jeu */
|
||||
if (tete[1] == COLONNES - 1) {
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
plateau[corps_serpent[*indice_queue][0]][corps_serpent[*indice_queue][1]] = 0;
|
||||
|
||||
tete[1] = tete[1] + 1;
|
||||
/* modificaton du plateau de jeu et affichage de la tête */
|
||||
else{
|
||||
|
||||
|
||||
ChoisirCouleurDessin(yellow);
|
||||
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
|
||||
plateau[corps_serpent[*indice_queue][0]][corps_serpent[*indice_queue][1]] = 0;
|
||||
|
||||
tete[1] = tete[1] + 1;
|
||||
|
||||
|
||||
*sens = DROITE;
|
||||
|
||||
/* test si le serpent se rentre dedans */
|
||||
if ( plateau[tete[0]][tete[1]] == 1) {
|
||||
|
||||
supp_queue(pointeur);
|
||||
return 0;
|
||||
|
||||
plateau[tete[0]][tete[1]] = 1;
|
||||
|
||||
return;
|
||||
}else{
|
||||
|
||||
|
||||
ChoisirCouleurDessin(yellow);
|
||||
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
|
||||
|
||||
|
||||
*sens = DROITE;
|
||||
|
||||
supp_queue(pointeur);
|
||||
|
||||
plateau[tete[0]][tete[1]] = 1;
|
||||
|
||||
return 1;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (touche == XK_Up) {
|
||||
|
||||
plateau[tete[0]][tete[1]] = 0;
|
||||
|
||||
|
||||
/* test de dépassement des limites du plateau de jeu */
|
||||
if (tete[0] == 0) {
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
plateau[corps_serpent[*indice_queue][0]][corps_serpent[*indice_queue][1]] = 0;
|
||||
|
||||
tete[0] = tete[0] - 1;
|
||||
|
||||
|
||||
ChoisirCouleurDessin(yellow);
|
||||
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
|
||||
|
||||
/* modificaton du plateau de jeu et affichage de la tête */
|
||||
else{
|
||||
|
||||
|
||||
*sens = HAUT;
|
||||
plateau[corps_serpent[*indice_queue][0]][corps_serpent[*indice_queue][1]] = 0;
|
||||
|
||||
supp_queue(pointeur);
|
||||
tete[0] = tete[0] - 1;
|
||||
|
||||
|
||||
plateau[tete[0]][tete[1]] = 1;
|
||||
/* test si le serpent se rentre dedans */
|
||||
if (plateau[tete[0]][tete[1]] == 1) {
|
||||
|
||||
return;
|
||||
return 0;
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
|
||||
ChoisirCouleurDessin(yellow);
|
||||
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
|
||||
|
||||
|
||||
*sens = HAUT;
|
||||
|
||||
supp_queue(pointeur);
|
||||
|
||||
plateau[tete[0]][tete[1]] = 1;
|
||||
|
||||
return 1;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if (touche == XK_Down) {
|
||||
|
||||
plateau[tete[0]][tete[1]] = 0;
|
||||
|
||||
|
||||
/* test de dépassement des limites du plateau de jeu */
|
||||
if (tete[0] == LIGNES - 1) {
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
plateau[corps_serpent[*indice_queue][0]][corps_serpent[*indice_queue][1]] = 0;
|
||||
|
||||
tete[0] = tete[0] + 1;
|
||||
/* modificaton du plateau de jeu et affichage de la tête */
|
||||
else{
|
||||
|
||||
|
||||
ChoisirCouleurDessin(yellow);
|
||||
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
|
||||
plateau[corps_serpent[*indice_queue][0]][corps_serpent[*indice_queue][1]] = 0;
|
||||
|
||||
tete[0] = tete[0] + 1;
|
||||
|
||||
|
||||
*sens = BAS;
|
||||
|
||||
/* test si le serpent se rentre dedans */
|
||||
if (plateau[tete[0]][tete[1]] == 1) {
|
||||
|
||||
supp_queue(pointeur);
|
||||
return 0;
|
||||
|
||||
|
||||
plateau[tete[0]][tete[1]] = 1;
|
||||
|
||||
|
||||
return;
|
||||
}else{
|
||||
|
||||
|
||||
ChoisirCouleurDessin(yellow);
|
||||
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
|
||||
|
||||
|
||||
*sens = BAS;
|
||||
|
||||
supp_queue(pointeur);
|
||||
|
||||
plateau[tete[0]][tete[1]] = 1;
|
||||
|
||||
return 1;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
else {
|
||||
|
||||
if ( *sens == BAS) {
|
||||
|
||||
|
||||
plateau[corps_serpent[*indice_queue][0]][corps_serpent[*indice_queue][1]] = 0;
|
||||
/* test de dépassement des limites du plateau de jeu */
|
||||
if ( tete[0] == LIGNES - 1 ) {
|
||||
|
||||
tete[0] = tete[0] + 1;
|
||||
|
||||
|
||||
|
||||
ChoisirCouleurDessin(yellow);
|
||||
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
|
||||
|
||||
|
||||
supp_queue(pointeur);
|
||||
plateau[tete[0]][tete[1]] = 1;
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* modificaton du plateau de jeu et affichage de la tête */
|
||||
else {
|
||||
|
||||
|
||||
|
||||
plateau[corps_serpent[*indice_queue][0]][corps_serpent[*indice_queue][1]] = 0;
|
||||
|
||||
tete[0] = tete[0] + 1;
|
||||
|
||||
/* test si le serpent se rentre dedans */
|
||||
if (plateau[tete[0]][tete[1]] == 1) {
|
||||
|
||||
return 0;
|
||||
|
||||
}else{
|
||||
|
||||
|
||||
|
||||
ChoisirCouleurDessin(yellow);
|
||||
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
|
||||
|
||||
|
||||
supp_queue(pointeur);
|
||||
plateau[tete[0]][tete[1]] = 1;
|
||||
|
||||
return 1;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if ( *sens == HAUT) {
|
||||
|
||||
|
||||
plateau[corps_serpent[*indice_queue][0]][corps_serpent[*indice_queue][1]] = 0;
|
||||
/* test de dépassement des limites du plateau de jeu */
|
||||
if ( tete[0] == 0) {
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* modificaton du plateau de jeu et affichage de la tête */
|
||||
else{
|
||||
|
||||
|
||||
plateau[corps_serpent[*indice_queue][0]][corps_serpent[*indice_queue][1]] = 0;
|
||||
|
||||
tete[0] = tete[0] - 1;
|
||||
tete[0] = tete[0] - 1;
|
||||
|
||||
/* test si le serpent se rentre dedans */
|
||||
if (plateau[tete[0]][tete[1]] == 1) {
|
||||
|
||||
return 0;
|
||||
|
||||
}else{
|
||||
|
||||
|
||||
ChoisirCouleurDessin(yellow);
|
||||
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
|
||||
|
||||
ChoisirCouleurDessin(yellow);
|
||||
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
|
||||
|
||||
|
||||
supp_queue(pointeur);
|
||||
plateau[tete[0]][tete[1]] = 1;
|
||||
supp_queue(pointeur);
|
||||
plateau[tete[0]][tete[1]] = 1;
|
||||
|
||||
return 1;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -185,37 +354,89 @@ void deplacement (struct adresse* pointeur, unsigned char* sens) {
|
||||
if ( *sens == DROITE) {
|
||||
|
||||
|
||||
plateau[corps_serpent[*indice_queue][0]][corps_serpent[*indice_queue][1]] = 0;
|
||||
/* test de dépassement des limites du plateau de jeu */
|
||||
if ( tete[1] == COLONNES - 1) {
|
||||
|
||||
tete[1] = tete[1] + 1;
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
ChoisirCouleurDessin(yellow);
|
||||
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
|
||||
|
||||
/* modificaton du plateau de jeu et affichage de la tête */
|
||||
else{
|
||||
|
||||
|
||||
plateau[corps_serpent[*indice_queue][0]][corps_serpent[*indice_queue][1]] = 0;
|
||||
|
||||
tete[1] = tete[1] + 1;
|
||||
|
||||
|
||||
/* test si le serpent se rentre dedans */
|
||||
if (plateau[tete[0]][tete[1]] == 1) {
|
||||
|
||||
return 0;
|
||||
|
||||
}else{
|
||||
|
||||
|
||||
supp_queue(pointeur);
|
||||
plateau[tete[0]][tete[1]] = 1;
|
||||
ChoisirCouleurDessin(yellow);
|
||||
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
|
||||
|
||||
|
||||
supp_queue(pointeur);
|
||||
plateau[tete[0]][tete[1]] = 1;
|
||||
|
||||
return 1;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ( *sens == GAUCHE) {
|
||||
|
||||
|
||||
plateau[corps_serpent[*indice_queue][0]][corps_serpent[*indice_queue][1]] = 0;
|
||||
|
||||
tete[1] = tete[1] - 1;
|
||||
/* test de dépassement des limites du plateau de jeu */
|
||||
if (tete[1] == 0) {
|
||||
|
||||
|
||||
return 0;
|
||||
|
||||
ChoisirCouleurDessin(yellow);
|
||||
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* modificaton du plateau de jeu et affichage de la tête */
|
||||
else {
|
||||
|
||||
supp_queue(pointeur);
|
||||
plateau[tete[0]][tete[1]] = 1;
|
||||
|
||||
plateau[corps_serpent[*indice_queue][0]][corps_serpent[*indice_queue][1]] = 0;
|
||||
|
||||
tete[1] = tete[1] - 1;
|
||||
|
||||
|
||||
/* test si le serpent se rentre dedans */
|
||||
if (plateau[tete[0]][tete[1]] == 1) {
|
||||
|
||||
return 0;
|
||||
|
||||
}else{
|
||||
|
||||
|
||||
ChoisirCouleurDessin(yellow);
|
||||
RemplirRectangle(20*(tete[1]+1),20*(tete[0]+1),20,20);
|
||||
|
||||
|
||||
supp_queue(pointeur);
|
||||
plateau[tete[0]][tete[1]] = 1;
|
||||
|
||||
return 1;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user