#include #include using namespace std; #include string dd[100]; char screen[76][76]; int pos; int sx,sy; bool exitf = false; void parse(string s) { unsigned int p=0,n; pos = 0; while(1) { n = s.find(" ",p); dd[pos] = s.substr(p,n-p); //cout << dd[pos]; //cout << dd[x] << endl; pos++; p = n+1; if (n == string::npos) return; } } void clear(int x1,int y1,int x2,int y2) { int a,b,c,d; if (x1sx) c = sx; if (d>sy) d = sy; int s,t; for (s=a; s<=c;s++) for(t=b;t<=d;t++) screen[s-1][t-1] = ' '; } void putchar2(int x,int y,char c) { screen[x][y]=c; } void putchar(int x,int y,char c) { x--; y--; if(screen[x][y] == '+') { if (c == '|' || c == '-') return; } if(screen[x][y] == 'x') { if (c == '/' || c == '\\') return; } switch(screen[x][y]) { case ' ' : screen[x][y] = c; return; case '-' : if (c == '|') { putchar2(x,y,'+'); return;} break; case '|' : if (c == '-') { putchar2(x,y,'+'); return;} break; case '/' : if (c == '\\') { putchar2(x,y,'x'); return;} break; case '\\' : if (c == '/') { putchar2(x,y,'x'); return;} break; } if (screen[x][y] == c) return; /* if (c == '+') { print }*/ screen[x][y] = '*'; } void putpoint(int x,int y) { putchar(x,y,'o'); } void text(int x,int y, string str) { unsigned int t; for (t=0;ty2) { if (y1>y2) { int u; u = y2; y2= y1; y1 = u; } } for (t = y1;t <= y2;t++) { putchar(x,t,'|'); } } void hline(int y,int x1,int x2) { if (x1>x2) { if (x1>x2) { int u; u = x2; x2= x1; x1 = u; } } int t; for (t = x1;t <= x2;t++) { // cout << t << endl; putchar(t,y,'-'); } } void sline(int x1,int y1,int x2,int y2) { int s; for (s=0;s<=x2-x1;s++) { putchar(x1+s,y1+s,'\\'); } } void sline2(int x1,int y1,int x2,int y2) { int s; for (s=0;s<=x2-x1;s++) { putchar(x1+s,y1-s,'/'); } } void line(int x1,int y1, int x2, int y2) { if (x1 == x2) { vline(x1,y1,y2); return; } if (y1 == y2) { hline(y1,x1,x2); return; } if (y1x2) { sline2(x2,y1,x1,y2); return; } if (y1x2) { sline(x2,y1,x1,y2); return; } if (y2