#include<stdio.h>
#include<graphics.h>//easyx.h头文件或者geaphics.h头文件两个是一样的
//第九步
#include<windows.h>//音乐头文件
#include<mmsystem.h>//音乐库文件
#pragma comment(lib,"Winmm.lib")
//第五步
int num = 1;//黑先下,鼠标第一次点击为-1
IMAGE bgp;// loadimage(&bking, "1.jpg");//加载图片
//第二步
int piece[15][15];//定义一个数组
//第一步
void putbackgroumd()//建设界面,考虑图形库像素点以及选取点
{
//putimage这个函数的几个重载用于在当前设备上绘制指定图像
//putimage(0, 0, 240, 240, &bgp, 10, 10)
//坐标中间240,图片一共600*600 ,600-480=60
putimage(0, 0, 240, 240, &bgp, 60, 60);
putimage(240, 0, 240, 240, &bgp, 60, 60);
putimage(0, 240, 240, 240, &bgp, 60,60);
putimage(240, 240, 240, 240, &bgp, 60, 60);
}
//第二步
void draw_line()//划线
{
//颜色 settextcolor(RGB(0, 0, 0));//R红 G黄 B蓝
//常见啊颜色有白-WHITE 黑-BLACK 红-RED 绿-GREEN 蓝-BLUE 黄-YEL
//不常见颜色用RGB表示 RGB(x,y,z);x,y,z分别对应颜色表的红(R)绿(G)蓝(B)代表的不常见数字
//x,y->0~480 ,480可以取/40=12或者是/30=15,我选15原因:五子棋棋盘标准尺寸是15×15
setlinecolor(BLACK);
for (int x = 15;x < 480; x = x + 30)
line(x, 15, x, 465);
for (int y = 15; y < 480; y = y + 30)
line(15, y, 465, y);
}
//第三步
void draw_point()
{
//五子棋五个点位
setfillcolor(BLACK);
//这个是设置五个黑点BLACKD的位置坐标//图形x-->0~480,y-->0~480
//fillcircle画有边框的填充圆
fillcircle(4 * 30 - 15, 4 * 30 - 15, 3);//x,y轴跟半径
fillcircle(4 * 30 - 15, 12 * 30 - 15, 3);
fillcircle(8 * 30 - 15, 8 * 30 - 15, 3);
fillcircle(12 * 30 - 15, 4 * 30 - 15, 3);
fillcircle(12 * 30 - 15, 12 * 30 - 15, 3);
}
//第四步
//冒泡排序的初始化双重排序让棋子初始化数值
void initpiece()
{
for (int i = 0; i < 15; i++)
for (int j = 0; j < 15; j++)
piece[i][j]=0;
}
//第六步返回值判断棋子
int change_piece(int x, int y) {
//第四步已经初始化为0
if (piece[x][y] != 0) //这个地方已经下了
return 0;
else
piece[x][y] = num;
return 1;//这个地方还没下鼠标点击后返回值为1,说明鼠标点击成功
}
//第五步
void draw_piece(int m, int n)//piece棋子,x,y坐标
{
if (num == -1) {
setfillcolor(WHITE);//白色
num = 1;
}
else if (num == 1) {
setfillcolor(BLACK);//黑色
num = -1;
}
//int类型返回值为整型
int x, y;
x = m / 30;
y = n / 30;//跟数组有关、、
if (change_piece(x, y) == 0)
return;
fillcircle(m - (m % 30) + 15, n - (n % 30) + 15, 15);//棋子的横坐标大小,纵坐标大小,以及半径
}
//第七步
int check_five_piece(int x, int y) {
if (x < 2 || y <2 || x>12 || y>12)
return 0;
if (piece[x][y] == piece[x - 1][y] && piece[x][y] && piece[x - 2][y] && piece[x][y] && piece[x + 1][y] && piece[x][y] && piece[x + 2][y])
return 1;
if (piece[x][y] == piece[x ][y - 1] && piece[x][y] && piece[x ][y - 2] && piece[x][y] && piece[x][y+1] && piece[x][y] && piece[x][y + 2])
return 1;
if (piece[x][y] == piece[x - 1][y-1] && piece[x][y] && piece[x - 2][y-2] && piece[x][y] && piece[x + 1][y+1] && piece[x][y] && piece[x + 2][y+2])
return 1;
if (piece[x][y] == piece[x - 1][y+1] && piece[x][y] && piece[x - 2][y+2] && piece[x][y] && piece[x + 1][y-1] && piece[x][y] && piece[x + 2][y-2])
return 1;
return 0;
//上面跟下面判断是一样的
//if (x < 2 || y < 2 || x>13 || y>13)
// return 0;
//if (piece[x][y] == 0)
// return 1;
////横向判断
//for (int i = x - 2; i < x + 2; i++)
// if (piece[i][y] != piece[x][y])
// return 1;
////竖向判断
//for (int j = y- 2; j < y + 2; j++)
// if (piece[x][j] != piece[x][y])
// return 1;
////斜向判断(\)
//for (int m = -2; m <= 2; m++)
// if (piece[x + m][y + m] != piece[x][y])
// return 1;
////斜向判断(\)
//for (int n = -2; n <= 2; n++)
// if (piece[x + n][y -n] != piece[x][y])
// return 1;
//return 0;
//
}
//第八步
//检查是否结束
int check_over() {
//行列15行
for(int i=0;i<15;i++)
for (int j = 0; j < 15; j++)
{
//查看是否占位
if (piece[i][j] == 0)
continue; //跳过本次循环体中剩下尚未执行的语句
if (check_five_piece(i, j) ==1)
return 1;
}
return 0;
}
int main()
{
//第九步
mciSendString("open 2.mp3)", 0, 0, 0); //文件路径采用相对路径 alias 取别名
mciSendString("play 2.mp3", 0, 0, 0);
//mciSendString("pause 夜里.mp3", 0, 0, 0);//pause 停止
//mciSendString(_T("close 夜里.mp3", 0, 0, 0);//close 关闭
//(第一步)
initgraph(480,480); //图形设置大小
loadimage(&bgp, ("600.jpg"));
putbackgroumd();
//setbkmode(TRANSPARENT);
//settextstyle(42, 20, ("宋体"));
//第二步
draw_line();
//第三步
draw_point();
//第四步鼠标控制
MOUSEMSG m;//MOUSEMSG鼠标 M信息控制
while(1)
{
//第四步
m = GetMouseMsg();//获取一个鼠标消息
if (m.uMsg ==WM_LBUTTONDOWN)//如果鼠标左键按下WM_LBUTTONDOWN
{
//第五步
draw_piece(m.x,m.y);
}
//第八步
if (check_over() == 1) {
settextcolor(RED);//红色
settextstyle(42, 20, ("宋体"));//set 设置 text文字 style风格
outtextxy(160, 220, ("游戏结束"));//outtextxy是easyx窗口输出的函数
system("pause");
return 0;
}
}
getchar();//防止程序闪退返回
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
这是在数据结构课程设计中实现五子棋图形化设计的内容。项目涵盖了动态识别五子棋的位置,利用exsyx图形库实现图形化界面,设计了鼠标交互功能,还加入了音乐的打开播放功能。该项目使用的软件是VS2022版本,代码内部精心注释,旨在帮助有困惑的人理解代码逻辑。这些设计和功能的融入,丰富了五子棋游戏的体验,并展示了在数据结构课程中的实际应用和创造性发挥。
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/EXE.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 34 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/693fe0b107bc48df86a28c74e874b59f_m0_73951999.jpg!1)
亚力山大抵
- 粉丝: 710
- 资源: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)