- unsigned char idata qipan[8][8]={0}; //棋盘
- unsigned char x=0,y=0,z=7,y=7;
- void anjian() //通过按键确定光标位置和下棋位置
- {
-
- if(K1==0)flag1=1;
- if(K1==1&&flag1==1) //放手
- { flag1=0;
- if(x>=1)//
- x--;
- if(z>=1)//棋盘能下的位置
- z--;
- }
-
- if(K2==0)flag2=1;
- if(K2==1&&flag2==1) //放手
- { flag2=0;
- if(x<7)
- x++;
- if(z<7)
- z++;
- }
- if(K3==0)flag3=1;
- if(K3==1&&flag3==1) //放手
- { flag3=0;
- if(y>=1)
- y--;
- if(k>=1)
- k--;
- }
- if(K4==0)flag4=1;
- if(K4==1&&flag4==1) //放手
- { flag4=0;
-
- if(y<7)
- y++;
- if(k<7)
- k++;
- }
- if(K5==0)flag5=1;
- if(K5==1&&flag5==1) //放手
- { flag5=0;
- switch(nowplayer)
- {
- case 1:player1lie[y]=player1lie[y]|(0xc000>>2*x);nowplayer=player2;qipan[k][z]=1; break;//落棋
- case 2: player2lie[y]=player2lie[y]|(0xc000>>2*x);nowplayer=player1;qipan[k][z]=2; break;
- }
- }
- }[i]void checkplayer1()//用户1胜
- {
- for(i=7;i>0;i--){ //判断棋子是否水平方向五连;
- for(j=3;j>0;j--)
- {
- if(qipan[i][j]==1&&qipan[i][j+1]==1&&qipan[i][j+2]==1&&qipan[i][j+3]==1&&qipan[i][j+4]==1){ //判断棋子是否是用户1的
-
- player1win();
- }
- }
- void main()
- {
- nowplayer=player1;
- while(1)
- {
- anjian(); //内有延迟函数
- checkplayer1(); //用户1胜
- display(1); //若延迟时间很短,则快速刷新本函数
- }
- }
复制代码
大概函数就是这样,判断不出来五连子
|