C语言新手写扫雷攻略1

工欲善其事,必先利其器,首先要准备好开发环境,既然是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 的倍数。

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

时间: 2024-11-03 21:39:52

C语言新手写扫雷攻略1的相关文章

C语言新手写扫雷攻略3

今天写的是游戏过程的函数,基本的算法前面都解释过了,今天是实现基本的功能 补充一下前面需要用到的头文件 #include<conio.h> //_kbhit() #include<stdlib.h> //rand(),srand() #include<time.h> //srand((unsigned)time(NULL)) 游戏的过程就是鼠标的操作过程,实现的就是鼠标的点击处理,因为不是WinAPI的按钮点击,所以得自己算坐标得到鼠标动作 void MouseGetX

C语言新手写扫雷攻略2

接下来是游戏的功能设计,要有扫雷的基本功能,左键点击雷区,右键红旗标记,并且可以统计雷数,可以重新开始,以下是游戏的功能初始 void Game(void) { while (1) { if (FLAG == 1) { GameBegin();//绘制出游戏界面并判断是否玩过和重新开始 GamePlay();//游戏过程的函数 if (AGAIN == 1) { AGAIN = 0; continue; } } FLAG = 0; if (m.uMsg == WM_LBUTTONDOWN)//鼠

C语言新手写扫雷源代码

今天发布源代码,由于写在一个文件里非常乱,所以分三个文件写 绘图和鼠标函数graph.h /*绘图与鼠标相关函数*/ #include<graphics.h> #include <easyx.h> void DrawEmpty(int, int, int, int);//初始化空格子界面的函数 void DrawSmile(void);//画笑脸的函数 void DrawRedFlag(int, int);//右键画红旗的函数 int MouseX, MouseY;//鼠标的x,y

80后新手装修完全攻略(转载)

1. 如果家中会做饭频率很高的话,尽量放弃开放式厨房,会有油烟问题 2. 卫生间.厨房小水宝,热水来得快,使用时比较方便 3. 吸油烟机中式的比欧式的吸力更强,欧式的好看不中用. 4. 电源插座能多装尽量多装点,否则家里到处都是拖线板 5. 马桶边上一定要预留电源插座,否则卫洗丽没法装 6. 浴缸PK淋浴,二选一的话,还是建议淋浴,浴缸装好,从来也没泡过澡的不是少数.淋浴不是指淋浴房,淋浴房的玻璃擦起来还是很累的,也可以选择挂根浴帘 7. 如果有2个卫生间,装一个浴缸还是有必要的,泡泡大件衣物,

超详细Go语言Windows安装全攻略

1,下载go语言windows安装包,你可以直接到官网下载,也可以从本站云盘下载,由于国内被封杀,go语言官网 经常会打不开 win32版本:链接:http://pan.baidu.com/s/1eQlIT2M 密码:qosr win64版本:链接:http://pan.baidu.com/s/1qWmK7wg 密码:r5z7 2.双击安装,默认安装,直接点“下一步”就行,默认是安装在c:\go,你也可以修改成其它目录,目录最好不要包含 中文名 3.设置系统环境变量GOROOT,并把%GOROO

新手学web前端有哪些攻略?

web前端入行门槛低.薪资高.发展前景好,已经成为近几年的热门岗位,很多人在想要转行时也会首选web前端.想要学好web前端,尤其是对于没有任何基础的新手来说,一定要找到好的学习方法.下面小编就为大家分享一下前端新手学习的攻略有哪些? 第一:基础的重要性 无论做什么都一定要有扎实的基础,参加web前端开发培训也不例外,只有基础牢固,才能更深入的学习新技能.作为一名初级的web前端工程师,你必须要具备基础的技术要素:html.CSS和Java.这是作为web前端工程师所必须要掌握的.web前端的入

寒城攻略:Listo 教你用Swift 语言编写 IOS 平台流媒体播放器

先展示播放器效果: 依旧继承 Listo 本人的强迫症,还是从最初到完成完整的写一个攻略来记录一下,这里声明 Listo 本人也是看了很多的戴维营攻略才总结分享给大家这一篇攻略的. 首先,Listo 使用的是一个开源的第三方框架而不是使用系统本身带有的框架, 这个框架的名字叫做 MobileVLCKit 框架,至于框架的获取,Listo 这里也有截图,首先打开终端,执行命令 "$git clone https://github.com/wuqiong/MobileVLCKit-SDK.git&q

攻略:游戏最致命的“票房毒药”

游戏的乐趣在于,设计者用各种"你猜不到"的规则和场景来征服玩家,而玩家则介于"我知道路"和"哎呀,又掉坑里了"的清晰与模糊之间摸索. 文/张书乐 原载于<人民邮电报>2016年5月27日<乐游记>专栏104期 从去年下半年开始,我就一直沉迷于一款经典日本动漫改编的卡牌手游,前些天,我的游戏热情却戛然而止.理由很"奇葩",因为我看到了一份游戏攻略,而且还不是完整版的游戏全程攻略,毕竟对于时下的网游而言,只

R语言教程:写给高级入门者的数据打理攻略

http://developer.51cto.com/art/201312/423612_all.htm 原文地址 如果大家还未完全熟悉R语言.甚至不能轻松利用它实现最基本的处理任务,我建议各位先查阅其它指导文章.帮助自己积累对R语言的认识.但如果大家已经拥有一定的背景知识,希望能够进一步提升自己的开发技能——或者单纯只是想看看R语言如何完成文章中罗列的四项任务——那么请跟着我继续阅读. 学习如何添加column.计算总和.对结果排序以及数据改造. 强大的能力在带来责任之外,也给我们增添了恼人的