#include #include #include #include #include #include #define F_CPU 16000000UL #include #include #include #include #include "character.h" #include "uart.h" #include "uart.c" // UART file descriptor // putchar and getchar are in uart.c FILE uart_str = FDEV_SETUP_STREAM(uart_putchar, uart_getchar, _FDEV_SETUP_RW); #define begin { #define end } #define MAINPAGE 1 #define PLAY 2 #define SETTINGS 3 #define LCD_RESET_0 PORTD &= ~( 1<2350) && (ymean<4000) && (mode==MAINPAGE) ) { chinese_chessboard_init(); mode=PLAY; delay_ms(1); } else if ((ymean<2350) && (mode==MAINPAGE) ) { mode=SETTINGS; colour_setting (); delay_ms(1); } else if ((ymean>3500) && (ymean<6000) &&(mode==SETTINGS)) { backgroundcolor=0xfe93; } else if ((ymean>3100) && (ymean<3450) &&(mode==SETTINGS)) { backgroundcolor=0x07e0; } else if ((ymean>2600) && (ymean<3000) &&(mode==SETTINGS)) { backgroundcolor=0x001f; } else if ((ymean>2200) && (ymean<2500) &&(mode==SETTINGS)) { backgroundcolor=0xffe0; } else if ((ymean>1800) && (ymean<2100) &&(mode==SETTINGS)) { backgroundcolor=0xf81f; } else if ((ymean>1400) && (ymean<1700) &&(mode==SETTINGS)) { backgroundcolor=0x07ff; } else if ((ymean>900) && (ymean<1300) &&(mode==SETTINGS)) { backgroundcolor=0xffff; } else if ( (ymean<800) &&(mode==SETTINGS)) { mode=MAINPAGE; draw_mainpage(); } else if ( (mode==PLAY) && (xmean>0) && (xmean<=450) && (ymean>3400) && (ymean<=3700) ) { if((map[0]<17)&&(map[0]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ selected=map[0]; } else if ((map[0]<17)&&(map[0]>0)&&(selected>16)&&(flag==1)){ //manipulate 2 eat 1 eat_chessman(selected,12,38,map[0]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[0]=selected; selected=0; } } else if((map[0]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // manipulate 1 eat 2 eat_chessman(selected,12,38,map[0]); if(sign){ flag=1; //2 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[0]=selected; selected=0; } } else if( (map[0]>16) &&( (selected>16) || (selected==0)) &&(flag==1)){ selected=map[0]; } else if(map[0]==0){// no chessman move chess if((selected>16)&&(flag==1)){ move_chessman(selected,12,38); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[0]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,12,38); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[0]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>570) && (xmean<840) && (ymean>3400) && (ymean<3700)&& (mode==PLAY) ) { if((map[1]<17)&&(map[1]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ selected=map[1]; } else if ((map[1]<17)&&(map[1]>0)&&(selected>16)&&(flag==1)){ eat_chessman(selected,39,38,map[1]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[1]=selected; selected=0; } } else if((map[1]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ eat_chessman(selected,39,38,map[1]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[1]=selected; selected=0; } } else if( (map[1]>16) &&( (selected>16) || (selected==0)) &&(flag==1)){ selected=map[1]; } else if(map[1]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,39,38); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[1]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,39,38); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[1]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>970) && (xmean<1290) && (ymean>3400) && (ymean<3700)&& (mode==PLAY) ) { if((map[2]<17)&&(map[2]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[2]; } else if ((map[2]<17)&&(map[2]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,66,38,map[2]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[2]=selected; selected=0; } } else if((map[2]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,66,38,map[2]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[2]=selected; selected=0; } } else if( (map[2]>16) &&( (selected>16) || (selected==0))&&(flag==1) ){ selected=map[2]; } else if(map[2]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,66,38); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[2]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,66,38); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[2]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1410) && (xmean<1750) && (ymean>3400) && (ymean<3700)&& (mode==PLAY) ) { if((map[3]<17)&&(map[3]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[3]; } else if ((map[3]<17)&&(map[3]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,93,38,map[3]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[3]=selected; selected=0; } } else if((map[3]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,93,38,map[3]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[3]=selected; selected=0; } } else if( (map[3]>16) &&( (selected>16) || (selected==0))&&(flag==1) ){ selected=map[3]; } else if(map[3]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,93,38); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[3]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,93,38); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[3]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1820) && (xmean<2160) && (ymean>3400) && (ymean<3700)&& (mode==PLAY) ) { if((map[4]<17)&&(map[4]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[4]; } else if ((map[4]<17)&&(map[4]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,120,38,map[4]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[4]=selected; selected=0; } } else if((map[4]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,120,38,map[4]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[4]=selected; selected=0; } } else if( (map[4]>16) &&( (selected>16) || (selected==0)) &&(flag==1)){ selected=map[4]; } else if(map[4]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,120,38); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[4]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,120,38); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[4]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2240) && (xmean<2560) && (ymean>3400) && (ymean<3700)&& (mode==PLAY) ) { if((map[5]<17)&&(map[5]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[5]; } else if ((map[5]<17)&&(map[5]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,147,38,map[5]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[5]=selected; selected=0; } } else if((map[5]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,147,38,map[5]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[5]=selected; selected=0; } } else if( (map[5]>16) &&( (selected>16) || (selected==0)) &&(flag==1)){ selected=map[5]; } else if(map[5]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,147,38); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[5]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,147,38); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[5]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2660) && (xmean<2990) && (ymean>3400) && (ymean<3700)&& (mode==PLAY) ) { if((map[6]<17)&&(map[6]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[6]; } else if ((map[6]<17)&&(map[6]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,174,38,map[6]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[6]=selected; selected=0; } } else if((map[6]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,174,38,map[6]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[6]=selected; selected=0; } } else if( (map[6]>16) &&( (selected>16) || (selected==0))&&(flag==1) ){ selected=map[6]; } else if(map[6]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,174,38); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[6]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,174,38); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[6]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3110) && (xmean<3410) && (ymean>3400) && (ymean<3700)&& (mode==PLAY) ) { if((map[7]<17)&&(map[7]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[7]; } else if ((map[7]<17)&&(map[7]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,201,38,map[7]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[7]=selected; selected=0; } } else if((map[7]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,201,38,map[7]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[7]=selected; selected=0; } } else if( (map[7]>16) &&( (selected>16) || (selected==0))&&(flag==1) ){ selected=map[7]; } else if(map[7]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,201,38); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[7]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,201,38); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[7]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3450) && (xmean<3790) && (ymean>3400) && (ymean<3700)&& (mode==PLAY)) { if((map[8]<17)&&(map[8]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[8]; } else if ((map[8]<17)&&(map[8]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,228,38,map[8]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[8]=selected; selected=0; } } else if((map[8]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,228,38,map[8]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[8]=selected; selected=0; } } else if( (map[8]>16) &&( (selected>16) || (selected==0))&&(flag==1) ){ selected=map[8]; } else if(map[8]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,228,38); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[8]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,228,38); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[8]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (mode==PLAY) && (xmean>0) && (xmean<=450) && (ymean>3100) && (ymean<=3300)) { if((map[9]<17)&&(map[9]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[9]; } else if ((map[9]<17)&&(map[9]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,12,65,map[9]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[9]=selected; selected=0; } } else if((map[9]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,12,65,map[9]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[9]=selected; selected=0; } } else if( (map[9]>16) &&( (selected>16) || (selected==0))&&(flag==1) ){ selected=map[9]; } else if(map[9]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,12,65); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[9]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,12,65); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[9]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (mode==PLAY) && (xmean>570) && (xmean<=840) && (ymean>3100) && (ymean<=3300)) { if((map[10]<17)&&(map[10]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[10]; } else if ((map[10]<17)&&(map[10]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,39,65,map[10]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[10]=selected; selected=0; } } else if((map[10]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,39,65,map[10]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[10]=selected; selected=0; } } else if( (map[10]>16) &&( (selected>16) || (selected==0)) &&(flag==1)){ selected=map[10]; } else if(map[10]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,39,65); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[10]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,39,65); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[10]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (mode==PLAY) && (xmean>970) && (xmean<=1290) && (ymean>3100) && (ymean<=3300)) { if((map[11]<17)&&(map[11]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[11]; } else if ((map[11]<17)&&(map[11]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,66,65,map[11]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[11]=selected; selected=0; } } else if((map[11]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,66,65,map[11]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[11]=selected; selected=0; } } else if( (map[11]>16) &&( (selected>16) || (selected==0)) &&(flag==1)){ selected=map[11]; } else if(map[11]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,66,65); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[11]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,66,65); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[11]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (mode==PLAY) && (xmean>1410) && (xmean<=1750) && (ymean>3100) && (ymean<=3300)) { if((map[12]<17)&&(map[12]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[12]; } else if ((map[12]<17)&&(map[12]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,93,65,map[12]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[12]=selected; selected=0; } } else if((map[12]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,93,65,map[12]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[12]=selected; selected=0; } } else if((map[12]>16)&& ((selected>16)||(selected==0))&&(flag==1)){ selected=map[12]; } else if(map[12]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,93,65); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[12]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,93,65); if(sign){ flag=1; for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[12]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (mode==PLAY) && (xmean>1820) && (xmean<=2160) && (ymean>3100) && (ymean<=3300)) { if((map[13]<17)&&(map[13]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[13]; } else if ((map[13]<17)&&(map[13]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,120,65,map[13]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[13]=selected; selected=0; } } else if((map[13]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,120,65,map[13]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[13]=selected; selected=0; } } else if((map[13]>16)&&((selected>16)||(selected==0))&&(flag==1)){ selected=map[13]; } else if(map[13]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,120,65); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[13]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,120,65); if(sign){ flag=1; //2 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[13]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ((mode==PLAY) && (xmean>2240) && (xmean<=2560) && (ymean>3100) && (ymean<=3300)) { if((map[14]<17)&&(map[14]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[14]; } else if ((map[14]<17)&&(map[14]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,147,65,map[14]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[14]=selected; selected=0; } } else if((map[14]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,147,65,map[14]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[14]=selected; selected=0; } } else if( (map[14]>16) &&( (selected>16) || (selected==0)) &&(flag==1)){ selected=map[14]; } else if(map[14]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,147,65); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[14]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,147,65); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[14]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (mode==PLAY) && (xmean>2660) && (xmean<=2990) && (ymean>3100) && (ymean<=3300)) { if((map[15]<17)&&(map[15]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[15]; } else if ((map[15]<17)&&(map[15]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,174,65,map[15]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[15]=selected; selected=0; } } else if((map[15]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,174,65,map[15]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[15]=selected; selected=0; } } else if( (map[15]>16) &&( (selected>16) || (selected==0))&&(flag==1) ){ selected=map[15]; } else if(map[15]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,174,65); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[15]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,174,65); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[15]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (mode==PLAY) && (xmean>3110) && (xmean<=3410) && (ymean>3100) && (ymean<=3300)) { if((map[16]<17)&&(map[16]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[16]; } else if ((map[16]<17)&&(map[16]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,201,65,map[16]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[16]=selected; selected=0; } } else if((map[16]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,201,65,map[16]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[16]=selected; selected=0; } } else if( (map[16]>16) &&( (selected>16) || (selected==0)) &&(flag==1)){ selected=map[16]; } else if(map[16]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,201,65); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[16]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,201,65); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[16]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (mode==PLAY) && (xmean>3450) && (xmean<=3790) && (ymean>3100) && (ymean<=3300)) { if((map[17]<17)&&(map[17]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[17]; } else if ((map[17]<17)&&(map[17]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,228,65,map[17]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[17]=selected; selected=0; } } else if((map[17]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,228,65,map[17]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[17]=selected; selected=0; } } else if( (map[17]>16) &&( (selected>16) || (selected==0)) &&(flag==1)){ selected=map[17]; } else if(map[17]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,228,65); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[17]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,228,65); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[17]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>0) && (xmean<=450) && (ymean>2800) && (ymean<3000)&& (mode==PLAY)) { if((map[18]<17)&&(map[18]>0)&&(selected<17)&&(selected>=0)&&(flag==0)){ //? 1???,?????? selected=map[18]; } else if ((map[18]<17)&&(map[18]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,12,92,map[18]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[18]=selected; selected=0; } } else if((map[18]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,12,92,map[18]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[18]=selected; selected=0; } } else if( (map[18]>16) &&( (selected>16) || (selected==0))&&(flag==1) ){ selected=map[18]; } else if(map[18]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,12,92); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[18]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,12,92); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[18]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>570) && (xmean<=840) && (ymean>2800) && (ymean<3000)&& (mode==PLAY)) { if( (map[19]<17) && (map[19]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[19]; } else if ((map[19]<17)&&(map[19]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,39,92,map[19]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[19]=selected; selected=0; } } else if((map[19]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,39,92,map[19]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[19]=selected; selected=0; } } else if((map[19]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[19]; } else if(map[19]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,39,92); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[19]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,39,92); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[19]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>970) && (xmean<=1290) && (ymean>2800) && (ymean<3000)&& (mode==PLAY)) { if( (map[20]<17) && (map[20]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[20]; } else if ((map[20]<17)&&(map[20]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,66,92,map[20]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[20]=selected; selected=0; } } else if((map[20]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,66,92,map[20]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[20]=selected; selected=0; } } else if((map[20]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[20]; } else if(map[20]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,66,92); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[20]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,66,92); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[20]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1410) && (xmean<=1750) && (ymean>2800) && (ymean<3000)&& (mode==PLAY)) { if( (map[21]<17) && (map[21]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[21]; } else if ((map[21]<17)&&(map[21]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,93,92,map[21]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[21]=selected; selected=0; } } else if((map[21]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,93,92,map[21]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[21]=selected; selected=0; } } else if((map[21]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[21]; } else if(map[21]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,93,92); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[21]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,93,92); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[21]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1820) && (xmean<=2160) && (ymean>2800) && (ymean<3000)&& (mode==PLAY)) { if( (map[22]<17) && (map[22]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[22]; } else if ((map[22]<17)&&(map[22]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,120,92,map[22]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[22]=selected; selected=0; } } else if((map[22]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,120,92,map[22]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[22]=selected; selected=0; } } else if((map[22]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[22]; } else if(map[22]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,120,92); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[22]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,120,92); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[22]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2240) && (xmean<=2560) && (ymean>2800) && (ymean<3000)&& (mode==PLAY)) { if( (map[23]<17) && (map[23]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[23]; } else if ((map[23]<17)&&(map[23]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,147,92,map[23]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[23]=selected; selected=0; } } else if((map[23]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,147,92,map[23]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[23]=selected; selected=0; } } else if((map[23]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[23]; } else if(map[23]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,147,92); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[23]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,147,92); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[23]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2660) && (xmean<=2990) && (ymean>2800) && (ymean<3000)&& (mode==PLAY)) { if( (map[24]<17) && (map[24]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[24]; } else if ((map[24]<17)&&(map[24]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,174,92,map[24]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[24]=selected; selected=0; } } else if((map[24]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,174,92,map[24]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[24]=selected; selected=0; } } else if((map[24]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[24]; } else if(map[24]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,174,92); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[24]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,174,92); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[24]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3110) && (xmean<=3410) && (ymean>2800) && (ymean<3000)&& (mode==PLAY)) { if( (map[25]<17) && (map[25]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[25]; } else if ((map[25]<17)&&(map[25]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,201,92,map[25]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[25]=selected; selected=0; } } else if((map[25]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,201,92,map[25]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[25]=selected; selected=0; } } else if((map[25]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[25]; } else if(map[25]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,201,92); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[25]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,201,92); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[25]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3450) && (xmean<=3790) && (ymean>2800) && (ymean<3000)&& (mode==PLAY)) { if( (map[26]<17) && (map[26]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[26]; } else if ((map[26]<17)&&(map[26]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,228,92,map[26]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[26]=selected; selected=0; } } else if((map[26]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,228,92,map[26]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[26]=selected; selected=0; } } else if((map[26]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[26]; } else if(map[26]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,228,92); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[26]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,228,92); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[26]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>0) && (xmean<=450) && (ymean>2476) && (ymean<2676)&& (mode==PLAY)) { if( (map[27]<17) && (map[27]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[27]; } else if ((map[27]<17)&&(map[27]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,12,119,map[27]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[27]=selected; selected=0; } } else if((map[27]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,12,119,map[27]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[27]=selected; selected=0; } } else if((map[27]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[27]; } else if(map[27]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,12,119); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[27]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,12,119); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[27]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>570) && (xmean<=840) && (ymean>2476) && (ymean<2676)&& (mode==PLAY)) { if( (map[28]<17) && (map[28]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[28]; } else if ((map[28]<17)&&(map[28]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,39,119,map[28]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[28]=selected; selected=0; } } else if((map[28]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,39,119,map[28]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[28]=selected; selected=0; } } else if((map[28]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[28]; } else if(map[28]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,39,119); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[28]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,39,119); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[28]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>970) && (xmean<=1290) && (ymean>2476) && (ymean<2676)&& (mode==PLAY)) { if( (map[29]<17) && (map[29]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[29]; } else if ((map[29]<17)&&(map[29]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,66,119,map[29]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[29]=selected; selected=0; } } else if((map[29]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,66,119,map[29]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[29]=selected; selected=0; } } else if((map[29]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[29]; } else if(map[29]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,66,119); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[29]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,66,119); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[29]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1410) && (xmean<=1750) && (ymean>2476) && (ymean<2676)&& (mode==PLAY)) { if( (map[30]<17) && (map[30]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[30]; } else if ((map[30]<17)&&(map[30]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,93,119,map[30]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[30]=selected; selected=0; } } else if((map[30]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,93,119,map[30]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[30]=selected; selected=0; } } else if((map[30]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[30]; } else if(map[30]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,93,119); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[30]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,93,119); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[30]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1820) && (xmean<=2160) && (ymean>2476) && (ymean<2676)&& (mode==PLAY)) { if( (map[31]<17) && (map[31]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[31]; } else if ((map[31]<17)&&(map[31]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,120,119,map[31]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[31]=selected; selected=0; } } else if((map[31]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,120,119,map[31]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[31]=selected; selected=0; } } else if((map[31]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[31]; } else if(map[31]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,120,119); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[31]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,120,119); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[31]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2240) && (xmean<=2560) && (ymean>2476) && (ymean<2676)&& (mode==PLAY)) { if( (map[32]<17) && (map[32]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[32]; } else if ((map[32]<17)&&(map[32]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,147,119,map[32]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[32]=selected; selected=0; } } else if((map[32]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,147,119,map[32]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[32]=selected; selected=0; } } else if((map[32]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[32]; } else if(map[32]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,147,119); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[32]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,147,119); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[32]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2660) && (xmean<=2990) && (ymean>2476) && (ymean<2676)&& (mode==PLAY)) { if( (map[33]<17) && (map[33]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[33]; } else if ((map[33]<17)&&(map[33]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,174,119,map[33]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[33]=selected; selected=0; } } else if((map[33]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,174,119,map[33]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[33]=selected; selected=0; } } else if((map[33]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[33]; } else if(map[33]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,174,119); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[33]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,174,119); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[33]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3110) && (xmean<=3410) && (ymean>2476) && (ymean<2676)&& (mode==PLAY)) { if( (map[34]<17) && (map[34]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[34]; } else if ((map[34]<17)&&(map[34]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,201,119,map[34]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[34]=selected; selected=0; } } else if((map[34]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,201,119,map[34]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[34]=selected; selected=0; } } else if((map[34]>16) && ((selected>16)||selected==0)&&(flag==1)){ selected=map[34]; } else if(map[34]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,201,119); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[34]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,201,119); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[34]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3450) && (xmean<=3790) && (ymean>2476) && (ymean<2676)&& (mode==PLAY)) { if( (map[35]<17) && (map[35]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[35]; } else if ((map[35]<17)&&(map[35]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,228,119,map[35]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[35]=selected; selected=0; } } else if((map[35]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,228,119,map[35]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[35]=selected; selected=0; } } else if((map[35]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[35]; } else if(map[35]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,228,119); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[35]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,228,119); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[35]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>0) && (xmean<=450) && (ymean>2176) && (ymean<2376)&& (mode==PLAY)) { if( (map[36]<17) && (map[36]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[36]; } else if ((map[36]<17)&&(map[36]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,12,146,map[36]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[36]=selected; selected=0; } } else if((map[36]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,12,146,map[36]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[36]=selected; selected=0; } } else if((map[36]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[36]; } else if(map[36]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,12,146); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[36]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,12,146); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[36]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>570) && (xmean<=840) && (ymean>2176) && (ymean<2376)&& (mode==PLAY)) { if( (map[37]<17) && (map[37]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[37]; } else if ((map[37]<17)&&(map[37]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,39,146,map[37]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[37]=selected; selected=0; } } else if((map[37]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,39,146,map[37]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[37]=selected; selected=0; } } else if((map[37]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[37]; } else if(map[37]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,39,146); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[37]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,39,146); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[37]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>970) && (xmean<=1290) && (ymean>2176) && (ymean<2376)&& (mode==PLAY)) { if( (map[38]<17) && (map[38]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[38]; } else if ((map[38]<17)&&(map[38]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,66,146,map[38]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[38]=selected; selected=0; } } else if((map[38]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,66,146,map[38]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[38]=selected; selected=0; } } else if((map[38]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[38]; } else if(map[38]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,66,146); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[38]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,66,146); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[38]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1410) && (xmean<=1750) && (ymean>2176) && (ymean<2376)&& (mode==PLAY)) { if( (map[39]<17) && (map[39]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[39]; } else if ((map[39]<17)&&(map[39]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,93,146,map[39]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[39]=selected; selected=0; } } else if((map[39]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,93,146,map[39]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[39]=selected; selected=0; } } else if((map[39]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[39]; } else if(map[39]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,93,146); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[39]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,93,146); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[39]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1820) && (xmean<=2160) && (ymean>2176) && (ymean<2376)&& (mode==PLAY)) { if( (map[40]<17) && (map[40]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[40]; } else if ((map[40]<17)&&(map[40]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,120,146,map[40]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[40]=selected; selected=0; } } else if((map[40]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,120,146,map[40]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[40]=selected; selected=0; } } else if((map[40]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[40]; } else if(map[40]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,120,146); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[40]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,120,146); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[40]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2240) && (xmean<=2560) && (ymean>2176) && (ymean<2376)&& (mode==PLAY)) { if( (map[41]<17) && (map[41]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[41]; } else if ((map[41]<17)&&(map[41]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,147,146,map[41]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[41]=selected; selected=0; } } else if((map[41]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,147,146,map[41]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[41]=selected; selected=0; } } else if((map[41]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[41]; } else if(map[41]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,147,146); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[41]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,147,146); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[41]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2660) && (xmean<=2990) && (ymean>2176) && (ymean<2376)&& (mode==PLAY)) { if( (map[42]<17) && (map[42]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[42]; } else if ((map[42]<17)&&(map[42]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,174,146,map[42]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[42]=selected; selected=0; } } else if((map[42]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,174,146,map[42]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[42]=selected; selected=0; } } else if((map[42]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[42]; } else if(map[42]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,174,146); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[42]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,174,146); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[42]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3110) && (xmean<=3410) && (ymean>2176) && (ymean<2376)&& (mode==PLAY)) { if( (map[43]<17) && (map[43]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[43]; } else if ((map[43]<17)&&(map[43]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,201,146,map[43]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[43]=selected; selected=0; } } else if((map[43]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,201,146,map[43]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[43]=selected; selected=0; } } else if((map[43]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[43]; } else if(map[43]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,201,146); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[43]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,201,146); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[43]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3450) && (xmean<=3790) && (ymean>2176) && (ymean<2376)&& (mode==PLAY)) { if( (map[44]<17) && (map[44]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[44]; } else if ((map[44]<17)&&(map[44]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,228,146,map[44]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[44]=selected; selected=0; } } else if((map[44]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,228,146,map[44]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[44]=selected; selected=0; } } else if((map[44]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[44]; } else if(map[44]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,228,146); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[44]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,228,146); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[44]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>0) && (xmean<=450) && (ymean>1877) && (ymean<2077)&& (mode==PLAY)) { if( (map[45]<17) && (map[45]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[45]; } else if ((map[45]<17)&&(map[45]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,12,173,map[45]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[45]=selected; selected=0; } } else if((map[45]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,12,173,map[45]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[45]=selected; selected=0; } } else if((map[45]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[45]; } else if(map[45]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,12,173); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[45]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,12,173); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[45]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>570) && (xmean<=840) && (ymean>1877) && (ymean<2077)&& (mode==PLAY)) { if( (map[46]<17) && (map[46]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[46]; } else if ((map[46]<17)&&(map[46]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,39,173,map[46]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[46]=selected; selected=0; } } else if((map[46]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,39,173,map[46]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[46]=selected; selected=0; } } else if((map[46]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[46]; } else if(map[46]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,39,173); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[46]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,39,173); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[46]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>970) && (xmean<=1290) && (ymean>1877) && (ymean<2077)&& (mode==PLAY)) { if( (map[47]<17) && (map[47]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[47]; } else if ((map[47]<17)&&(map[47]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,66,173,map[47]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[47]=selected; selected=0; } } else if((map[47]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,66,173,map[47]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[47]=selected; selected=0; } } else if((map[47]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[47]; } else if(map[47]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,66,173); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[47]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,66,173); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[47]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1410) && (xmean<=1750) && (ymean>1877) && (ymean<2077)&& (mode==PLAY)) { if( (map[48]<17) && (map[48]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[48]; } else if ((map[48]<17)&&(map[48]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,93,173,map[48]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[48]=selected; selected=0; } } else if((map[48]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,93,173,map[48]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[48]=selected; selected=0; } } else if((map[48]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[48]; } else if(map[48]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,93,173); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[48]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,93,173); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[48]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1820) && (xmean<=2160) && (ymean>1877) && (ymean<2077)&& (mode==PLAY)) { if( (map[49]<17) && (map[49]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[49]; } else if ((map[49]<17)&&(map[49]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,120,173,map[49]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[49]=selected; selected=0; } } else if((map[49]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,120,173,map[49]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[49]=selected; selected=0; } } else if((map[49]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[49]; } else if(map[49]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,120,173); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[49]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,120,173); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[49]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2240) && (xmean<=2560) && (ymean>1877) && (ymean<2077)&& (mode==PLAY)) { if( (map[50]<17) && (map[50]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[50]; } else if ((map[50]<17)&&(map[50]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,147,173,map[50]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[50]=selected; selected=0; } } else if((map[50]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,147,173,map[50]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[50]=selected; selected=0; } } else if((map[50]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[50]; } else if(map[50]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,147,173); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[50]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,147,173); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[50]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2660) && (xmean<=2990) && (ymean>1877) && (ymean<2077)&& (mode==PLAY)) { if( (map[51]<17) && (map[51]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[51]; } else if ((map[51]<17)&&(map[51]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,174,173,map[51]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[51]=selected; selected=0; } } else if((map[51]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,174,173,map[51]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[51]=selected; selected=0; } } else if((map[51]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[51]; } else if(map[51]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,174,173); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[51]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,174,173); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[51]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3110) && (xmean<=3410) && (ymean>1877) && (ymean<2077)&& (mode==PLAY)) { if( (map[52]<17) && (map[52]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[52]; } else if ((map[52]<17)&&(map[52]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,201,173,map[52]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[52]=selected; selected=0; } } else if((map[52]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,201,173,map[52]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[52]=selected; selected=0; } } else if((map[52]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[52]; } else if(map[52]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,201,173); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[52]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,201,173); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[52]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3450) && (xmean<=3790) && (ymean>1877) && (ymean<2077)&& (mode==PLAY)) { if( (map[53]<17) && (map[53]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[53]; } else if ((map[53]<17)&&(map[53]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,228,173,map[53]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[53]=selected; selected=0; } } else if((map[53]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,228,173,map[53]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[53]=selected; selected=0; } } else if((map[53]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[53]; } else if(map[53]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,228,173); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[53]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,228,173); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[53]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>0) && (xmean<=450) && (ymean>1596) && (ymean<1796)&& (mode==PLAY)) { if( (map[54]<17) && (map[54]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[54]; } else if ((map[54]<17)&&(map[54]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,12,200,map[54]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[54]=selected; selected=0; } } else if((map[54]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,12,200,map[54]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[54]=selected; selected=0; } } else if((map[54]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[54]; } else if(map[54]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,12,200); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[54]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,12,200); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[54]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>570) && (xmean<=840) && (ymean>1596) && (ymean<1796)&& (mode==PLAY)) { if( (map[55]<17) && (map[55]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[55]; } else if ((map[55]<17)&&(map[55]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,39,200,map[55]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[55]=selected; selected=0; } } else if((map[55]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,39,200,map[55]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[55]=selected; selected=0; } } else if((map[55]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[55]; } else if(map[55]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,39,200); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[55]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,39,200); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[55]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>970) && (xmean<=1290) && (ymean>1596) && (ymean<1796)&& (mode==PLAY)) { if( (map[56]<17) && (map[56]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[56]; } else if ((map[56]<17)&&(map[56]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,66,200,map[56]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[56]=selected; selected=0; } } else if((map[56]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,66,200,map[56]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[56]=selected; selected=0; } } else if((map[56]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[56]; } else if(map[56]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,66,200); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[56]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,66,200); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[56]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1410) && (xmean<=1750) && (ymean>1596) && (ymean<1796)&& (mode==PLAY)) { if( (map[57]<17) && (map[57]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[57]; } else if ((map[57]<17)&&(map[57]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,93,200,map[57]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[57]=selected; selected=0; } } else if((map[57]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,93,200,map[57]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[57]=selected; selected=0; } } else if((map[57]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[57]; } else if(map[57]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,93,200); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[57]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,93,200); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[57]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1820) && (xmean<=2160) && (ymean>1596) && (ymean<1796)&& (mode==PLAY)) { if( (map[58]<17) && (map[58]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[58]; } else if ((map[58]<17)&&(map[58]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,120,200,map[58]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[58]=selected; selected=0; } } else if((map[58]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,120,200,map[58]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[58]=selected; selected=0; } } else if((map[58]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[58]; } else if(map[58]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,120,200); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[58]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,120,200); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[58]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2240) && (xmean<=2560) && (ymean>1596) && (ymean<1796)&& (mode==PLAY)) { if( (map[59]<17) && (map[59]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[59]; } else if ((map[59]<17)&&(map[59]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,147,200,map[59]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[59]=selected; selected=0; } } else if((map[59]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,147,200,map[59]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[59]=selected; selected=0; } } else if((map[59]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[59]; } else if(map[59]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,147,200); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[59]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,147,200); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[59]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2660) && (xmean<=2990) && (ymean>1596) && (ymean<1796)&& (mode==PLAY)) { if( (map[60]<17) && (map[60]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[60]; } else if ((map[60]<17)&&(map[60]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,174,200,map[60]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[60]=selected; selected=0; } } else if((map[60]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,174,200,map[60]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[60]=selected; selected=0; } } else if((map[60]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[60]; } else if(map[60]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,174,200); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[60]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,174,200); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[60]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3110) && (xmean<=3410) && (ymean>1596) && (ymean<1796)&& (mode==PLAY)) { if( (map[61]<17) && (map[61]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[61]; } else if ((map[61]<17)&&(map[61]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,201,200,map[61]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[61]=selected; selected=0; } } else if((map[61]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,201,200,map[61]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[61]=selected; selected=0; } } else if((map[61]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[61]; } else if(map[61]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,201,200); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[61]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,201,200); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[61]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3450) && (xmean<=3790) && (ymean>1596) && (ymean<1796)&& (mode==PLAY)) { if( (map[62]<17) && (map[62]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[62]; } else if ((map[62]<17)&&(map[62]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,228,200,map[62]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[62]=selected; selected=0; } } else if((map[62]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,228,200,map[62]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[62]=selected; selected=0; } } else if((map[62]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[62]; } else if(map[62]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,228,200); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[62]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,228,200); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[62]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>0) && (xmean<=450) && (ymean>1268) && (ymean<1468)&& (mode==PLAY)) { if( (map[63]<17) && (map[63]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[63]; } else if ((map[63]<17)&&(map[63]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,12,227,map[63]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[63]=selected; selected=0; } } else if((map[63]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,12,227,map[63]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[63]=selected; selected=0; } } else if((map[63]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[63]; } else if(map[63]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,12,227); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[63]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,12,227); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[63]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>570) && (xmean<=840) && (ymean>1268) && (ymean<1468)&& (mode==PLAY)) { if( (map[64]<17) && (map[64]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[64]; } else if ((map[64]<17)&&(map[64]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,39,227,map[64]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[64]=selected; selected=0; } } else if((map[64]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,39,227,map[64]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[64]=selected; selected=0; } } else if((map[64]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[64]; } else if(map[64]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,39,227); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[64]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,39,227); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[64]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>970) && (xmean<=1290) && (ymean>1268) && (ymean<1468)&& (mode==PLAY)) { if( (map[65]<17) && (map[65]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[65]; } else if ((map[65]<17)&&(map[65]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,66,227,map[65]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[65]=selected; selected=0; } } else if((map[65]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,66,227,map[65]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[65]=selected; selected=0; } } else if((map[65]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[65]; } else if(map[65]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,66,227); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[65]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,66,227); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[65]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1410) && (xmean<=1750) && (ymean>1268) && (ymean<1468)&& (mode==PLAY)) { if( (map[66]<17) && (map[66]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[66]; } else if ((map[66]<17)&&(map[66]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,93,227,map[66]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[66]=selected; selected=0; } } else if((map[66]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,93,227,map[66]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[66]=selected; selected=0; } } else if((map[66]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[66]; } else if(map[66]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,93,227); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[66]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,93,227); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[66]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1820) && (xmean<=2160) && (ymean>1268) && (ymean<1468)&& (mode==PLAY)) { if( (map[67]<17) && (map[67]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[67]; } else if ((map[67]<17)&&(map[67]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,120,227,map[67]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[67]=selected; selected=0; } } else if((map[67]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,120,227,map[67]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[67]=selected; selected=0; } } else if((map[67]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[67]; } else if(map[67]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,120,227); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[67]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,120,227); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[67]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2240) && (xmean<=2560) && (ymean>1268) && (ymean<1468)&& (mode==PLAY)) { if( (map[68]<17) && (map[68]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[68]; } else if ((map[68]<17)&&(map[68]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,147,227,map[68]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[68]=selected; selected=0; } } else if((map[68]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,147,227,map[68]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[68]=selected; selected=0; } } else if((map[68]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[68]; } else if(map[68]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,147,227); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[68]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,147,227); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[68]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2660) && (xmean<=2990) && (ymean>1268) && (ymean<1468)&& (mode==PLAY)) { if( (map[69]<17) && (map[69]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[69]; } else if ((map[69]<19)&&(map[69]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,174,227,map[69]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[69]=selected; selected=0; } } else if((map[69]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,174,227,map[69]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[69]=selected; selected=0; } } else if((map[69]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[69]; } else if(map[69]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,174,227); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[69]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,174,227); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[69]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3110) && (xmean<=3410) && (ymean>1268) && (ymean<1468)&& (mode==PLAY)) { if( (map[70]<17) && (map[70]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[70]; } else if ((map[70]<19)&&(map[70]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,201,227,map[70]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[70]=selected; selected=0; } } else if((map[70]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,201,227,map[70]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[70]=selected; selected=0; } } else if((map[70]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[70]; } else if(map[70]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,201,227); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[70]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,201,227); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[70]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3450) && (xmean<=3790) && (ymean>1268) && (ymean<1468)&& (mode==PLAY)) { if( (map[71]<17) && (map[71]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[71]; } else if ((map[71]<19)&&(map[71]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,228,227,map[71]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[71]=selected; selected=0; } } else if((map[71]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,228,227,map[71]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[71]=selected; selected=0; } } else if((map[71]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[71]; } else if(map[71]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,228,227); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[71]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,228,227); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[71]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>0) && (xmean<=450) && (ymean>925) && (ymean<1125)&& (mode==PLAY)) { if( (map[72]<17) && (map[72]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[72]; } else if ((map[72]<19)&&(map[72]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,12,254,map[72]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[72]=selected; selected=0; } } else if((map[72]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,12,254,map[72]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[72]=selected; selected=0; } } else if((map[72]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[72]; } else if(map[72]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,12,254); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[72]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,12,254); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[72]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>570) && (xmean<=840) && (ymean>925) && (ymean<1125)&& (mode==PLAY)) { if( (map[73]<17) && (map[73]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[73]; } else if ((map[73]<19)&&(map[73]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,39,254,map[73]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[73]=selected; selected=0; } } else if((map[73]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,39,254,map[73]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[73]=selected; selected=0; } } else if((map[73]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[73]; } else if(map[73]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,39,254); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[73]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,39,254); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[73]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>970) && (xmean<=1290) && (ymean>925) && (ymean<1125)&& (mode==PLAY)) { if( (map[74]<17) && (map[74]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[74]; } else if ((map[74]<19)&&(map[74]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,66,254,map[74]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[74]=selected; selected=0; } } else if((map[74]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,66,254,map[74]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[74]=selected; selected=0; } } else if((map[74]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[74]; } else if(map[74]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,66,254); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[74]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,66,254); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[74]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1410) && (xmean<=1750) && (ymean>925) && (ymean<1125)&& (mode==PLAY)) { if( (map[75]<17) && (map[75]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[75]; } else if ((map[75]<19)&&(map[75]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,93,254,map[75]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[75]=selected; selected=0; } } else if((map[75]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,93,254,map[75]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[75]=selected; selected=0; } } else if((map[75]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[75]; } else if(map[75]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,93,254); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[75]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,93,254); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[75]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1820) && (xmean<=2160) && (ymean>925) && (ymean<1125)&& (mode==PLAY)) { if( (map[76]<17) && (map[76]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[76]; } else if ((map[76]<17)&&(map[76]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,120,254,map[76]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[76]=selected; selected=0; } } else if((map[76]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,120,254,map[76]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[76]=selected; selected=0; } } else if((map[76]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[76]; } else if(map[76]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,120,254); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[76]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,120,254); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[76]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2240) && (xmean<=2560) && (ymean>925) && (ymean<1125)&& (mode==PLAY)) { if( (map[77]<17) && (map[77]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[77]; } else if ((map[77]<19)&&(map[77]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,147,254,map[77]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[77]=selected; selected=0; } } else if((map[77]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,147,254,map[77]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[77]=selected; selected=0; } } else if((map[77]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[77]; } else if(map[77]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,147,254); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[77]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,147,254); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[77]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2660) && (xmean<=2990) && (ymean>925) && (ymean<1125)&& (mode==PLAY)) { if( (map[78]<17) && (map[78]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[78]; } else if ((map[78]<19)&&(map[78]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,174,254,map[78]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[78]=selected; selected=0; } } else if((map[78]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,174,254,map[78]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[78]=selected; selected=0; } } else if((map[78]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[78]; } else if(map[78]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,174,254); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[78]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,174,254); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[78]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3110) && (xmean<=3410) && (ymean>925) && (ymean<1125)&& (mode==PLAY)) { if( (map[79]<17) && (map[79]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[79]; } else if ((map[79]<19)&&(map[79]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,201,254,map[79]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[79]=selected; selected=0; } } else if((map[79]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,201,254,map[79]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[79]=selected; selected=0; } } else if((map[79]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[79]; } else if(map[79]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,201,254); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[79]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,201,254); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[79]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3450) && (xmean<=3790) && (ymean>925) && (ymean<1125)&& (mode==PLAY)) { if( (map[80]<17) && (map[80]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[80]; } else if ((map[80]<19)&&(map[80]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,228,254,map[80]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[80]=selected; selected=0; } } else if((map[80]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,228,254,map[80]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[80]=selected; selected=0; } } else if((map[80]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[80]; } else if(map[80]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,228,254); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[80]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,228,254); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[80]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>0) && (xmean<=450) && (ymean>603) && (ymean<803)&& (mode==PLAY)) { if( (map[81]<17) && (map[81]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[81]; } else if ((map[81]<19)&&(map[81]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,12,281,map[81]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[81]=selected; selected=0; } } else if((map[81]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,12,281,map[81]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[81]=selected; selected=0; } } else if((map[81]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[81]; } else if(map[81]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,12,281); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[81]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,12,281); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[81]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>570) && (xmean<=840) && (ymean>603) && (ymean<803)&& (mode==PLAY)) { if( (map[82]<17) && (map[82]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[82]; } else if ((map[82]<19)&&(map[82]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,39,281,map[82]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[82]=selected; selected=0; } } else if((map[82]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,39,281,map[82]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[82]=selected; selected=0; } } else if((map[82]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[82]; } else if(map[82]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,39,281); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[82]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,39,281); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[82]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>970) && (xmean<=1290) && (ymean>603) && (ymean<803)&& (mode==PLAY)) { if( (map[83]<17) && (map[83]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[83]; } else if ((map[83]<19)&&(map[83]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,66,281,map[83]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[83]=selected; selected=0; } } else if((map[83]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,66,281,map[83]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[83]=selected; selected=0; } } else if((map[83]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[83]; } else if(map[83]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,66,281); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[83]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,66,281); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[83]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1410) && (xmean<=1750) && (ymean>603) && (ymean<803)&& (mode==PLAY)) { if( (map[84]<17) && (map[84]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[84]; } else if ((map[84]<19)&&(map[84]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,93,281,map[84]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[84]=selected; selected=0; } } else if((map[84]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,93,281,map[84]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[84]=selected; selected=0; } } else if((map[84]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[84]; } else if(map[84]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,93,281); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[84]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,93,281); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[84]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>1820) && (xmean<=2160) && (ymean>603) && (ymean<803)&& (mode==PLAY)) { if( (map[85]<17) && (map[85]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[85]; } else if ((map[85]<19)&&(map[85]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,120,281,map[85]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[85]=selected; selected=0; } } else if((map[85]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,120,281,map[85]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[85]=selected; selected=0; } } else if((map[85]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[85]; } else if(map[85]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,120,281); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[85]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,120,281); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[85]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2240) && (xmean<=2560) && (ymean>603) && (ymean<803)&& (mode==PLAY)) { if( (map[86]<17) && (map[86]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[86]; } else if ((map[86]<19)&&(map[86]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,147,281,map[86]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[86]=selected; selected=0; } } else if((map[86]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,147,281,map[86]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[86]=selected; selected=0; } } else if((map[86]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[86]; } else if(map[86]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,147,281); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[86]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,147,281); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[86]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>2660) && (xmean<=2990) && (ymean>603) && (ymean<803)&& (mode==PLAY)) { if( (map[87]<17) && (map[87]>0) && (selected<17) && (selected>=0)&&(flag==0) ){ //? 1???,?????? selected=map[87]; } else if ((map[87]<19)&&(map[87]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,174,281,map[87]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[87]=selected; selected=0; } } else if((map[87]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,174,281,map[87]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[87]=selected; selected=0; } } else if((map[87]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[87]; } else if(map[87]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,174,281); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[87]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,174,281); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[87]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3110) && (xmean<=3410) && (ymean>603) && (ymean<803)&& (mode==PLAY)) { if( (map[88]<17) && (map[88]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[88]; } else if ((map[88]<19)&&(map[88]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,201,281,map[88]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[88]=selected; selected=0; } } else if((map[88]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,201,281,map[88]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[88]=selected; selected=0; } } else if((map[88]>16) && ((selected>16)||selected==0)&&(flag==1) ){ selected=map[88]; } else if(map[88]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,201,281); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[88]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,201,281); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[88]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ( (xmean>3450) && (xmean<=3790) && (ymean>603) && (ymean<803)&& (mode==PLAY)) { if( (map[89]<17) && (map[89]>0) && (selected<17) && (selected>=0) &&(flag==0)){ //? 1???,?????? selected=map[89]; } else if ((map[89]<19)&&(map[89]>0)&&(selected>16)&&(flag==1)){ //???? eat_chessman(selected,228,281,map[89]); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[89]=selected; selected=0; } } else if((map[89]>16)&&(selected<17)&&(selected>0)&&(flag==0)){ // chi qi eat_chessman(selected,228,281,map[89]); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[89]=selected; selected=0; } } else if((map[89]>16) && ((selected>16)||selected==0) &&(flag==1)){ selected=map[89]; } else if(map[89]==0){// no chessman if((selected>16)&&(flag==1)){ move_chessman(selected,228,281); if(sign){ flag=0; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[89]=selected; selected=0; } } else if( (selected<=16) && (selected>0) && (flag==0) ){ move_chessman(selected,228,281); if(sign){ flag=1; //1 ZOU for(int i=0;i<90;i++){ if (map[i]==selected) map[i]=0; } map[89]=selected; selected=0; } } } //delay_ms(1); } // end if(mode) else if ((ymean>0) && (ymean<603)&& (mode==PLAY)){ draw_mainpage(); mode=MAINPAGE; } } ISR (TIMER0_COMPA_vect) begin //if (time1>0) --debouncetimes; end //============================================= /*ISR (TIMER0_OVF_vect) begin //the actual DDR accumulator1 = accumulator1 + increment1 ; highbyte1 = (char)(accumulator1 >> 24) ; accumulator2 = accumulator2 + increment2 ; highbyte2 = (char)(accumulator2 >> 24) ; // output the wavefrom sample OCR0A = 128 + (((sineTable1[highbyte1]+sineTable2[highbyte2]) * rampTable[rampCount])>>7); sample++ ; if (sample <= RAMPUPEND) rampCount++ ; if ((sample > RAMPUPEND && sample <= RAMPDOWNSTART )) rampCount = 255 ; else { if (sample > RAMPDOWNSTART && sample <= RAMPDOWNEND ) rampCount-- ; if (sample > RAMPDOWNEND)rampCount = 0; } // generate time base for MAIN // 62 counts is about 1 mSec count--; if (0 == count ) begin count=64; debouncetimes--; time++; //in mSec time2++; end end //============================================= void sound_init(){ for (int i=0; i<256; i++) begin sineTable1[i] = (char)(63.0 * sin(6.283*((float)i)/256.0)) ; sineTable2[i] = (char)(63.0 * sin(6.283*((float)i)/256.0)) ; // the following table needs // rampTable[0]=0 and rampTable[255]=127 rampTable[i] = i>>1 ; end //crank up the ISRs sei() ; } //============================================== void //sine2(unsigned long f) begin // make B.3 an output //DDRB = (1<> 8 ; DATA_L = reg; LCD_WR_CLR; // delay_ms( 1 ); LCD_WR_SET; LCD_CS_SET; } // write data void LCD_Write_Data( unsigned int value ) { LCD_RS_SET; //?? LCD_CS_CLR; DATA_H = value >> 8; DATA_L = value; LCD_WR_CLR; // delay_ms( 1 ); LCD_WR_SET; LCD_CS_SET; } //write data to register void LCD_Write_Com_Data( unsigned int reg, unsigned int value ) { LCD_Write_Com( reg ); LCD_Write_Data( value ); } // unsigned int LCD_Read_Data( unsigned int reg ) { LCD_Write_Com( reg ); unsigned int i; LCD_RS_SET; // DDRA = 0x00; DDRC = 0x00; LCD_CS_CLR; LCD_RD_CLR; i = PINC; //DATA_H i <<= 8; i |= PINA;//DATA_L LCD_RD_SET; LCD_CS_SET; DDRA = 0xFF; DDRC = 0xFF; return i; } void LCD_Clear() { unsigned int i,j; LCD_Write_Com_Data(0x004f,0); //???0 LCD_Write_Com_Data(0x004e,0); //???0 LCD_Write_Com( 0x0022 ); LCD_RS_SET; LCD_CS_CLR; DATA_H = 0xF8; DATA_L = 0x00; for(i=0;i<240;i++) for(j=0;j<320;j++) { LCD_WR_CLR; LCD_WR_SET; } LCD_CS_SET; } void Set_Cursor( unsigned int X_Pos, unsigned int Y_Pos ) { LCD_Write_Com_Data( 0x004e, X_Pos ); //?? LCD_Write_Com_Data( 0x004f, Y_Pos ); //?? } //initialize LCD void LCD_Init() { //reset LCD LCD_RESET_1; delay_ms(5); LCD_RESET_0; delay_ms(5); LCD_RESET_1; delay_ms(5); LCD_CS_CLR ; LCD_Write_Com_Data(0x0000,0x0001); delay_ms(1); LCD_Write_Com_Data(0x0003,0xA8A4); delay_ms(1); LCD_Write_Com_Data(0x000C,0x0000); delay_ms(1); LCD_Write_Com_Data(0x000D,0x080C); delay_ms(1); LCD_Write_Com_Data(0x000E,0x2B00); delay_ms(1); LCD_Write_Com_Data(0x001E,0x00B0); delay_ms(1); LCD_Write_Com_Data(0x0001,0x2B3F); delay_ms(1); //??????320*240 0x6B3F LCD_Write_Com_Data(0x0002,0x0600); delay_ms(1); LCD_Write_Com_Data(0x0010,0x0000); delay_ms(1); LCD_Write_Com_Data(0x0011,0x6070); delay_ms(1); //0x4030 //?????? 16?? LCD_Write_Com_Data(0x0005,0x0000); delay_ms(1); LCD_Write_Com_Data(0x0006,0x0000); delay_ms(1); LCD_Write_Com_Data(0x0016,0xEF1C); delay_ms(1); LCD_Write_Com_Data(0x0017,0x0003); delay_ms(1); LCD_Write_Com_Data(0x0007,0x0233); delay_ms(1); //0x0233 LCD_Write_Com_Data(0x000B,0x0000); delay_ms(1); LCD_Write_Com_Data(0x000F,0x0000); delay_ms(1); //?????? LCD_Write_Com_Data(0x0041,0x0000); delay_ms(1); LCD_Write_Com_Data(0x0042,0x0000); delay_ms(1); LCD_Write_Com_Data(0x0048,0x0000); delay_ms(1); LCD_Write_Com_Data(0x0049,0x013F); delay_ms(1); LCD_Write_Com_Data(0x004A,0x0000); delay_ms(1); LCD_Write_Com_Data(0x004B,0x0000); delay_ms(1); LCD_Write_Com_Data(0x0044,0xEF00); delay_ms(1); LCD_Write_Com_Data(0x0045,0x0000); delay_ms(1); LCD_Write_Com_Data(0x0046,0x013F); delay_ms(1); LCD_Write_Com_Data(0x0030,0x0707); delay_ms(1); LCD_Write_Com_Data(0x0031,0x0204); delay_ms(1); LCD_Write_Com_Data(0x0032,0x0204); delay_ms(1); LCD_Write_Com_Data(0x0033,0x0502); delay_ms(1); LCD_Write_Com_Data(0x0034,0x0507); delay_ms(1); LCD_Write_Com_Data(0x0035,0x0204); delay_ms(1); LCD_Write_Com_Data(0x0036,0x0204); delay_ms(1); LCD_Write_Com_Data(0x0037,0x0502); delay_ms(1); LCD_Write_Com_Data(0x003A,0x0302); delay_ms(1); LCD_Write_Com_Data(0x003B,0x0302); delay_ms(1); LCD_Write_Com_Data(0x0023,0x0000); delay_ms(1); LCD_Write_Com_Data(0x0024,0x0000); delay_ms(1); LCD_Write_Com_Data(0x0025,0x8000); delay_ms(1); LCD_Write_Com_Data(0x004e,0); //???0 LCD_Write_Com_Data(0x004f,0); //???0 LCD_CS_SET; } //set filling area void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2) { unsigned int x3; x2=x2 << 8; x3=x2|x1; LCD_Write_Com_Data(0x004e,x1); LCD_Write_Com_Data(0x004f,y1); LCD_Write_Com_Data(0x0044,x3); LCD_Write_Com_Data(0x0045,y1); LCD_Write_Com_Data(0x0046,y2); LCD_Write_Com(0x0022); } //draw a pixel void draw_pixel(unsigned int x, unsigned int y, unsigned int color) { LCD_CS_CLR; LCD_Write_Com_Data(0x004e,x); LCD_Write_Com_Data(0x004f,y); LCD_Write_Com(0x0022); LCD_Write_Data(color); LCD_CS_SET; } //pant LCD void Paint(unsigned int color) { int i,j; LCD_CS_CLR; Address_set(0,0,239,319); for(i=0;i<320;i++) { for (j=0;j<240;j++) { LCD_Write_Data(color); } } LCD_CS_SET; } //show color bar void show_colour_bar (void) { int V,H; LCD_CS_CLR; Address_set(0,0,239,319);//320x240 for(H=0;H<240;H++) { for(V=0;V<140;V++) LCD_Write_Data(0xf800); //red } for(H=0;H<240;H++) { for(V=140;V<280;V++) LCD_Write_Data(0x07e0); //green } for(H=0;H<240;H++) { for(V=280;V<320;V++) LCD_Write_Data(0x0000); //black } /* for(H=0;H<240;H++) { for(V=80;V<120;V++) LCD_Write_Data(0x001f); //blue } for(H=0;H<240;H++) { for(V=120;V<160;V++) LCD_Write_Data(0xffe0); //yellow } for(H=0;H<240;H++) { for(V=160;V<200;V++) LCD_Write_Data(0xf81f); //pink } for(H=0;H<240;H++) { for(V=200;V<240;V++) LCD_Write_Data(0x07ff); //shadow blue } for(H=0;H<240;H++) { for(V=240;V<280;V++) LCD_Write_Data(0xffff); //white } for(H=0;H<240;H++) { for(V=280;V<320;V++) LCD_Write_Data(0x0000); //black } */ LCD_CS_SET; return ; } void colour_setting (void) { int V,H; LCD_CS_CLR; Address_set(0,0,239,319);//320x240 for(H=0;H<240;H++) { for(V=0;V<140;V++) LCD_Write_Data(0xfe93); //chessboardyellow } for(H=0;H<240;H++) { for(V=140;V<280;V++) LCD_Write_Data(0x07e0); //green } for(H=0;H<240;H++) { for(V=280;V<320;V++) LCD_Write_Data(0x0000); //black } for(H=0;H<240;H++) { for(V=80;V<120;V++) LCD_Write_Data(0x001f); //blue } for(H=0;H<240;H++) { for(V=120;V<160;V++) LCD_Write_Data(0xffe0); //yellow } for(H=0;H<240;H++) { for(V=160;V<200;V++) LCD_Write_Data(0xf81f); //pink } for(H=0;H<240;H++) { for(V=200;V<240;V++) LCD_Write_Data(0x07ff); //shadow blue } for(H=0;H<240;H++) { for(V=240;V<280;V++) LCD_Write_Data(0xffff); //white } for(H=0;H<240;H++) { for(V=280;V<320;V++) LCD_Write_Data(0x0000); //black } showcharacterstr(30,160, "Choose_the_Color_You_Like",0x0000,0xFFFF); showcharacterstr(60,300,"Tap_to_main_menu",0xffff,0x0000); LCD_CS_SET; return ; } //draw a line on LCD void draw_line(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2,unsigned int color) { int dx,dy,e; dx=x2-x1; dy=y2-y1; if(dx>=0) { if(dy >= 0) // dy>=0 { if(dx>=dy) // 1/8 octant { e=dy-dx/2; while(x1<=x2) { draw_pixel(x1,y1,color); if(e>0){y1+=1;e-=dx;} x1+=1; e+=dy; } } else // 2/8 octant { e=dx-dy/2; while(y1<=y2) { draw_pixel(x1,y1,color); if(e>0){x1+=1;e-=dy;} y1+=1; e+=dx; } } } else // dy<0 { dy=-dy; // dy=abs(dy) if(dx>=dy) // 8/8 octant { e=dy-dx/2; while(x1<=x2) { draw_pixel(x1,y1,color); if(e>0){y1-=1;e-=dx;} x1+=1; e+=dy; } } else // 7/8 octant { e=dx-dy/2; while(y1>=y2) { draw_pixel(x1,y1,color); if(e>0){x1+=1;e-=dy;} y1-=1; e+=dx; } } } } else //dx<0 { dx=-dx; //dx=abs(dx) if(dy >= 0) // dy>=0 { if(dx>=dy) // 4/8 octant { e=dy-dx/2; while(x1>=x2) { draw_pixel(x1,y1,color); if(e>0){y1+=1;e-=dx;} x1-=1; e+=dy; } } else // 3/8 octant { e=dx-dy/2; while(y1<=y2) { draw_pixel(x1,y1,color); if(e>0){x1-=1;e-=dy;} y1+=1; e+=dx; } } } else // dy<0 { dy=-dy; // dy=abs(dy) if(dx>=dy) // 5/8 octant { e=dy-dx/2; while(x1>=x2) { draw_pixel(x1,y1,color); if(e>0){y1-=1;e-=dx;} x1-=1; e+=dy; } } else // 6/8 octant { e=dx-dy/2; while(y1>=y2) { draw_pixel(x1,y1,color); if(e>0){x1-=1;e-=dy;} y1-=1; e+=dx; } } } } } //draw a circle on LCD void draw_circle(unsigned int x, unsigned int y, unsigned int r,unsigned int color) { int a, b, num; a = 0; b = r; while(2 * b * b >= r * r) // { draw_pixel(x + a, y - b,color); // 0~1 draw_pixel(x - a, y - b,color); // 0~7 draw_pixel(x - a, y + b,color); // 4~5 draw_pixel(x + a, y + b,color); // 4~3 draw_pixel(x + b, y + a,color); // 2~3 draw_pixel(x + b, y - a,color); // 2~1 draw_pixel(x - b, y - a,color); // 6~7 draw_pixel(x - b, y + a,color); // 6~5 a++; num = (a * a + b * b) - r*r; if(num > 0) { b--; a--; } } } void draw_settingspage() { Paint(0xffff); drawrectangle(70,125,120,145,0x0000); } void inttostr(int dd,unsigned char *str) { str[0]=dd/10000+48; str[1]=(dd/1000)-((dd/10000)*10)+48; str[2]=(dd/100)-((dd/1000)*10)+48; str[3]=(dd/10)-((dd/100)*10)+48; str[4]=dd-((dd/10)*10)+48; str[5]=0; } void showcharacter(unsigned int x,unsigned int y,unsigned char value,unsigned int dcolor,unsigned int bgcolor) { unsigned char i,j; unsigned char *temp=character; LCD_CS_CLR; Address_set(x,y,x+7,y+11); temp+=(value-32)*12; for(j=0;j<12;j++) { for(i=0;i<8;i++) { if((*temp&(1<<(7-i)))!=0) { LCD_Write_Data(dcolor); } else { LCD_Write_Data(bgcolor); } } temp++; } LCD_CS_SET; } void showcharacterstr(unsigned int x,unsigned int y, char *str,unsigned int dcolor,unsigned int bgcolor) { unsigned int x1,y1; x1=x; y1=y; while(*str!='\0') { showcharacter(x1,y1,*str,dcolor,bgcolor); x1+=7; str++; } } void drawrectangle(unsigned int x1, unsigned int y1,unsigned int x2,unsigned int y2, unsigned color) { unsigned int i; for (i=0;i0)){ b1=ball1[id-1]; b2=ball2[eaten_id-17]; sp=ball1[id-1].property; from_x=ball1[id-1].x; from_y=ball1[id-1].y; } else if(id>=17){ b1=ball2[id-17]; b2=ball1[eaten_id-1]; sp=ball2[id-17].property; from_x=ball2[id-17].x; from_y=ball2[id-17].y; } party=b1.blong; dx=abs(from_x-to_x); dy=abs(from_y-to_y); switch (sp) { case 0: { if(((93<=to_x)&&(to_x<=147)&&(to_y<=92)&&(to_y>=38))||((93<=to_x)&&(to_x<=147)&&(to_y<=281)&&(to_y>=227))){//if destination is inside the grid if((dx<=27)&&(dy<=27)){ remove_prev(from_x, from_y,backgroundcolor); remove_prev(to_x,to_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if (eaten_id==5){ showcharacterstr(30,160, "The_Red_Won!", 0x0000, backgroundcolor); } if (eaten_id==21){ showcharacterstr(30,160, "The_Black_Won!", 0x0000, backgroundcolor); } b2.x=-1; b2.y=-1; if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } else{ //sine2(f); sign=0; break; } } else{ //sine2(f); sign=0; break; } } case 1: { if(((93<=to_x)&&(to_x<=147)&&(to_y<=92)&&(to_y>=38))||((93<=to_x)&&(to_x<=147)&&(to_y<=281)&&(to_y>=227))){ //if destination is inside the grid if((dx==27)&&(dy==27)){ remove_prev(from_x, from_y,backgroundcolor); remove_prev(to_x,to_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if (eaten_id==5){ showcharacterstr(30,160, "The_Red_Won!", 0x0000, backgroundcolor); } if (eaten_id==21){ showcharacterstr(30,160, "The_Black_Won!", 0x0000, backgroundcolor); } b2.x=-1; b2.y=-1; if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } else{ //sine2(f); sign=0; break; } } else{ //sine2(f); sign=0; break; } } case 2: { //????? if(((id<=16)&&(to_y<=96))||((id>=17)&&(to_y>=113))){ if ((dx==54)&&(dy==54)){ //??? int a=(to_x+from_x)/2; int b=(to_y+from_y)/2; for (int i=0;i<16;i++){ if(((ball1[i].x==a)&&(ball1[i].y==b))||((ball2[i].x==a)&&(ball2[i].y==b))){ //?xiang? //sine2(f); sign=0; break; } } //end for //can move ??xiang? remove_prev(from_x, from_y,backgroundcolor); remove_prev(to_x,to_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if (eaten_id==5){ showcharacterstr(30,160, "The_Red_Won!", 0x0000, backgroundcolor); } if (eaten_id==21){ showcharacterstr(30,160, "The_Black_Won!", 0x0000, backgroundcolor); } b2.x=-1; b2.y=-1; if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } else{ //???? //sine2(f); sign=0; break; } } //end ???? else{ //sine2(f); sign=0; break ; } } // end case case 3: //? { if((dx==54)&&(dy==27)){ //?????? for(int i=0;i<16;i++){ if((((to_x-from_x)>0)&&(ball1[i].x==(from_x+27))&&(ball1[i].y==from_y))){//??? //sine2(f); sign=0; break; } else if(((to_x-from_x)<0)&&(ball1[i].x=(from_x-27))&&(ball1[i].y==from_y)){//??? //sine2(f); sign=0; break; } else if(((to_x-from_x)>0)&&(ball2[i].x=(from_x+27))&&(ball2[i].y==from_y)){//??? //sine2(f); sign=0; break; } else if(((to_x-from_x)<0)&&(ball2[i].x=(from_x-27))&&(ball2[i].y==from_y)){//??? //sine2(f); sign=0; break; } } //end for //???? remove_prev(from_x, from_y,backgroundcolor); remove_prev(to_x,to_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if (eaten_id==5){ showcharacterstr(30,160, "The_Red_Won!", 0x0000, backgroundcolor); } if (eaten_id==21){ showcharacterstr(30,160, "The_Black_Won!", 0x0000, backgroundcolor); } b2.x=-1; b2.y=-1; if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } }//end if ???? else if ((dx==27)&&(dy==54)){ //????? for(int i=0;i<16;i++){ if((((to_y-from_y)>0)&&(ball1[i].y==(from_y+27))&&(ball1[i].x==from_x))){//??? //sine2(f); sign=0; break; } else if(((to_y-from_y)<0)&&(ball1[i].y=(from_y-27))&&(ball1[i].x==from_x)){//??? //sine2(f); sign=0; break; } else if(((to_y-from_y)>0)&&(ball2[i].y=(from_y+27))&&(ball2[i].x==from_x)){//??? //sine2(f); sign=0; break; } else if(((to_y-from_y)<0)&&(ball2[i].y=(from_y-27))&&(ball2[i].x==from_x)){//??? //sine2(f); sign=0; break; } } // end for remove_prev(from_x, from_y,backgroundcolor); remove_prev(to_x,to_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if (eaten_id==5){ showcharacterstr(30,160, "The_Red_Won!", 0x0000, backgroundcolor); } if (eaten_id==21){ showcharacterstr(30,160, "The_Black_Won!", 0x0000, backgroundcolor); } b2.x=-1; b2.y=-1; if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } // end if ???? else{ //??? //sine2(f); sign=0; break; } } // end case 3 case 4: { int dx3; int dy3; dx3=to_x-from_x; dy3=to_y-from_y; int a=0; if ( ((dx3==0) && (dy3!=0))||((dx3!=0)&&(dy3==0)) ){//right move if ((dy3 >0)){ //sit1 for (int j=1; j< ((dy3/27)) ;j++){//detect that if the path has an obstacle for (int i=0; i<16;i++){ if (((ball1[i].x==from_x)&&(ball1[i].y==from_y+27*j)) || ((ball2[i].x==from_x)&&(ball2[i].y==from_y+27*j)) ){ //sine2(f); sign=0; a=1; break;//if the occurrance of obstacle } } } if (a==0){ remove_prev(from_x, from_y,backgroundcolor); remove_prev(to_x, to_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if (eaten_id==5){ showcharacterstr(30,160, "The_Red_Won!", 0x0000, backgroundcolor); } if (eaten_id==21){ showcharacterstr(30,160, "The_Black_Won!", 0x0000, backgroundcolor); } if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } } else if ( dy3<0){//sit2 for (int j=1; j<( abs(dy3)/27);j++ ){ for (int i=0; i<16;i++){ if (((ball1[i].x==from_x)&&(ball1[i].y==from_y-27*j)) || ((ball2[i].x==from_x)&&(ball2[i].y==from_y-27*j)) ){ //sine2(f); sign=0; a=1; break; } } } if (a==0){ remove_prev(from_x, from_y,backgroundcolor); remove_prev(to_x, to_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if (eaten_id==5){ showcharacterstr(30,160, "The_Red_Won!", 0x0000, backgroundcolor); } if (eaten_id==21){ showcharacterstr(30,160, "The_Black_Won!", 0x0000, backgroundcolor); } if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } } else if (dx3>0){ //sit3 for (int j=1; j0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break ; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break ; } } } else if (dx3<0){ //sit4 for (int j=1;j< (( abs(dx3)/27));j++ ){ for (int i=0; i<16;i++){ if (((ball1[i].x==from_x-27*j)&&(ball1[i].y=from_y)) || ((ball2[i].x==from_x-27*j)&&(ball2[i].y==from_y)) ){ //sine2(f); sign=0; a=1; break; } } } if (a==0){ remove_prev(from_x, from_y,backgroundcolor); remove_prev(to_x, to_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if (eaten_id==5){ showcharacterstr(30,160, "The_Red_Won!", 0x0000, backgroundcolor); } if (eaten_id==21){ showcharacterstr(30,160, "The_Black_Won!", 0x0000, backgroundcolor); } if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break ; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break ; } } } } else{ //sine2(f); sign=0; break; } } case 5: { int dx2; int dy2; int signalforpao=0; dx2=to_x-from_x; dy2=to_y-from_y; if ( ((dx2==0) && (dy2!=0))||((dx2!=0)&&(dy2==0)) ){//right place if ((dy2 >0)){ //situation 1 for (int j=1; j< (dy2/27);j++ ){ for (int i=0; i<16;i++){ if (((ball1[i].x==from_x)&&(ball1[i].y==from_y+27*j)) || ((ball2[i].x==from_x)&&(ball2[i].y==from_y+27*j)) ){ signalforpao++; } } } if (signalforpao==1) {// remove_prev(from_x, from_y,backgroundcolor); remove_prev(to_x,to_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if (eaten_id==5){ showcharacterstr(30,160, "The_Red_Won!", 0x0000, backgroundcolor); } if (eaten_id==21){ showcharacterstr(30,160, "The_Black_Won!", 0x0000, backgroundcolor); } b2.x=-1; b2.y=-1; if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } else{ //sine2(f); sign=0; break; } } else if ( dy2<0){ // situation2 for (int j=1; j< ( abs(dy2)/27) ;j++){ for (int i=0; i<16;i++){ if (((ball1[i].x==from_x)&&(ball1[i].y==from_y-27*j)) || ((ball2[i].x==from_x)&&(ball2[i].y==from_y-27*j)) ){ signalforpao++; } } } if (signalforpao==1 ) { remove_prev(from_x, from_y,backgroundcolor); remove_prev(to_x,to_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if (eaten_id==5){ showcharacterstr(30,160, "The_Red_Won!", 0x0000, backgroundcolor); } if (eaten_id==21){ showcharacterstr(30,160, "The_Black_Won!", 0x0000, backgroundcolor); } b2.x=-1; b2.y=-1; if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } else{ //sine2(f); sign=0; break; } } else if ( dx2>0){ //situation 3 for (int j=1; j< dx2/27; j++ ){ for (int i=0; i<16;i++){ if (((ball1[i].x==from_x+27*j)&&(ball1[i].y==from_y)) || ((ball2[i].x==from_x+27*j)&&(ball2[i].y==from_y)) ){ signalforpao++; break; } } } if (signalforpao==1){ remove_prev(from_x, from_y,backgroundcolor); remove_prev(to_x,to_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if (eaten_id==5){ showcharacterstr(30,160, "The_Red_Won!", 0x0000, backgroundcolor); } if (eaten_id==21){ showcharacterstr(30,160, "The_Black_Won!", 0x0000, backgroundcolor); } b2.x=-1; b2.y=-1; if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; } else{ ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; } } else{ //sine2(f); sign=0; break; } } else if (dx2<0){ // situation 4 for (int j=1; j< ( abs(dx2)/27) ;j++){ for (int i=0; i<16;i++){ if (((ball1[i].x==from_x-27*j)&&(ball1[i].y==from_y)) || ((ball2[i].x==from_x-27*j)&&(ball2[i].y==from_y)) ){ signalforpao++; } } } if (signalforpao==1) { remove_prev(from_x, from_y,backgroundcolor); remove_prev(to_x,to_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if (eaten_id==5){ showcharacterstr(30,160, "The_Red_Won!", 0x0000, backgroundcolor); } if (eaten_id==21){ showcharacterstr(30,160, "The_Black_Won!", 0x0000, backgroundcolor); } b2.x=-1; b2.y=-1; if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } else{ //sine2(f); sign=0; break; } } } // end right place else{ //not in the right place //sine2(f); sign=0; break; } //break ; } case 6: { int dy1; dy1=to_y-from_y; if ((id<17) && (id>0)){ //chess of red if ( from_y >172){ //have accrossed the river if ( ((dx==27)&&(dy1==0)) || ((dy1==27) && (dx==0)) ){ //can move remove_prev(from_x, from_y,backgroundcolor); remove_prev(to_x,to_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if (eaten_id==5){ showcharacterstr(30,160, "The_Red_Won!", 0x0000, backgroundcolor); } if (eaten_id==21){ showcharacterstr(30,160, "The_Black_Won!", 0x0000, backgroundcolor); } b2.x=-1; b2.y=-1; ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; } else { //illeagal move //sine2(f); sign=0; break; } } else { //have not accross the river if ( (dx==0)&&(dy1==27) ){ remove_prev(from_x, from_y,backgroundcolor); remove_prev(to_x,to_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if (eaten_id==5){ showcharacterstr(30,160, "The_Red_Won!", 0x0000, backgroundcolor); } if (eaten_id==21){ showcharacterstr(30,160, "The_Black_Won!", 0x0000, backgroundcolor); } b2.x=-1; b2.y=-1; ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; } else { //sine2(f); sign=0; break; } } } // end red else { // black if ( (from_y<147)&& (from_y>0)){// have accross the river if ( ((dx==27)&&(dy1==0)) || ((dy1==-27) && (dx==0)) ){ //right place remove_prev(from_x, from_y,backgroundcolor); remove_prev(to_x,to_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if (eaten_id==5){ showcharacterstr(30,160, "The_Red_Won!", 0x0000, backgroundcolor); } if (eaten_id==21){ showcharacterstr(30,160, "The_Black_Won!", 0x0000, backgroundcolor); } b2.x=-1; b2.y=-1; ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; } else { //sine2(f); sign=0; break; } } else { //have not accross the river if ( (dx==0)&&(dy1==-27) ){ remove_prev(from_x, from_y,backgroundcolor); remove_prev(to_x,to_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if (eaten_id==5){ showcharacterstr(30,160, "The_Red_Won!", 0x0000, backgroundcolor); } if (eaten_id==21){ showcharacterstr(30,160, "The_Black_Won!", 0x0000, backgroundcolor); } b2.x=-1; b2.y=-1; ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; } else{ //sine2(f); sign=0; break; } } } break; } //end case 6 //default break; }//end switch }//end function //================================================================ void move_chessman(int id,int to_x,int to_y){ int sp,from_x,from_y,dx,dy,party; chessman b1; if((id<17)&&(id>0)){ b1=ball1[id-1]; sp=ball1[id-1].property; from_x=ball1[id-1].x; from_y=ball1[id-1].y; } else if(id>=17){ b1=ball2[id-17]; sp=ball2[id-17].property; from_x=ball2[id-17].x; from_y=ball2[id-17].y; } party=b1.blong; dx=abs(from_x-to_x); dy=abs(from_y-to_y); switch (sp) { case 0: { if(((93<=to_x)&&(to_x<=147)&&(to_y<=92)&&(to_y>=38))||((93<=to_x)&&(to_x<=147)&&(to_y<=281)&&(to_y>=227))){//if destination is inside the grid if((dx<=27)&&(dy<=27)){ remove_prev(from_x, from_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } else{ //sine2(f); sign=0; break; } } else{ //sine2(f); sign=0; break; } } case 1: { if(((93<=to_x)&&(to_x<=147)&&(to_y<=92)&&(to_y>=38))||((93<=to_x)&&(to_x<=147)&&(to_y<=281)&&(to_y>=227))){ //if destination is inside the grid if((dx==27)&&(dy==27)){ remove_prev(from_x, from_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } else{ //sine2(f); sign=0; break; } } else{ //sine2(f); sign=0; break; } } case 2: //? { //????? if(((id<=16)&&(to_y<=96))||((id>=17)&&(to_y>=113))){ if ((dx==54)&&(dy==54)){ //??? int a=(to_x+from_x)/2; int b=(to_y+from_y)/2; for (int i=0;i<16;i++){ if(((ball1[i].x==a)&&(ball1[i].y==b))||((ball2[i].x==a)&&(ball2[i].y==b))){ //?xiang? //sine2(f); sign=0; break; } } //end for remove_prev(from_x, from_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } else{ //???? //sine2(f); sign=0; break; } } //end ???? else{ //sine2(f); sign=0; break ; } } // end case case 3: //? { if((dx==54)&&(dy==27)){ //?????? for(int i=0;i<16;i++){ if((((to_x-from_x)>0)&&(ball1[i].x==(from_x+27))&&(ball1[i].y==from_y))){//??? //sine2(f); sign=0; break; } else if(((to_x-from_x)<0)&&(ball1[i].x=(from_x-27))&&(ball1[i].y==from_y)){//??? //sine2(f); sign=0; break; } else if(((to_x-from_x)>0)&&(ball2[i].x=(from_x+27))&&(ball2[i].y==from_y)){//??? //sine2(f); sign=0; break; } else if(((to_x-from_x)<0)&&(ball2[i].x=(from_x-27))&&(ball2[i].y==from_y)){//??? //sine2(f); sign=0; break; } } //end for //???? remove_prev(from_x, from_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } }//end if ???? else if ((dx==27)&&(dy==54)){ //????? for(int i=0;i<16;i++){ if((((to_y-from_y)>0)&&(ball1[i].y==(from_y+27))&&(ball1[i].x==from_x))){//??? //sine2(f); sign=0; break; } else if(((to_y-from_y)<0)&&(ball1[i].y=(from_y-27))&&(ball1[i].x==from_x)){//??? //sine2(f); sign=0; break; } else if(((to_y-from_y)>0)&&(ball2[i].y=(from_y+27))&&(ball2[i].x==from_x)){//??? //sine2(f); sign=0; break; } else if(((to_y-from_y)<0)&&(ball2[i].y=(from_y-27))&&(ball2[i].x==from_x)){//??? //sine2(f); sign=0; break; } } // end for remove_prev(from_x, from_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } // end if ???? else{ //??? //sine2(f); sign=0; break; } } // end case 3 case 4: { int dx3; int dy3; dx3=to_x-from_x; dy3=to_y-from_y; int a=0; if ( ((dx3==0) && (dy3!=0))||((dx3!=0)&&(dy3==0)) ){//right move if ((dy3 >0)){ //sit1 for (int j=1; j< ((dy3/27)) ;j++){//detect that if the path has an obstacle for (int i=0; i<16;i++){ if (((ball1[i].x==from_x)&&(ball1[i].y==from_y+27*j)) || ((ball2[i].x==from_x)&&(ball2[i].y==from_y+27*j)) ){ //sine2(f); sign=0; a=1; break;//if the occurrance of obstacle } } } if (a==0){ remove_prev(from_x, from_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } } else if ( dy3<0){//sit2 for (int j=1; j<( abs(dy3)/27);j++ ){ for (int i=0; i<16;i++){ if (((ball1[i].x==from_x)&&(ball1[i].y==from_y-27*j)) || ((ball2[i].x==from_x)&&(ball2[i].y==from_y-27*j)) ){ //sine2(f); sign=0; a=1; break; } } } if (a==0){ remove_prev(from_x, from_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } } else if (dx3>0){ //sit3 for (int j=1; j0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break ; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break ; } } } else if (dx3<0){ //sit4 for (int j=1;j< (( abs(dx3)/27));j++ ){ for (int i=0; i<16;i++){ if (((ball1[i].x==from_x-27*j)&&(ball1[i].y=from_y)) || ((ball2[i].x==from_x-27*j)&&(ball2[i].y==from_y)) ){ //sine2(f); sign=0; a=1; break; } } } if (a==0){ remove_prev(from_x, from_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break ; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break ; } } } } else{ //sine2(f); sign=0; break; } } case 5: { int dx3; int dy3; dx3=to_x-from_x; dy3=to_y-from_y; int a=0; if ( ((dx3==0) && (dy3!=0))||((dx3!=0)&&(dy3==0)) ){//right move if ((dy3 >0)){ //sit1 for (int j=1; j< ((dy3/27)) ;j++){//detect that if the path has an obstacle for (int i=0; i<16;i++){ if (((ball1[i].x==from_x)&&(ball1[i].y==from_y+27*j)) || ((ball2[i].x==from_x)&&(ball2[i].y==from_y+27*j)) ){ //sine2(f); sign=0; a=1; break;//if the occurrance of obstacle } } } if (a==0){ remove_prev(from_x, from_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } } else if ( dy3<0){//sit2 for (int j=1; j<( abs(dy3)/27);j++ ){ for (int i=0; i<16;i++){ if (((ball1[i].x==from_x)&&(ball1[i].y==from_y-27*j)) || ((ball2[i].x==from_x)&&(ball2[i].y==from_y-27*j)) ){ //sine2(f); sign=0; a=1; break; } } } if (a==0){ remove_prev(from_x, from_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break; } } } else if (dx3>0){ //sit3 for (int j=1; j0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break ; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break ; } } } else if (dx3<0){ //sit4 for (int j=1;j< (( abs(dx3)/27));j++ ){ for (int i=0; i<16;i++){ if (((ball1[i].x==from_x-27*j)&&(ball1[i].y=from_y)) || ((ball2[i].x==from_x-27*j)&&(ball2[i].y==from_y)) ){ //sine2(f); sign=0; a=1; break; } } } if (a==0){ remove_prev(from_x, from_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); if ((id<17)&&(id>0)){ ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; break ; } else { ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; break ; } } } } else{ //sine2(f); sign=0; break; } } case 6: { int dy1; dy1=to_y-from_y; if ((id<17) && (id>0)){ //chess of red if ( from_y >172){ //have accrossed the river if ( ((dx==27)&&(dy1==0)) || ((dy1==27) && (dx==0)) ){ //across the river, "left " ,"right", "forward" remove_prev(from_x, from_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; } else { //illeagal move //sine2(f); sign=0; break; } } else { //have not accross the river if ( (dx==0)&&(dy1==27) ){//just "forward" remove_prev(from_x, from_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); ball1[id-1].pre_x=from_x; ball1[id-1].pre_y=from_y; ball1[id-1].x=to_x; ball1[id-1].y=to_y; sign=1; } else {//movement illegal //sine2(f); sign=0; break; } } } // end red else { // black if ( (from_y<147)&& (from_y>0)){// have accross the river if ( ((dx==27)&&(dy1==0)) || ((dy1==-27) && (dx==0)) ){ //across the river, "left " ,"right", "forward" remove_prev(from_x, from_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; } else {//illegal //sine2(f); sign=0; break; } } else if (from_y>170){ //have not accross the river if ( (dx==0)&&(dy1==-27) ){//just "forward" remove_prev(from_x, from_y,backgroundcolor); if(party==0) video_chessmate(to_x,(to_y-radius),b1.c,0xf800); else video_chessmate(to_x,(to_y-radius),b1.c,0x0000); ball2[id-17].pre_x=from_x; ball2[id-17].pre_y=from_y; ball2[id-17].x=to_x; ball2[id-17].y=to_y; sign=1; } else{ //sine2(f); sign=0; break; } } } break; } //end case 6 //default break; }//end switch }//end function void remove_prev(int x, int y,unsigned col){ if( (y==38) && (x==12)){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x,y,x,y+radius,0x0000); draw_line(x,y,x+radius,y,0x0000); } else if((x==228)&&(y==38)){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x,y,x,y+radius,0x0000); draw_line(x-radius,y,x,y,0x0000); } else if((y==281) && (x==12)){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x,y,x,y-radius,0x0000); draw_line(x,y,x+radius,y,0x0000); } else if((y==281) && (x==228)){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x,y,x,y-radius,0x0000); draw_line(x,y,x-radius,y,0x0000); } else if (((x==120) && (y==281)) ||((x==39) && (y==281)) || ((x==66) && (y==281)) || ((x==174) && (y==281)) || ((x==201) && (y==281)) || ((x==39) && (y==146)) || ((x==66) && (y==146)) || ((x==93) && (y==146))|| ((x==120) && (y==146)) || ((x==147) && (y==146)) || ((x==174) && (y==146)) || ((x==201) && (y==146))){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x,y,x,y-radius,0x0000); draw_line(x-radius,y,x+radius,y,0x0000); } else if (((x==39) && (y==38)) || ((x==66) && (y==38)) || ((x==174) && (y==38)) || ((x==201) && (y==38))||((y==173)&&((x>=39)&&(x<=201)))||((x==120) && (y==38))) { drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x,y,x,y+radius,0x0000); draw_line(x-radius,y,x+radius,y,0x0000); } else if (((x==39)&&(y==65)) || ((x==66)&&(y==65)) ||((x==39)&&(y==92)) ||((x==66)&&(y==92))||((x==174)&&(y==65)) || ((x==201)&&(y==65)) ||((x==174)&&(y==92)) ||((x==201)&&(y==92))||((x==39)&&(y==227)) || ((x==66)&&(y==227)) ||((x==39)&&(y==254)) ||((x==66)&&(y==254))||((x==174)&&(y==227)) || ((x==201)&&(y==227)) ||((x==174)&&(y==254)) ||((x==201)&&(y==254)) || ((y==119) && ((x>=39)&&(x<=201)))||((y==200) && ((x>=39)&&(x<=201)))){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x,y-radius,x,y+radius,0x0000); draw_line(x-radius,y,x+radius,y,0x0000); } else if((x==12)&& ((y>=65) && (y<=254))){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x,y,x+radius,y,0x0000); draw_line(x,y-radius,x,y+radius,0x0000); } else if((x==228)&& ((y>=65) && (y<=254))){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x,y,x-radius,y,0x0000); draw_line(x,y-radius,x,y+radius,0x0000); } else if ((x==120) && ((y==65 )|| (y==254))){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x-radius,y,x+radius,y,0x0000); draw_line(x-radius,y+radius,x+radius,y-radius,0x0000); draw_line(x-radius,y-radius,x+radius,y+radius,0x0000); } else if((x==93)&& (y==38)){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x-radius,y,x+radius,y,0x0000); draw_line(x,y,x,y+radius,0x0000); draw_line(x,y,x+radius,y+radius,0x0000); } else if((x==147)&& (y==38)){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x-radius,y,x+radius,y,0x0000); draw_line(x,y,x,y+radius,0x0000); draw_line(x,y,x-radius,y+radius,0x0000); } else if((x==93)&& (y==281)){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x-radius,y,x+radius,y,0x0000); draw_line(x,y,x,y-radius,0x0000); draw_line(x,y,x+radius,y-radius,0x0000); } else if((x==147)&& (y==281)){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x-radius,y,x+radius,y,0x0000); draw_line(x,y,x,y-radius,0x0000); draw_line(x,y,x-radius,y-radius,0x0000); } else if (((x==93) && (y==65)) ||((x==147) && (y==65))||((x==120) && (y==92))||((x==93) && (y==254))||((x==147) && (y==254))||((x==120) && (y==227))){ drawrectangle(x-radius, y-radius,x+radius,y+radius, 0xffff); draw_line(x-radius,y,x+radius,y,0x0000); draw_line(x,y-radius,x,y+radius,0x0000); } else if ((x==93)&&(y==92)){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x-radius,y,x+radius,y,0x0000); draw_line(x,y-radius,x,y+radius,0x0000); draw_line(x,y,x+radius,y-radius,0x0000); } else if ((x==147)&&(y==92)){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x-radius,y,x+radius,y,0x0000); draw_line(x,y-radius,x,y+radius,0x0000); draw_line(x,y,x-radius,y-radius,0x0000); } else if ((x==93)&&(y==227)){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x-radius,y,x+radius,y,0x0000); draw_line(x,y-radius,x,y+radius,0x0000); draw_line(x,y,x+radius,y+radius,0x0000); } else if ((x==147)&&(y==227)){ drawrectangle(x-radius, y-radius,x+radius,y+radius, col); draw_line(x-radius,y,x+radius,y,0x0000); draw_line(x,y-radius,x,y+radius,0x0000); draw_line(x,y,x-radius,y+radius,0x0000); } } //================================================================= int main() { uart_init(); stdout = stdin = stderr = &uart_str; //set up timer 0 for 1 mSec timebase TIMSK0= (1<2){ xmean=(xplus-xmax-xmin)/(debouncecount-2); ymean=(yplus-ymax-ymin)/(debouncecount-2); } else{ xmean=xplus/debouncecount; ymean=yplus/debouncecount; } debouncecount=0; xplus=0; yplus=0; fprintf(stdout,"flag=%d\n\r",flag) ; task(); } end } }