五子棋

#include <graphics.h>   
#include <conio.h>
#include<bits/stdc++.h>
bool xx[700][480]={0};
int yy[700][480]={0};
int e=0;
int x=0,y=0;
bool win(int x,int y){
    int l=yy[x][y];
    if(yy[x][y-20]==l&&yy[x][y-40]==l&&yy[x][y-60]==l&&yy[x][y-80]==l){
        e=1;
    }else if(yy[x][y-20]==l&&yy[x][y-40]==l&&yy[x][y-60]==l&&yy[x][y+20]==l){
        e=1;
    }else if(yy[x][y-20]==l&&yy[x][y-40]==l&&yy[x][y+20]==l&&yy[x][y+40]==l){
        e=1;
    }else if(yy[x][y-20]==l&&yy[x][y+20]==l&&yy[x][y+40]==l&&yy[x][y+60]==l){
        e=1;
    }else if(yy[x][y+20]==l&&yy[x][y+40]==l&&yy[x][y+60]==l&&yy[x][y+80]==l){
        e=1;
    }else if(yy[x-20][y]==l&&yy[x-40][y]==l&&yy[x-60][y]==l&&yy[x-80][y]==l){
        e=1;
    }else if(yy[x-20][y]==l&&yy[x-40][y]==l&&yy[x-60][y]==l&&yy[x+20][y]==l){
        e=1;
    }else if(yy[x-20][y]==l&&yy[x-40][y]==l&&yy[x+40][y]==l&&yy[x+20][y]==l){
        e=1;
    }else if(yy[x-20][y]==l&&yy[x+60][y]==l&&yy[x+40][y]==l&&yy[x+20][y]==l){
        e=1;
    }else if(yy[x+80][y]==l&&yy[x+60][y]==l&&yy[x+40][y]==l&&yy[x+20][y]==l){
        e=1;
    }else if(yy[x+20][y-20]==l&&yy[x+40][y-40]==l&&yy[x+60][y-60]==l&&yy[x+80][y-80]==l){
        e=1;
    }else if(yy[x+20][y-20]==l&&yy[x+40][y-40]==l&&yy[x+60][y-60]==l&&yy[x-20][y+20]==l){
        e=1;
    }else if(yy[x+20][y-20]==l&&yy[x-60][y+60]==l&&yy[x-40][y+40]==l&&yy[x-20][y+20]==l){
        e=1;
    }else if(yy[x+20][y-20]==l&&yy[x-60][y+60]==l&&yy[x-40][y+40]==l&&yy[x-20][y+20]==l){
        e=1;
    }else if(yy[x-80][y+80]==l&&yy[x-60][y+60]==l&&yy[x-40][y+40]==l&&yy[x-20][y+20]==l){
        e=1;
    }else if(yy[x+20][y+20]==l&&yy[x+40][y+40]==l&&yy[x+60][y+60]==l&&yy[x+80][y+80]==l){
        e=1;
    }else if(yy[x+20][y+20]==l&&yy[x+40][y+40]==l&&yy[x+60][y+60]==l&&yy[x-20][y-20]==l){
        e=1;
    }else if(yy[x+20][y+20]==l&&yy[x+40][y+40]==l&&yy[x-40][y-40]==l&&yy[x-20][y-20]==l){
        e=1;
    }else if(yy[x+20][y+20]==l&&yy[x-60][y-60]==l&&yy[x-40][y-40]==l&&yy[x-20][y-20]==l){
        e=1;
    }else if(yy[x-80][y-80]==l&&yy[x-60][y-60]==l&&yy[x-40][y-40]==l&&yy[x-20][y-20]==l){
        e=1;
    }
}
void f(){
	if(x%20<10){
		x=x-x%20;
	}else{
		x=x+20-x%20;
	}
	if(y%20<10){
		y=y-y%20;
	}else{
		y=y+20-y%20;
	}
}
int main(){
	srand(time(0));
    initgraph(700,480);
    setbkcolor(GREEN);
    cleardevice();
    for(int j=20;j<=480;j+=20){
        line(0,j,700,j);
    }
    for(int j=20;j<=700;j+=20){
        line(j,0,j,480);
    }
    ExMessage a;
    while(1){
        a=getmessage();
        if(a.message==WM_LBUTTONDOWN){
		            x=a.x,y=a.y;
		            f();
                	if(xx[x][y]==0){
                		xx[x][y]=1;
                		setfillcolor(BLACK);
	                    yy[x][y]=1;
	                    solidcircle(x,y,8);
	                    win(x,y);
	                    if(e==1){
	                        outtextxy(340,240,"black win");
	                        _getch();              
	                        closegraph();
	                    }
	                    
	                    do{
                			x=rand()%700,y=rand()%480;
                			f();
						}while(xx[x][y]==1);
						xx[x][y]=1;
	            		setfillcolor(WHITE);
	                    yy[x][y]=2;
	                    solidcircle(x,y,8);
	                    win(x,y);
	                    if(e==1){
	                        outtextxy(340,240,"white win");
	                        _getch();              
	                        closegraph();
	                    }
					}       
        }
    }  
    _getch();              
    closegraph();          
    return 0;
}

  

posted @ 2025-07-12 10:03  陈若麟  阅读(12)  评论(0)    收藏  举报