工欲善其事,必先利其器,首先要准备好开发环境,既然是C语言,那就不是WinAPI的扫雷,就是纯的C语言开发,但是以前的C都是TC开发的,现在用肯定是过时很久了,但是也是有解决办法的,某些大神开发出EasyX这个库,基本上还原了TC的函数,就可以在各种IDE下使用了,下面是下载地址和帮助,帮助里面有所有函数的调用方法

http://www.easyx.cn/

下载解压好后将include 和 lib 文件夹复制到你的VC对应安装的文件夹里覆盖就可以使用了,从vc++6.0到vs2013都可以使用

我用的是vs2013,是c11标准,可能和vc++6.0和以往版本的函数不太相同

下面就开始开发,最简单的思路就是绘制图形界面,运行游戏,所以可以直接开始

#include<stdio.h>
#include<graphics.h>//图形相关函数
#include <easyx.h>//TC的很多函数包括鼠标操作
int main(void)
{initgraph(200, 230, SHOWCONSOLE);//初始化游戏界面和大小Game();//运行游戏closegraph();//关闭图形界面
}

可以先把Game()注释掉,用来测试你的EasyX是否安装好,如果安装好的话会绘制出200*230的窗口

接下来是需要用到的变量声明和用到的函数,自己开发可以边开发边写,为了方便就先列出,以后直接写功能

struct
{int num;//格子当前状态,1表示有雷,0表示无雷或已经显示数字int roundnum;//统计格子周围的雷数int flag;//右键按下显示红旗标志,0表示没有,1表示有
}Mine[10][10];
int PLAY = 0;//是否第一次玩游戏的标志
int FLAG = 1;//游戏失败后是否重新开始的标志
int AGAIN = 0;//游戏中途重新开始的标志
int MouseX, MouseY;//鼠标的x,y坐标
int mineNUM;//统计处理过的格子数
TCHAR randmineNUM[100];//显示数字的字符串
MOUSEMSG m;//鼠标结构变量,接受鼠标消息void Game(void);//游戏主程序
void GameBegin(void);//游戏开始
void DrawEmpty(int,int,int,int);//初始化空格子界面的函数
void DrawSmile(void);//画笑脸的函数
void DrawRedFlag(int, int);//右键画红旗的函数
void GameOver(void);//游戏结束
void GameWin(void);//游戏胜利
void GamePlay(void);//游戏执行过程

接下来说一下鼠标处理事件,以前TC是DOS模式下开发,操作相当于谢鼠标的驱动,需要查各种中断,而EasyX现在鼠标消息处理很方便,并且不需要像Win32的消息循环机制,方便了很多

以下是鼠标函数的官方文档

MOUSEMSG

这个结构体用于保存鼠标消息,定义如下:

struct MOUSEMSG
{UINT uMsg;      // 当前鼠标消息bool mkCtrl;    // Ctrl 键是否按下bool mkShift;   // Shift 键是否按下bool mkLButton; // 鼠标左键是否按下bool mkMButton; // 鼠标中键是否按下bool mkRButton; // 鼠标右键是否按下int x;          // 当前鼠标 x 坐标(物理坐标)int y;          // 当前鼠标 y 坐标(物理坐标)int wheel;      // 鼠标滚轮滚动值
};

uMsg:

指定鼠标消息类型,可为以下值:

WM_MOUSEMOVE
鼠标移动消息。

WM_MOUSEWHEEL
鼠标滚轮拨动消息。

WM_LBUTTONDOWN
左键按下消息。

WM_LBUTTONUP
左键弹起消息。

WM_LBUTTONDBLCLK
左键双击消息。

WM_MBUTTONDOWN
中键按下消息。

WM_MBUTTONUP
中键弹起消息。

WM_MBUTTONDBLCLK
中键双击消息。

WM_RBUTTONDOWN
右键按下消息。

WM_RBUTTONUP
右键弹起消息。

WM_RBUTTONDBLCLK
右键双击消息。

mkCtrl

Ctrl 键是否按下

mkShift

Shift 键是否按下

mkLButton

鼠标左键是否按下

mkMButton

鼠标中键是否按下

mkRButton

鼠标右键是否按下

x

当前鼠标 x 坐标(物理坐标)

y

当前鼠标 y 坐标(物理坐标)

wheel

鼠标滚轮滚动值,为 120 的倍数。

这些是鼠标的操作,功能十分强大!

转载于:https://www.cnblogs.com/acgpiano/p/3980053.html

C语言新手写扫雷攻略1相关推荐

  1. C语言新手写扫雷攻略3

    界面绘制好后,雷数也布置了,接下来就是游戏的运行过程了,今天先不说具体过程,再来看看需要用到的辅助函数 先是简单的画红旗,鼠标右键的功能是画红旗,至此我们都是在使用函数自己绘图,效率是低,但有助于理解 ...

  2. c语言探险游戏攻略,宝可梦探险寻宝新手必看攻略 助你早日脱坑

    宝可梦探险寻宝新手必看攻略,在方块风格的世界中,玩家可以收集同样方块风的宝可梦,收集材料让它们变强,然后探索更多的地图.游戏还是很有意思的,掌握正确的玩法可以事半功倍,萌新们速速来参考一下吧. 一.烹 ...

  3. C语言assert函数完全攻略

    断言assert函数,C语言assert函数完全攻略 对于断言,相信大家都不陌生,大多数编程语言也都有断言这一特性.简单地讲,断言就是对某种假设条件进行检查.在 C 语言中,断言被定义为宏的形式(as ...

  4. 微信攻城三国怎么找服务器,《攻城三国》怎么玩 新手必看攻略

    攻城三国怎么玩?作为一款卡牌策略游戏,希望这篇新手必看攻略,能够帮到广大刚刚入手这款游戏的玩家们. 主界面 主界面左上角展示玩家名称.等级.经验条及VIP等级,点击头像会弹出系统设置界面,可在此处修改 ...

  5. 龙之气息服务器维护,龙之气息攻略大全 龙之气息新手少走弯路攻略

    龙之气息进入游戏后首先选择宠物,一定要选那个血最多的,游戏前期能抗才能打,不然其他都是扯淡,剩下的装备以及发展路线,来和小编接着往下看. 1...龙之气息新手抱大腿攻略 新手进游戏选人物武器选手枪,做 ...

  6. java江湖壹_江湖壹怎么玩 江湖壹新手功力提升攻略

    江湖壹v1.0.2 类型:角色扮演大小:109.0M语言:中文 评分:5.0 标签: 立即下载 江湖壹新手可能不会太注重路线发展,总的来说变强就可以为所欲为,那么如何快速提升攻略,下面就是江湖壹新手功 ...

  7. fifa足球世界 服务器维护,FIFA足球世界:新手入门全攻略,指尖传控操作让你成为大神!...

    [游戏没有圈儿,吐槽与攻略]今天抽空体验了下<FIFA足球世界>这款手游,目前来讲还是比较满意的.很多玩家关心操作会不会蹩脚,现在来告诉你它的操作与PSV版的操作方式很相似,简化到没接触过 ...

  8. 游戏测试新手必看攻略

    游戏测试新人在刚接触测试,或者在游戏公司实习的童鞋们可以看看这篇攻略幺-看完这篇攻略我不敢说你就得到了测试的精髓,至少你会在实习时不会茫然无措. 1.在编写测试用例需要准确细致的了解模块的策划文档,策 ...

  9. 憎恨之心最强套装攻略_憎恨之心新手刷BOSS攻略 最强武器介绍[多图]

    憎恨之心(Animus)以恢弘的战斗背景打造最强劲的中世纪PK之战,每一个线路的BOSS战可以说非常的激烈了,那么小编就给大家带来最详细的BOSS战攻略吧. 适合蓝色支线地图,因为小怪少,最好打bos ...

最新文章

  1. 开机BIOS语言(转载)
  2. js获取网页高度(详细整理)
  3. python php区别-PHP,Python,Java写出来的WEB程序有什么区别?
  4. python读取有中文文件时的报错处理
  5. [以太坊源代码分析] IV. 椭圆曲线密码学和以太坊中的椭圆曲线数字签名算法应用
  6. 关于Java栈与堆的思考
  7. 虚拟主机选择php版本,虚拟主机的php用什么版本好
  8. 一个简单的基于socket的通讯处理程序
  9. 华为鸿蒙OS用户今年底或达2亿 将发布自研鸿蒙编程语言
  10. Unity-中英对照汉化
  11. 面试2年经验的Java程序员面试题部分带答案
  12. 守夜人誓言+考研誓言
  13. 优动漫PAINT的界面如何适配数位屏/平板?
  14. Windows小工具 tcping
  15. 上帝为什么不直接把魔鬼撒但这等邪…
  16. 华为交换机设置端口镜像捕获数据包
  17. Windows Server 2003 报错:”NTDETECT 失败“ 和 “文件或目录损坏且无法读取,请运行chkdsk工具”
  18. 天王星技术社区在成都举行《联盟链趋势和应用》交流会
  19. linux|shell脚本|有趣的知识---格式化输出日志和脚本调试方法以及kubernetes集群核心服务重启和集群证书备份脚本
  20. 对ArrayList集合里面数据排序

热门文章

  1. 线程池的使用与没使用的区别
  2. Matlab期货量化交易特征选取,【策略分享】Matlab量化交易策略源码分享
  3. 有关计算机组装和拆卸的说法,有关计算机组装论文
  4. c 语言 怎样编写图形窗口,「分享」C语言如何编写图形界面
  5. sony lt26i android 5.1rom,索尼 LT26 Xperia L 5.1.1 ROM刷机包 扁平化 来电归属 农历 新相机 稳定流畅...
  6. alert中文信息时乱码,html页面和script标签中均已设置为utf-8依然乱码
  7. psd imageset转换工具
  8. mysql----索引
  9. 小波变换 分离影像低频部分_经济周期分析的强大工具——小波分析
  10. ArcGIS JS API 4 —— GET https://static.arcgis.com/fonts/simsun-regular/37888-38143.pbf 404