Que onda! dejo este codigo que estoy desarrollando para un proyecto escolar en el que estamos simulando un mapa gps. El siguiente modulo sera integrado al proyecto y aun no esta del todo terminado pero igual lo publico por si alguien le intereza y quiere utilizarlo.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
using namespace std;
char ID = 'A';
int id=1;
char relleno = 475;
char lineah=461;
char lineavertical=442;
char esquinaIzquierdaUp=457;
char esquinaDerechaUp=443;
char esquinaIzquierdaDown=456;
char esquinaDerechaDown=444;
void calle(int longitud){
cout << endl << ID << " -> " << lineavertical;
ID++;
for(int a=1;a<=longitud;a++)
cout << " ";
cout << lineavertical << endl;
}
void idHorizontal(int veces){
int i;
for(i=1;i<=veces+1;i++){
if(i<=1)
cout << " " << id;
else if (i>=10)
cout << " " << id;
else
cout << " " << id;
id++;
}
cout << endl;
}
void mapaCuadrasHorizontal(int fila, int cuadrasxfila,int filas,int puntoA, int puntoB){
int a,b;
system("color f0");
for(a=1;a<=fila;a++){
calle(filas);
cout << " " << lineavertical;
for(b=1;b<=cuadrasxfila;b++)
cout << " " << esquinaIzquierdaUp << lineah << lineah << esquinaDerechaUp;
cout << " " << lineavertical << endl << " " << lineavertical;
for(b=1;b<=cuadrasxfila;b++){
//if a o b
if(puntoA==b){
cout << " " << lineavertical << "A" << "A" << lineavertical;
puntoA=0;
}
else
cout << " " << lineavertical << relleno << relleno << lineavertical;
if(puntoB==b){
cout << " " << lineavertical << "B" << "B" << lineavertical;
puntoB=0;
}
}
cout << " " << lineavertical << endl << " " << lineavertical;
for(b=1;b<=cuadrasxfila;b++)
cout << " " << esquinaIzquierdaDown << lineah << lineah << esquinaDerechaDown;
cout << " " << lineavertical;
}
}
void limiteUp(int lineas){
cout << " " << esquinaIzquierdaUp;
for(int a=1;a<=lineas;a++)
cout << lineah;
cout << esquinaDerechaUp;
}
void limiteDown(int lineas){
calle(lineas);
cout << " " << esquinaIzquierdaDown;
for(int a=1;a<=lineas;a++)
cout << lineah;
cout << esquinaDerechaDown;
}
void dibujarMapa(int filas, int cuadras, int puntoA, int puntoB){
int limites = (8*cuadras)-cuadras;
if(cuadras==1)
limites = ((8*cuadras)-cuadras)+1;
if(cuadras==2)
limites = (8*cuadras)-cuadras;
if(cuadras>2){
limites = (8*cuadras)-cuadras;
int b=0;
for(int a=3;a<=cuadras;a++){
b++;
}
limites = limites-b;
}
system("cls");
idHorizontal(cuadras);
limiteUp(limites);
mapaCuadrasHorizontal(filas,cuadras,limites,puntoA,puntoB);
limiteDown(limites);
}
int main(){
int filas=5,columnas=10;
int ubicacion=2,destino=5;
inicializa();
dibujarMapa(filas,columnas,ubicacion,destino);
return 0;
}