- 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); //若延遲時間很短,則快速刷新本函數
- }
- }
復制代碼
大概函數就是這樣,判斷不出來五連子
|