Si el laberinto va a estar en vista aérea, usa una matriz de caracteres (limite en TC++: [128][128]), implamenta una funcion que llene aleatoriamente la matriz con ceros y unos y crea una función que:
*Si hay un cero, coloca un cuadro de color para simular un muro.
*Si hay un 1, coloca un cuadro de otro color para simular un pasillo.
Los cuadros para generar el laberinto deben ser cuadrados de un tamaño fijo así, al colocarlos en pantalla, sólo se requiere avanzar en múltiplos del tamaño de cuadro para marcar el inicio de cada cuadro.
Puedes modificar la funcion para llenar la matriz para que asigne otros valores, que se les puede manejar como objetos del escenario: trampas, puertas, escaleras, cofres, étc.
Esto tambien te sirve para controlar el movimiento del personaje:
*Si el elemento de la matriz es cero, no puede pararse en ese cuadro.
*Si el elemento de la matriz es uno o mayor, puede pararse en ese cuadro.
/*-----------Codigo-----------------------*/
#define ANCHOCUADRO 8
#define ANCHOLABERINTOX 40
#define ANCHOLABERINTOY 30
#include <stdlib.h>
#include <graphics.h>
#include <conio.h>
int matrix[ANCHOLABERINTOY][ANCHOLABERINTOX];
//La matriz del laberinto es global
void cuadro(int x, int y, int ancho,char color){
setcolor(color);
setfillstyle(SOLID_COLOR,color);
bar(x,y,x+ancho,y+ancho);
}
void crearLaberinto(int largo, int ancho){
int x,y;
for(y=0 ; y<ancho ; y++)
for(x=0 ; x<largo ; x++)
cuadro(x*ANCHOCUADRO,y*ANCHOCUADRO,ANCHOCUADRO,laberinto
}
void llenarMatriz(int laberinto[][],int largo,int ancho){
for(y=0 ; y<ancho ; y++)
for(x=0 ; x<largo ; x++){
laberinto[y][X]=rand()%2;
}
}
void main(){
/*Usar procedimiento para inicializar graficos*/
llenarMatriz(matrix,ANCHOLABERINTOX,ANCHOLABERINTOY);
crearLaberinto(ANCHOLABERINTOX,ANCHOLABERINTOY);
}