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;
}
) y que no te pierdas debes resolver dos cosas.

