Utilizo el lenguaje C para escribir un programa de movimiento de flechas. Quiero usar el teclado para controlar la dirección del movimiento de las flechas. ¿Qué debo hacer? Pido ayuda a expertos.
Utilice la función getch() para aceptar la entrada de caracteres desde el teclado para controlar el movimiento y luego actualizar la pantalla. Es así de simple
Aquí hay un programa de referencia
<. p>#include#include
#include
#define N 6 p>
int x=1, y=1;
int current_value=0;
int mapa[N][N]={ {1,1,1, 1,1, 1},{1,0,0,0,0,1},{1,0,0,0,0,1},{1,0,0,0,0,1},{ 1,0, 0,0,0,2},{1,1,1,1,1,1} };
impresión nula()
{
int i, j;
for(i=0; i { for(j=0; j { if(i==y && j==x) {printf("#"); continuar; } if(map[i][j]==1) printf("*"); if( mapa[i] [j]==0) printf("-"); if(mapa[i][j]==2) printf( "$"); } printf("\n"); } } p> int control(char ch) { cambiar(ch) { caso 'a': { if(mapa[y][x-1]==0 || mapa[y][x-1]==2) { x- -; current_value=map[y][x]; devuelve 1; } else return 0; } caso 'd': { if(map[y][x+1]== 0 || mapa [y][x+1]==2) { x++; valor_actual=mapa[y][x]; devuelve 1; } más devuelve 0; } caso 's ': { if(mapa[y+1][x]==0 || mapa[y+1][x]==2) { y++; current_value=map[y][x] devuelve 1; } más regresar 0; } caso 'w': { if(mapa[y-1][x]==0 || mapa[y- 1][x]==2) { y--; current_value=map[y][x]; p> devuelve 1; } más devuelve 0; } predeterminado: devuelve 0 ; } } int main() { int i, j; p> p> int hecho=0; int éxito=0; char ch; imprimir(); mientras (!éxito) { ch=getch(); if(ch=='0') romper ; hecho=control(ch); if(hecho) { system("cls"); print(); } if(map[y][x]==2) {éxito =1; descanso; } } if(éxito) printf("Felicitaciones ¡Por tu éxito! ,\n"); else printf("Sigue con el buen trabajo~~\n"); return 0 ; }