#include<graphics.h>
#include<windows.h>
#include<iostream>
#define MAX 20
using namespace std;
bool flag=true;
int temp=1; // 为了实现黑白棋子的交替,使用全局变量
void qizi(int array2[][MAX],int array3[][MAX],int array1[][MAX]);
void huaqizi1(int array2[][MAX],int array3[][MAX],int array1[][MAX],mouse_msg msg);
void huaqizi2(int array2[][MAX],int array3[][MAX],int array1[][MAX],mouse_msg msg);
void huaqizi3(int array2[][MAX],int array3[][MAX],int array1[][MAX],mouse_msg msg);
void huaqizi4(int array2[][MAX],int array3[][MAX],int array1[][MAX],mouse_msg msg);
void PanDuanBaiZi1(int array2[][MAX],int a,int b);
void PanDuanBaiZi2(int array2[][MAX],int a,int b);
void PanDuanBaiZi3(int array2[][MAX],int a,int b);
void PanDuanBaiZi4(int array2[][MAX],int a,int b);
void PanDuanHeiZi1(int array3[][MAX],int a,int b);
void PanDuanHeiZi2(int array3[][MAX],int a,int b);
void PanDuanHeiZi3(int array3[][MAX],int a,int b);
void PanDuanHeiZi4(int array3[][MAX],int a,int b);
int main(void)
{
//储存白子,只要交叉点的坐标下了白子,就将该坐标置为2
int array2[MAX][MAX]={0};
//储存黑子,只要交叉点的坐标下了黑子,就将该坐标置为3
int array3[MAX][MAX]={0};
//储存棋子,只要该坐标下了棋子,就置为1,则该点不能被重新下棋子
int array1[MAX][MAX]={0};
int k;
//接下来的几个循环是将棋盘外面的区域置为1,表明不可被下棋子
for(k=0;k<MAX;k++)
{
array1[0][k]=1;
}
int q;
for(q=0;q<MAX;q++)
{
array1[q][0]=1;
}
int w;
for(w=0;w<MAX;w++)
{
array1[15][w]=1;
}
int h,m;
for(m=15;m<MAX;m++)
{
for(h=0;h<15;h++)
{
array1[h][m]=1;
}
}
initgraph(800,600);
setcolor(GREEN);
//画棋盘,横有十四条线,纵有十四条线
int i;
for(i=40;i<=560;i=i+40)
{
line(i,40,i,560);
}
int j;
for(j=40;j<=560;j=j+40)
{
line(40,j,560,j);
}
//接下来是对棋子的操作
qizi(array2,array3,array1);
getch();
closegraph();
return 0;
}
void qizi(int array2[][MAX],int array3[][MAX],int array1[][MAX])
{
//鼠标函数实现
mouse_msg msg={0};
for(; is_run()&&temp==1; delay_fps(60))
{
while(mousemsg())
{
msg=getmouse();
}
//接下来四个区域,要实现当鼠标点击时,离该点最近的交叉点画圆,
//确保每个棋子都落在交叉点上
//以下四个函数是对该思路的算法实现
if(msg.x%40<=18&&msg.y%40<=18)
{
huaqizi1(array2,array3,array1,msg);
}
else if(msg.x%40<18&&msg.y%40>18)
{
huaqizi2(array2,array3,array1,msg);
}
else if(msg.x%40>18&
五子棋小案例
最新推荐文章于 2021-05-02 19:53:15 发布
这篇博客分享了作者使用ege图形库完成五子棋小案例的心得,学习到新知识的同时,也意识到没有添加开始游戏的动态gif和人机对战功能的不足,计划在未来学习人机算法后进行完善。感谢老师的题目设计,促使了作者主动学习。
摘要由CSDN通过智能技术生成