Dev - C++ - Al precionar la flecha abajo no hace nada

 
Vista:
sin imagen de perfil
Val: 11
Ha aumentado su posición en 2 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Al precionar la flecha abajo no hace nada

Publicado por Emanuel (4 intervenciones) el 13/10/2020 02:36:47

Al presionar la flecha abajo la flecha no funciona



Hola, ya realice una pregunta anterior mente va este e vuelto a tener un problema al que busco una explicación es en el mismo programa(Es un juego de serpiente) va no voy a extender
explicación breve, al presionar la flecha abajo no funciona.

ya probé invertir y medio funciono pero abajo falla.

"No e avanzado mucho con el juego desde la ultima vez por motivos de tiempo"


Se agradece mucho la ayuda.

dejo el código aquí abajo.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include <windows.h>
#include <iostream>
#include <conio.h>
#include <stdlib.h>
 
#define ARRIBA     72        //NUMEROS ASOCIADOS A LAS FLECHAS.
#define IZQUIERDA  75
#define DERECHA    77
#define ABAJO      98
#define ESC        27
 
 
int cuerpo[200][2];
int n = 1;
int tam = 3;
int x = 10 , y = 12;
int dir = 5;
int xc = 30, yc = 15;
 
char tecla;
 
void gotoxy(int x, int y)     //funcion que posiciona el cursos e.
{
	HANDLE hCon;
	COORD dwPos;
 
	dwPos.X = x;
	dwPos.Y = y;
	hCon = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(hCon,dwPos);
}
 
void pintar(){
	//lineas horizontales
	for(int i = 2 ; i < 78 ; i++){
		gotoxy(i,3); printf("%c",205);
		gotoxy(i,23); printf("%c",205);
 
	}
	//lineas verticales
	for(int i = 4 ; i < 23 ; i++){
		gotoxy(2,i); printf("%c",186);
		gotoxy(77,i); printf("%c",186);
	}
	// esquina
	gotoxy(2,3); printf("%c",201);
	gotoxy(2,23); printf("%c",200);
	gotoxy(77,3); printf("%c",187);
	gotoxy(77,23); printf("%c",188);
 
}
 
void guardar_posicion(){
 
	cuerpo[n][0] = x;
	cuerpo[n][1] = y;
	n ++;
	if(n== tam) n = 1;
 
}
 
void dibujar_cuerpo(){
	for(int i = 1 ; i < tam ; i++){
     	gotoxy(cuerpo[i][0] , cuerpo[i][1]); printf("*");
	}
 
}
 
void borrar_cuerpo(){
     	gotoxy(cuerpo[n][0] , cuerpo[n][1]); printf(" ");
 
}
 
void teclear(){
 
			if(kbhit()){
			tecla = getch();
			switch(tecla){
				case ARRIBA :
					if(dir != 2)
					dir = 1;
					break;
			   case ABAJO :
			        if(dir != 1)
			        dir = 2;
			 case DERECHA :
			        if(dir != 4)
			         dir = 3;
			         break;
			 case IZQUIERDA :
			        if(dir != 3)
			         dir = 4;
			         break;
 
			}
 
	}
 
}
 
void comida(){
	if(x == xc && y == yc){
		xc = (rand()%73)+4;
		yc = (rand()%19)+4;
 
		tam++;
		gotoxy(xc,yc) ;printf("*",4);
	}
 
 
}
 
int main(){
 
	pintar();
    gotoxy(xc,yc) ;printf("*",4);
 
	while(tecla != ESC){
		borrar_cuerpo();
		guardar_posicion();
		dibujar_cuerpo();
 
		comida();
 
        teclear();
 
        if(dir == 1) y--;
   	    if(dir == 2) y++;
	    if(dir == 3) x++;
	    if(dir == 4) x--;
 
		Sleep(100);
 
	}
	pintar();
	system("pause>null");
	return 0;
 
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Al precionar la flecha abajo no hace nada

Publicado por Rodrigo (539 intervenciones) el 13/10/2020 03:08:14
Sera el break que te falta entre las lineas 85 y 86?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha aumentado su posición en 2 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Al precionar la flecha abajo no hace nada

Publicado por Emanuel (4 intervenciones) el 13/10/2020 03:10:13
Muchas gracias deberdad
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar