ayuda plz con este programa es urgente

capanchini
25 de Mayo del 2004
necesito que las pantallas no se borren al pasar por encima
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
int ventana,salir;
class cEjemplo
{
private:
int fi;
int co;
int la;
int al;

public:
cEjemplo(int a=0,int b=0,int c=0,int d=0)
{
fi = a;
co = b;
la = c;
al = d;
Dibuja('*');
}


Dibuja(char f)
{

int i;
gotoxy(co,fi);
for(i=0;i<=la;i++)
cout << f;
gotoxy(co,fi+al);
for(i=0;i<= la;i++)
cout << f;
gotoxy(co,fi+i);
for(i=0;i<= al;i++)
{
gotoxy(co,fi+i);
cout << f;
gotoxy(co+la,fi+i);
cout << f;
}
}
MoverUp()
{
Dibuja(' ');
fi--;
Dibuja('*');
}
MoverDown()
{
Dibuja(' ');
fi++;
Dibuja('*');
}
MoverLeft()
{
Dibuja(' ');
co--;
Dibuja('*');
}
MoverRight()
{
Dibuja(' ');
co++;
Dibuja('*');
}

};

mover(cEjemplo *d,char donde);

main()
{
cEjemplo c1(5,5,5,5),c2(5,12,5,5),c3(5,19,5,5),*p;


do{
gotoxy(20,20);
cout << "Seleccione ventana : ";
ventana = getche();
switch(ventana)
{
case '1': p = &c1;break;
case '2': p = &c2;break;
case '3': p = &c3;break;
}


do{
gotoxy(20,21);
cout << "Seleccione Movimiento 0 = Fin 9 Cambiar caracter : ";
salir = getch();
if(salir != 57)
mover(p,salir);

}while(salir != 48 && salir != 57);
fflush(stdin);

}while(salir != 48);


return 0;
}

mover(cEjemplo *d,char donde)
{
switch(donde)
{
case '8' : d->MoverUp(); break;
case '2' : d->MoverDown();break;
case '4' : d->MoverLeft();break;
case '6' : d->MoverRight();break;
}
}

noel solw
25 de Mayo del 2004
Quiero ayudarte, pero para ello necesito que me expliques detallamente que es lo que tu programa quiere hacer, descifrarlo del codigo me llevara demasiado tiempo.

capanchini
25 de Mayo del 2004
Lo que hace el programa es Crear un objeto de tipo cVentana en tres lugares diferentes de la pantalla, con las teclas 1,2,3 yo puedo seleccionar una de las ventanas y con los numeros 4izquierda,6derecha,8arriba,2abajo puedo mover la ventana seleccionada. Si al mover la ventana pasa por sobre una de las otras dos, estas no deben borrarse.

Rev
25 de Mayo del 2004
Supongo que cuando mueves el objeto solo lo refrescas a el, y los demás objetos se quedan estáticos sin recibir ninguna otra trazada, una solución sería que cuando movieras un circulo no solo volvieras a dibujar este si no que tendrías que hacerlo con todos para que no se borren cuando un circulo pasa sobre ellos, ya que los pixeles que uno uso el otro no los vuelve a recuperar.
Espero te sirva.