void check_blank() { int i,j,k,l,m,temp1,temp,temp2; put_blank(x,y,0); }
void put_blank(int i, int j,int call) { int l,m; putcount++; if (a[i][j]=='.'&& i>=0 && j>=0 && i<10 && j<10) { // cout<<"\n i = "<<i<<"\n j = "<<j<<"\n call = "<<call; // cout<<"\n putcount = "<<putcount; user[i][j]='_'; a[i][j]='_'; // cout<<"\n user["<<i<<"]["<<j<<"] = "<<user[i][j]; // getch(); l=i-1; m=j-1; put_blank(l,m,1); l=i-1; m=j; put_blank(l,m,2); l=i-1; m=j+1; put_blank(l,m,3); l=i; m=j+1; put_blank(l,m,4); l=i+1; m=j+1; put_blank(l,m,5); l=i+1; m=j; put_blank(l,m,6); l=i+1; m=j-1; put_blank(l,m,7); l=i; m=j-1; put_blank(l,m,8); } else if (a[i][j]=='1' && i>=0 && j>=0 && i<10 && j<10) { user[i][j]=a[i][j]; } else if (a[i][j]=='2' && i>=0 && j>=0 && i<10 && j<10) { user[i][j]=a[i][j]; } else if (a[i][j]=='o' && i>=0 && j>=0 && i<10 && j<10) { user[i][j]='.'; } }
void remove_blank(char *filename) { FILE *ifp, *ofp; char *p; short flag; /* 原样输出模式 */ int ind = 0, tem_ind = 0; char s[MAXSIZE], buf[MAXSIZE]; int buf_t, new_line; if((ifp = fopen(filename, "r")) == NULL) { ferr("打开文件失败\n"); exit(1); } if((ofp = fopen(FILENAME_BLANK, "w")) == NULL) { ferr("打开中转文件失败\n"); exit(1); } while(fgets(s, MAXSIZE-1, ifp) != NULL) { p = s; buf_t = 0; while(*p == ' ' || *p == '\t') p++; /* 去掉开头多余空格、TAB*/ /* 检测第一个字符 */ if(*p == '#' || (*p == '/' && *(p+1) == '/')) //行注释 flag = 1; else if(*p == '/' && *(p+1) == '*') /* 大范围注释 */ flag = 2; else flag = 0; new_line = 1; while(*p) { while(!flag && *p == ' ' && (new_line || (*(p+1) == ' ' || *(p+1) == '\t'))) p++; if(*p == '*' && *(p+1) == '/') { /* 注释取消 */ buf[buf_t++] = '*'; buf[buf_t++] = '/'; new_line = 1; p += 2; continue; } if(flag == 2) { /* 大注释,原样输出 */ buf[buf_t++] = *p++; continue; } if(*p == '{') { tem_ind = 0; while(buf[buf_t-1] == ' ') { buf_t--; } if(!new_line) buf[buf_t++] = '\n'; put_blank(buf, &buf_t, ind); buf[buf_t++] = *p++; buf[buf_t++] = '\n'; ind++; /* 要放在put_blank前 */ new_line = 1; remove_blank_line(&p); } else if(*p == '}') { tem_ind = 0; ind--; if(!new_line) buf[buf_t++] = '\n'; while(buf[buf_t-1] == ' ') { buf_t--; } put_blank(buf, &buf_t, ind); buf[buf_t++] = *p++; buf[buf_t++] = '\n'; new_line = 1; remove_blank_line(&p); } else if(*p == '\n' || (*p == ';' && ((*(p+1) == '\n' || (*(p+1) == ' ' && *(p+2) == ' ') || *(p+1) == '\t') || strstr(s, "for") == NULL))) { if(*p == '\n') { buf[buf_t++] = *p++; remove_blank_line(&p); if(!flag && !new_line) { if(tem_ind == 0) tem_ind = ind+1; else tem_ind++; } new_line = 1; } else if(*p == ';') { buf[buf_t++] = *p++; buf[buf_t++] = '\n'; new_line = 1; remove_blank_line(&p); tem_ind = 0; } } else { if(new_line) { if(tem_ind == 0) put_blank(buf, &buf_t, ind); else put_blank(buf, &buf_t, tem_ind); } buf[buf_t++] = *p++; new_line = 0; } } /* 把多余的空格去掉 */ while(buf[buf_t-1] == ' ') { buf_t--; } buf[buf_t] = '\0'; printf("%s", buf); fprintf(ofp, "%s", buf); } fclose(ifp); fclose(ofp); }