#include #include char pole[76][76]; int vx,vy; void v_m(int &a,int &b) { int pom; if(bx2) { pom=x1; x1=x2; x2=pom; pom=y1; y1=y2; y2=pom; } //if } void inicializuj() { for(int i=1;i<(vx+1);i++) { for(int j=1;j<(vy+1);j++) { pole[i][j]=' '; } //for } //for } void zapis(char znak,int x,int y) { if(pole[x][y]==' ') { pole[x][y]=znak; return; } //if if(znak==pole[x][y]) { return; } //if if(znak==' ') { pole[x][y]=' '; return; } //if if((znak=='\\') && (pole[x][y]=='/')) { pole[x][y]='x'; return; } //if if((znak=='/') && (pole[x][y]=='\\')) { pole[x][y]='x'; return; } //if if((znak=='-') && (pole[x][y]=='|')) { pole[x][y]='+'; return; } //if if((znak=='|') && (pole[x][y]=='-')) { pole[x][y]='+'; return; } //if if((pole[x][y]=='+') && ((znak=='-') || (znak=='|'))) { return; } //if if((pole[x][y]=='x') && ((znak=='/') || (znak=='\\'))) { return; } //if pole[x][y]='*'; } void bod(int x,int y) { zapis('o',x,y); } void text(int x,int y, string t) { for(int i=0;(i<((int)t.size())) && ((x+i)<=vx);i++) { zapis(t[i],i+x,y); } //for } void smaz(int x1,int y1,int x2,int y2) { for(int i=x1;i<=x2;i++) { for(int j=y1;j<=y2;j++) { zapis(' ',i,j); } //for } //for } void usecka(int x1,int y1,int x2,int y2) { if(x1==x2) { v_m(y1,y2); for(int i=y1;i<=y2;i++) { zapis('|',x1,i); } //for return; } //if if(y1==y2) { v_m(x1,x2); for(int i=x1;i<=x2;i++) { zapis('-',i,y1); } //for return; } //if v_m2(x1,y1,x2,y2); if(y1> vx >> vy; if((vx==0) && (vy==0)) { return 0; } //if inicializuj(); do { cin >> prikaz; if(prikaz=="POINT") { cin >> x1 >> y1; bod(x1,y1); } //if if(prikaz=="TEXT") { cin >> x1 >> y1 >> txt; // cout << (char*)txt.data(); text(x1,y1,txt); } //if if(prikaz=="LINE") { cin >> x1 >> y1 >> x2 >> y2; usecka(x1,y1,x2,y2); } //if if(prikaz=="CLEAR") { cin >> x1 >> y1 >> x2 >> y2; v_m(x1,x2); v_m(y1,y2); smaz(x1,y1,x2,y2); } //if } while(prikaz!="PRINT"); vytiskni(); } while(1); return 0; }