基于c++EGE图形库编写的五子棋小游戏

您所在的位置:网站首页 如何自制游戏棋盘图片 基于c++EGE图形库编写的五子棋小游戏

基于c++EGE图形库编写的五子棋小游戏

2024-07-09 14:58| 来源: 网络整理| 查看: 265

基于c++EGE图形库编写的五子棋小游戏 EGE图形库

新手推荐使用

EGE(Easy Graphics Engine),是windows下的简易绘图库,是一个类似BGI(graphics.h)的面向C/C++语言新手的图形库,它的目标也是为了替代TC的BGI库而存在。

它的使用方法与TC中的graphics.h相当接近,对新手来说,简单,友好,容易上手,免费开源,而且接口意义直观,即使是完全没有接触过图形编程的,也能迅速学会基本的绘图。

目前,EGE图形库已经完美支持VC6, VC2008, VC2010, VC2012, VC2013, VC2015, VC2017, VC2019, C-Free, DevCpp, Code::Blocks, wxDev, Eclipse for C/C++等IDE,即支持使用MSVC和MinGW为编译环境的IDE。如果你需要在VC下使用graphics.h,那么ege将会是很好的替代品。

引用自EGE图形库官网

EGE官网:Easy Graphics Engine – EGE图形库主站 (xege.org)

结果展示

在这里插入图片描述

简易的五子棋 实现原理 步骤:

1.打印棋盘;

2.打印棋子;

3.判断胜利方;

在一整张棋盘图纸上添加黑白子不好写,那我们可以换个思路。把棋盘分为n个格子,分别为:

1)空白格子

2)下了黑子的格子

3)下了白子的格子

那我们就需要三种图片拼接起来

在这里插入图片描述

编写过程 使用EGE图形库:

在这里插入图片描述

在这里插入图片描述

在EGE官网中下载小熊猫dev-c++,在菜单中依次点击文件→新建→新建项目→多媒体→Graphics.h

这就是EGE的图形库了

头文件加载: #include //EGE图形库 #include 所需的一些函数如下: int chessBord[15][15]; //棋盘 int player=2; //当前玩家 PIMAGE picture[3]; //棋盘图片 mouse_msg msg; //鼠标 int loadPicture(); //加载图片函数 int printBord(); //打印棋盘 int judgeWiner(int x,int y); //判断输赢函数

为了将图片导入到程序中,需要预先加载

设置棋盘处括号内数字为棋盘大小,可自行设置,如我的样例为15*15

加载图片函数: int loadPicture() { char path[100]; //加载图片路径 for(int i=0;i=5||lu>=5) return 1; else return 0; }

其实并没有看起来那么复杂,这里类似于广度优先搜索。

到这里程序的大部分都完成了,剩下的就是组合起来,然后进行小小的优化。

完整代码: #include #include int chessBord[15][15]; //棋盘 int player=2; //当前玩家 PIMAGE picture[3]; //棋盘图片 mouse_msg msg; //鼠标 int loadPicture(); //加载图片函数 int printBord(); //打印棋盘 int judgeWiner(int x,int y); //判断输赢函数 int main() { initgraph(375,375); //设置幕布大小并显示 setcaption("五子棋"); //设置程序标题 loadPicture(); //调用加载图片函数 将素材存入picture图片数组中 for(;is_run();delay_fps(180)) { while(mousemsg()) { msg=getmouse(); } if(msg.is_down()) { int x=msg.x/25,y=msg.y/25; if(chessBord[x][y]==0) //判断当前格子是否可以落子 { chessBord[x][y]=player; //改变当前棋盘格子状态 if(judgeWiner(x,y)) { printBord(); if(player==1) outtextxy(150,150,"白方获胜"); else outtextxy(150,150,"黑方获胜"); getch(); return 0; } player=player==1?2:1; //换手 } } printBord(); //更新棋盘 } return 0; } int loadPicture() { char path[100]; //加载图片路径 for(int i=0;i=5||lu>=5) return 1; else return 0; }

八十多行就解决了,并不难,有一定基础就能做

免费的图片及实例下载链接

免费的图片及实例下载链接:基于EGE的c++五子棋人对人小游戏-其他文档类资源-CSDN文库

感谢支持! 2022.4.30 14:11


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3