figuras en c++ objeto

m16u3l
17 de Junio del 2004
hola
hice este programa con 3 cuadrados a los cuales les doy movimiento,pero como puedo hacer para crear un nuevo cuadrado con solo crearlo en el constructor, sin modificar nada más en el main.
gracias


#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
class cventana
{
private:
int fila;
int columna;
int alto;
int largo;
public:
cventana(int f,int c,int a,int l)
{
fila = f;
columna = c;
alto=a;
largo=l;
dibuja(\'*\');
}
dibuja(char t)
{
int i;
gotoxy(columna,fila);
for(i=0;i<=largo;i++)
cout << t;
gotoxy(columna,fila+alto);
for(i=0;i<=largo;i++)
cout << t;
gotoxy(columna,fila+i);
for(i=0;i<= alto;i++)
{
gotoxy(columna,fila+i);
cout << t;
gotoxy(columna +largo,fila+i);
cout << t;
} return 0;}

arriba()
{
dibuja(\' \');
fila=fila-1;
dibuja(\'*\');
return 0;
}
izquierda()
{
dibuja(\' \');
columna=columna+1;
dibuja(\'*\');
return 0;
}
derecha()
{
dibuja(\' \');
columna=columna-1;
dibuja(\'*\');
return 0;
}
abajo()
{
dibuja(\' \');
fila=fila+1;
dibuja(\'*\');
return 0;
}
construye(int f,int c, int l, int a)
{
char t;
if(f < 1 || f >25) return 0;
if(c < 1 || c >80) return 0;
fila=f;
columna=c;
largo=l;
alto=a;
dibuja (\'*\');
return 0;
}};
mover(cventana *m,char movimiento);
Crear(cventana *d);
main()
{
cventana ventana1(5,5,5,10),ventana2(5,19,5,10),ventana3(5,
34,5,10),*p;
int ventana,terminar;
do{
gotoxy(20,20);
cout << "elegir ventana(1-2-3) : ";
ventana = getche();
switch(ventana)
{
case \'1\': p = &ventana1;break;
case \'2\': p = &ventana2;break;
case \'3\': p = &ventana3;break;
}
do{
if(ventana!=\'1\')
Crear(&ventana1);Crear(&ventana2);Crear(&ventana3);
if(ventana!=\'2\')
Crear(&ventana3);Crear(&ventana1);Crear(&ventana2);
if(ventana!=\'3\')
Crear(&ventana1);Crear(&ventana2);Crear(&ventana3);

gotoxy(20,19);cout << "(8)arriba|(4)izquierda | (6)derecha | (2)abajo";
gotoxy(20,21);cout<<"cambiar ventana letra (C)";
gotoxy(20,22);cout<<"para salir tecla escape";
terminar = getch();
if(terminar != 67)
mover(p,terminar);

}while(terminar != 27 && terminar != 67);
}while(terminar != 27); abort();
return 0;
}

mover(cventana *m,char movimiento)
{
switch(movimiento)
{
case \'8\' : m->arriba(); break;
case \'2\' : m->abajo();break;
case \'4\' : m->derecha(); break;
case \'6\' : m->izquierda();break;
}
return 0;
}
Crear(cventana *d)
{
d->dibuja(\'*\');
return 0;
}

belladonna
17 de Junio del 2004
Yo tengo una tarea demasiado parecida... seremos compañeros de curso ? jajaja

m16u3l
17 de Junio del 2004
del duoc de valpo si es que somos compañeros cual es tu nombre jajaja

m16u3l
17 de Junio del 2004
belladonna eres del duoc

noel solw
17 de Junio del 2004
Perdoname, pero no consigo entender de todo la pregunta.
A que se debe la limitacion del cuarto cuadrado ?
Lo que tu pides puede hacerse, pero me parece un poco rebuscado.
Envia todos los detalles y si es posible el enunciado exacto del ejercicio.