El código sobre el que estoy trabajando es este:
Muchas gracias, me está costando empezar en esto de la programación, espero que con el apoyo de los foreros, con esfuerzo y dedicación consiga superarme día a día, gracias!
Código:
Estoy que no sé si crear una clase para las colisiones, o meter una batería de condiciones en el switch, también contemplo el do dentro de dos for, pero no he sacado nada en claro de momento, estoy algo atascado >__< #include <stdio.h> #include <windows.h> COORD cxy; #define posicion(x,y) {(cxy.X)= (x);(cxy.Y)= (y); SetConsoleCursorPosition((GetStdHandle(STD_OUTPUT_HANDLE)), (cxy) );} char m[20][80]; char f=21, c=40; char letra; void desplazamiento(){ do{ letra=getch(); switch(letra){ case 119: //w posicion(c,f); printf(" "); f--; posicion(c,f); printf("0"); break; case 100://d posicion(c,f); printf(" "); c++; posicion(c,f); printf("0"); break; case 97://a posicion(c,f); printf(" "); c--; posicion(c,f); printf("0"); break; case 115://s posicion(c,f); printf(" "); f++; posicion(c,f); printf("0"); break; } }while(f!=1); } void laberinto(){ //Genero valores aleatorios del 1 al 100 para todas las posiciones //de mi array bidimensional m int i, j; for(i=0;i<20;i++){ for(j=0;j<80;j++){ m[i][j]=rand()%100; } } } void mostrarlaberinto(){ //pinto el laberinto diciendo que para cualquier posición //del array m donde el valor que se le ha asignado aleatoriamente //sea menor que 50, me pinte un espacio en blanco, y el resto de //valores que pinte "*" int i, j; for (i=0;i<20;i++){ for(j=0;j<80;j++){ if(m[i][j]<50){ printf(" "); }else{ printf("*"); } } } } void colisiones(){ } int main(){ srand(time(NULL)); laberinto(); mostrarlaberinto(); posicion(c,f);printf("0"); colisiones(); desplazamiento(); getch(); return 0; }