#include #include #include #include "decoradores.hh" const int ESC = 27; void clrscr(void) { printf("%c[2J", ESC); } void gotoxy(int x, int y) { printf("%c[%d;%dH", ESC, x-1, y-1); } Decorador::Decorador(Visual* objeto) { objDecorado = objeto; } void Decorador::pintar() { objDecorado->pintar(); } Cuadrado::Cuadrado(Visual* objeto,int dim) { x = rand() % (24 - dim); y = rand() % (80 - dim); objDecorado = objeto; dimension = dim; } Cuadrado::~Cuadrado() { delete objDecorado; } void Cuadrado::pintar() { int i; Decorador::pintar(); gotoxy(x,y); cout << "+"; for (i = 1;i < dimension ;i++) { cout << "-"; } cout << "+"; for (i = 1;i < dimension ;i++) { gotoxy(x + i,y); cout << "|"; gotoxy(x + i,y + dimension); cout << "|"; } gotoxy(x + dimension,y); cout << "+"; for (i = 1;i < dimension ;i++) { cout << "-"; } cout << "+"; } Triangulo::Triangulo(Visual* objeto,int dim) { x = rand() % (24 - dim); y = rand() % (80 - dim); objDecorado = objeto; dimension = dim; } Triangulo::~Triangulo() { delete objDecorado; } void Triangulo::pintar() { int i; Decorador::pintar(); gotoxy(x,y); cout << "+"; for (i = 1;i < dimension ;i++) { gotoxy(x + i,y + i); cout << "\\"; gotoxy(x + i,y - i); cout << "/"; } gotoxy(x + dimension,y - dimension); cout << "+"; for (i = 1;i < (2 * dimension) ;i++) { cout << "-"; } cout << "+"; } Rectangulo::Rectangulo(Visual* objeto,int anchura,int large) { x = rand() % (24 - large); y = rand() % (80 - anchura); objDecorado = objeto; ancho = anchura; largo = large; } Rectangulo::~Rectangulo() { delete objDecorado; } void Rectangulo::pintar() { int i; Decorador::pintar(); gotoxy(x,y); cout << "+"; for (i = 1;i < largo ;i++) { cout << "-"; } cout << "+"; for (i = 1;i < ancho ;i++) { gotoxy(x + i,y); cout << "|"; gotoxy(x + i,y + largo); cout << "|"; } gotoxy(x + ancho,y); cout << "+"; for (i = 1;i < largo ;i++) { cout << "-"; } cout << "+"; } void Pantalla::pintar() { int i; clrscr(); for (i = 2;i <= 22;i++) { gotoxy(i,1); cout << "|"; gotoxy(i,81); cout << "|"; } gotoxy(1,1); cout << "+"; for (i = 2;i <= 79;i++) cout << "-"; cout << "+"; gotoxy(23,1); cout << "+"; for (i = 2;i <= 79;i++) cout << "-"; cout << "+"; }