专栏文章
easyx五子棋
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mipyonjl
- 此快照首次捕获于
- 2025/12/03 20:06 3 个月前
- 此快照最后确认于
- 2025/12/03 20:06 3 个月前
CPP
#include<easyx.h>
#include<graphics.h>
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int MAXN=19;
const int siz=40;
int mp[MAXN+10][MAXN+10]={0},t=1;
void draw();
void end_draw(int x_1,int y_1,int x_2,int y_2);
void check(int x,int y);
signed main(){
initgraph(25+25+siz*MAXN,25+25+siz*MAXN,1);
setlinestyle(PS_SOLID,2);
draw();
while(1){
ExMessage msg={0};
peekmessage(&msg,EX_MOUSE);
for(int i=1;i<=MAXN;i++){
for(int j=1;j<=MAXN;j++){
int x=i*siz+25,y=j*siz+25;
if(msg.message==WM_LBUTTONDOWN&&msg.x>=x-4&&msg.x<=x+4&&msg.y>=y-4&&msg.y<=y+4&&mp[j][i]==0){
mp[j][i]=t;
if(t==1) t=2;
else t=1;
}
}
}
if(msg.message==WM_LBUTTONDOWN){
draw();
}
for(int i=1;i<=15;i++){
for(int j=1;j<=15;j++){
check(i,j);
}
}
}
}
void draw(){
cleardevice();
BeginBatchDraw();
for(int i=0;i<=MAXN;i++){
line(25,25+i*siz,25+MAXN*siz,25+i*siz);
}
for(int i=0;i<=MAXN;i++){
line(i*siz+25,25,i*siz+25,25+MAXN*siz);
}
for(int i=1;i<=MAXN;i++){
for(int j=1;j<=MAXN;j++){
if(mp[j][i]==1){
setfillcolor(RGB(90,90,90));
solidcircle(i*siz+25,j*siz+25,siz/2.5);
}
if(mp[j][i]==2){
setfillcolor(RGB(255,255,255));
solidcircle(i*siz+25,j*siz+25,siz/2.5);
}
}
}
EndBatchDraw();
}
void check(int x,int y){
if(mp[x][y]==mp[x][y+1]&&mp[x][y+1]==mp[x][y+2]&&mp[x][y+2]==mp[x][y+3]&&mp[x][y+3]==mp[x][y+4]&&(mp[x][y]==1||mp[x][y]==2)){
end_draw(y*siz,x*siz,(y+4)*siz,x*siz);
}
if(mp[x][y]==mp[x+1][y]&&mp[x+1][y]==mp[x+2][y]&&mp[x+2][y]==mp[x+3][y]&&mp[x+3][y]==mp[x+4][y]&&(mp[x][y]==1||mp[x][y]==2)){
end_draw(y*siz,x*siz,y*siz,(x+4)*siz);
}
if(mp[x][y]==mp[x+1][y+1]&&mp[x+1][y+1]==mp[x+2][y+2]&&mp[x+2][y+2]==mp[x+3][y+3]&&mp[x+3][y+3]==mp[x+4][y+4]&&(mp[x][y]==1||mp[x][y]==2)){
end_draw(y*siz,x*siz,(y+4)*siz,(x+4)*siz);
}
if(mp[x][y]==mp[x+1][y-1]&&mp[x+1][y-1]==mp[x+2][y-2]&&mp[x+2][y-2]==mp[x+3][y-3]&&mp[x+3][y-3]==mp[x+4][y-4]&&(mp[x][y]==1||mp[x][y]==2)){
end_draw(y*siz,x*siz,(y-4)*siz,(x+4)*siz);
}
}
void end_draw(int x_1,int y_1,int x_2,int y_2){
setlinecolor(RGB(245,105,105));
setlinestyle(PS_SOLID,6);
line(x_1+25,y_1+25,x_2+25,y_2+25);
Sleep(3000);
exit(0);
}
//原创:cyx1234
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...