void save() {FILE *file; file=fopen("C:/TC/Pntsav.div","wt"); fseek(file, SEEK_SET, 0); for(p=0;p<640;p++) {for(q=0;q<480;q++) {z=getpixel(p,q); ntoc(); fwrite(&r,sizeof(r),1,file); //file<<z; }} fclose(file); }
/*__________________________________________________________________________________________*/ void wzq::get_chess_manual(int nx ,int ny,bool style,bool player,int dir,bool type) { bool ok = true; int ia,ib; int ix,iy; int i2i,i2j; int tem1,tem2; int x; int i3; int m1,m3; int i; int wx = nx,wy = ny,tem3 = 0; switch (dir) { case 0: i2i = 1,i2j = 0;break; case 1: i2i = 0,i2j = 1;break; case 2: i2i = 1,i2j = 1;break; case 3: i2i = 1,i2j = -1;break; } unsigned char temp3[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; unsigned char temp4[15] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; begin: if (map[wx][wy] != 0) return; i3 = 0; ix = i2i; iy = i2j; ia = 1,ib = 1; //right==========================================================================================// x = map[wx - ix][wy - iy]; while(!(x != (int)style + 1 || wx - ix < 0 || wy - iy < 0)) { ia++; ix += i2i; iy += i2j; x = map[wx-ix][wy-iy]; } ix = i2i,iy = i2j; //left====================================================================================// x = map[wx + ix][wy + iy]; while(!(x != (int)style + 1|| wx + ix > 14 || wy+iy > 14)) { ib++; ix += i2i; iy += i2j; x = map[wx + ix][wy + iy]; } //偏移=======================================================================================// if (ib == 1 && ia == 1) { if (tem3 == 0) { wx += i2i,wy += i2j; tem3 = 1; goto begin; } else { if (tem3 == 1) { wx -= i2i * 2,wy -= i2j * 2; tem3 = 2; goto begin; } else { if (tem3 == 2)return; } } } ix = 0,iy = 0; switch (dir) { case 0: { m1 = (ia != 1 && ib == 1),m3 = (ib != 1 && ia == 1); for(i = 0; i < 1+ia+ib; i++) { tem1 = wx - ia + ix - m1; if (tem1 < 0 || tem1 > 14) { ix += 1; continue; } x = map[tem1][wy]; temp3[i3] = ntoc(x,type,style); ix += 1; i3++; } ix = 0,i3 = 0; for (i = 0; i < 1+ia+ib; i++) { tem1 = wx + ib - ix + m3; if (tem1 < 0 || tem1 > 14) { ix += 1; continue; } x = map[tem1][wy]; temp4[i3] = ntoc(x,type,style); ix+=1; i3++; } break; } case 1: { m1 = (ia != 1 && ib == 1), m3 = (ib != 1 && ia == 1); for(i = 0; i < 1+ia+ib; i++) { tem1 = wy-ia+iy-m1; if (tem1 < 0 || tem1 > 14) { iy += 1; continue; } x = map[wx][tem1]; temp3[i3] = ntoc(x,type,style); iy += 1; i3++; } iy = 0,i3 = 0; for (i = 0; i < 1+ia+ib; i++) { tem1 = wy+ib-iy+m3; if ( tem1 < 0 || tem1 > 14) { iy += 1; continue; } x = map[wx][tem1]; temp4[i3] = ntoc(x,type,style); iy += 1; i3++; } break; } break; case 2: { m1 = (ia != 1 && ib == 1),m3 = (ib != 1 && ia == 1); for (i = 0; i < 1+ia+ib; i++) { tem1 = wx-ia+ix-m1; tem2 = wy-ia+iy-m1; if (tem1 < 0 || tem1 > 14 || tem2 < 0 || tem2 > 14) { ix += 1;iy += 1; continue; } x = map[tem1][tem2]; temp3[i3] = ntoc(x,type,style); iy += 1; ix += 1; i3++; } iy = 0,ix = 0,i3 = 0; for (i = 0; i < 1+ia+ib; i++) { tem1 = wx+ib-ix+m3; tem2 = wy+ib-iy+m3; if (tem1 < 0 || tem1 > 14 || tem2 < 0 || tem2 > 14) { ix += 1,iy += 1; continue; } x = map[tem1][tem2]; temp4[i3] = ntoc(x,type,style); iy += 1; ix += 1; i3++; } break; } case 3: { m1 = (ia != 1 && ib == 1),m3 = (ib != 1 && ia == 1); for (i = 0; i < 1+ia+ib; i++) { tem1 = wx-ia+ix-m1; tem2 = wy+ia+iy+m1; if (tem1 < 0 || tem1 > 14 || tem2 < 0 || tem2 > 14) { ix += 1; iy-=1; continue; } x = map[tem1][tem2]; temp3[i3] = ntoc(x,type,style); iy -= 1; ix += 1; i3++; } iy = 0,ix = 0,i3 = 0; for (i = 0; i < 1+ia+ib; i++) { tem1 = wx+ib-ix+m3; tem2 = wy-ib-iy-m3; if (tem1 < 0 || tem1 > 14 || tem2 < 0 || tem2 > 14) { ix += 1; iy += 1; continue; } x = map[tem1][tem2]; temp4[i3] = ntoc(x,type,style); iy -= 1; ix += 1; i3++; } break; } }; //tj===================================================// if ( (strcmp("00H0",(const char *)&temp3[1]) == 0 || strcmp("00H0",(const char *)&temp4[1]) == 0 || strcmp("00H0",(const char *)&temp3[0]) == 0 || strcmp("00H0",(const char *)&temp4[0]) == 0) && tem3 != 0) return; if ( (strcmp("00B0",(const char *)&temp3[1]) == 0 || strcmp("00B0",(const char *)&temp4[1]) == 0 || strcmp("00B0",(const char *)&temp3[0]) == 0 || strcmp("00B0",(const char *)&temp4[0]) == 0) && tem3 != 0) return; if ( (strcmp("00HHHB",(const char *)&temp3[1]) == 0 || strcmp("00HHHB",(const char *)&temp4[1]) == 0 || strcmp("00HHHB",(const char *)&temp3[0]) == 0 || strcmp("00HHHB",(const char *)&temp4[0]) == 0) && tem3 != 0) return; /*++此处添加更多的屏蔽++*/ if (tem3 == 0) { for (i = 0; i <= 61; i++) { if (strcmp(wds[i],(const char *)&temp3[1]) == 0 || strcmp(wds[i],(const char *)&temp4[1]) == 0 || strcmp(wds[i],(const char *)&temp3[0]) == 0 || strcmp(wds[i],(const char *)&temp4[0]) == 0) { if (player == false) { pc[nx][ny][dir]=i; return; } else { user[nx][ny][dir]=i; return; } } } } else { for (i=0 ; i<=61 ; i++) { if (strcmp(wds[i],(const char *)&temp3[0])==0||strcmp(wds[i],(const char *)&temp4[0])==0) { if (player==false) { pc[nx][ny][dir]=i; return; } else { user[nx][ny][dir]=i; return; } } } } }