带爆炸效果的扫雷(源码5)

扫雷完整源代码 扫雷的完整源码,标准化的包含保护机制和连锁机制。 阅读详情

自己画了一个小工具栏,增加了鼠标单击/释放的处理程序。 附: mytool.cpp mytool.h

mytool.h 

#ifndef __MYTOOL_H
#define __MYTOOL_H

enum e_button{
    E_LEVEL,
    E_HELP,
    E_SCORE
}
;

class MYTOOL
{
public:
    MYTOOL();
    
~MYTOOL();
    
void SetPressDown(int x,int y);
    
int GetButtonPress(int x,int y);

    
void Draw();
    
void LoadPic();
    
void SetHINSTANCE(HINSTANCE h);
    
void SetHWND(HWND h);
    
void SetHDC(HDC h);
    
void SetPos(int x,int y);
    
    
private:
    
int iPressDown;
    
int button_num;
    POINT pos;
    HBITMAP hbm_tool;

    HWND hwnd;
    HDC hdc;
    HDC hdcmem;
    HINSTANCE hinstance;
}
;

#endif

mytool.cpp

#include "stdafx.h"
#include 
"resource.h"

#include 
"mytool.h"


MYTOOL::MYTOOL()
{
    pos.x
=0;
    pos.y
=0;
    iPressDown
=-1;

    button_num
=3;
}


MYTOOL::
~MYTOOL()
{
    DeleteObject(hbm_tool);
}


void MYTOOL::Draw()
{
    
//hdc=GetDC(hwnd);

    SelectObject(hdcmem,hbm_tool);
    BitBlt(hdc,pos.x,pos.y,button_num
*32,32,hdcmem,0,0,SRCCOPY);

    
if(iPressDown!=-1)
    
{
        BitBlt(hdc,pos.x
+iPressDown*32,pos.y,32,32,hdcmem,iPressDown*32,32,SRCCOPY);
    }

}


void MYTOOL::LoadPic()
{
    hbm_tool
=LoadBitmap(hinstance,MAKEINTRESOURCE(IDB_TOOL_NUMBER));    

    hdc
=GetDC(hwnd);
    hdcmem
=CreateCompatibleDC(hdc);
    ReleaseDC(hwnd,hdc);
}


void MYTOOL::SetHINSTANCE(HINSTANCE h)
{
    hinstance
=h;

}


void MYTOOL::SetHWND(HWND h)
{
    hwnd
=h;
}


void MYTOOL::SetHDC(HDC h)
{
    hdc
=h;
}


void MYTOOL::SetPressDown(int x,int y)
{
    
int i=0;
    
    
//按钮个数
    for(i=0;i<button_num;i++)
    
{
        
if(x>=pos.x+i*32 && x<=pos.x+i*32+32
            
&& y>=pos.y && y<=pos.y+32)
        
{
            iPressDown
=i;
            
break;
        }

    }
    
}


int MYTOOL::GetButtonPress(int x,int y)
{
    
int i=0;

    
//按钮个数
    for(i=0;i<button_num ;i++)
    
{
        
if(x>=pos.x+i*32 && x<=pos.x+i*32+32
            
&& y>=pos.y && y<=pos.y+32)
        
{
            iPressDown
=-1;
            
return i;
        }

    }

    
return -1;
}


void MYTOOL::SetPos(int x,int y)
{
    pos.x
=x;
    pos.y
=y;
}
Pygame小游戏:玩扫雷就在瞎点的,不止你一个人。 前言 《扫雷》是一款大众类的益智小游戏,于1992年发行。 游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个 雷即全盘皆输。 它是许多人接触到的第一款游戏,大概也是广大办公族和无网学生无聊时消遣的最佳游戏,是不是 每次见到戴上墨镜的小人很有成就感?在那些还没有网(被切断网)的岁月,扫雷曾陪伴无数人度 过了他们的童年。你的最佳纪录是多少?小编在工作间隙随手刷了一局30秒(囧????)。 那么?怎么才能通关呢?这,有生之年靠自己猜可能做不到了,BUT我 阅读详情

相关推荐

C#编扫雷源码 一2008年03月23日

把以前写的东西存下来 嘿嘿 转载http://hi.baidu.com/activezfj/blog/item/31cd4b3499f6eb4a241f14b7.html(此博客已无情被关,近3000多篇原创呀,说出来都是泪) 源代码: [Form1.CS] using System; using System.Drawing; using System.Collect

关中游侠 854

Python-扫雷游戏【附完整源码】

《扫雷》是一款大众类的益智小游戏,游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。这个游戏的玩法很简单,雷区中随机布置一定数量的地雷,玩家需要尽快找出所有不是地雷的方块;如果玩家翻开的方块有地雷,则游戏结束

qiao_yue的博客 6796

C# WinForm扫雷游戏开发:从二维数组到递归算法的完整实现

在桌面应用开发中,事件驱动模型和数据结构设计是构建交互式程序的基础。通过二维数组管理游戏状态,结合递归算法实现逻辑展开,是许多经典游戏(如扫雷)的核心原理。这种技术组合不仅能高效处理网格化数据,还能直观展示状态机与用户操作的响应机制,在游戏开发、教学演示及算法练习中具有广泛价值。本文以C# WinForm开发为例,深入探讨如何利用**二维数组**和**递归算法**构建一个功能完整的扫雷游戏,涵盖从雷区生成、数字计算到界面交互的全过程实现。

weixin_30729609的博客 317

C语言基础:扫雷游戏的C语言实现(超详图解+源码)

友友们好,今天和大家一起做一个简单的——扫雷小游戏。如下:扫雷的规则很简单。盘面上有许多方格,方格中随机分布着一些雷。你的目标是避开雷,打开其他所有格子。一个非雷格中的数字表示其相邻8格中的雷数,你可以利用这个信息推导出安全格和雷的位置。打开所有安全格将被判定为胜利,打开雷将被判定为失败。

linsc_05的博客 1万+

Java Swing扫雷实战:事件驱动与状态管理深度解析

扫雷是理解GUI编程中事件驱动模型和状态管理的经典载体。其核心原理在于用户操作(点击/右键)触发状态变更,通过枚举统一生命周期、预计算邻域数据提升响应效率,并依托Swing事件分发线程(EDT)保障UI一致性。技术价值体现在对线程安全、布局管理、状态机设计及性能优化的综合锤炼;典型应用场景包括Java GUI入门训练、面试能力验证及Swing工程化实践。本文聚焦Java Swing实现细节,深入剖析CellState状态枚举、GridLayout动态布局与GameStatus全局状态机等关键设计。

weixin_32247165的博客 317

基于Qt框架的C++扫雷游戏课程设计:从零实现高分项目

面向对象编程(OOP)是软件工程的核心思想,它通过封装、继承和多态等机制,将复杂的系统分解为相互协作的对象,从而提升代码的可维护性和复用性。在图形用户界面(GUI)开发领域,Qt框架以其强大的信号与槽机制和跨平台能力,成为C++桌面应用开发的主流选择。将OOP思想与Qt框架结合,能够高效构建结构清晰、易于扩展的应用程序,其技术价值在于实现了业务逻辑与界面呈现的分离,极大地提升了开发效率和软件质量。这种技术组合在游戏开发、工业控制软件、科学计算可视化等场景中应用广泛。本文以经典的扫雷游戏为例,详细阐述了如何运

weixin_33836874的博客 424

带爆炸效果的扫雷(源码2)

游戏中处理地图生成,绘制,单击处理等主要逻辑的类 map.h,所有格子放在20*20=400的一个数组中,即最大支持长宽各20个格子。每个格子用一个字节表示,低四位0表示空格,1~8表示数字,9表示雷。高四位bit7~bit4: bit7表示该格子是否打开,bit6表示是否已经标记,bit5表示是否要打叉(点错或标记错的时候)。说明:除了动画以外,所有的图形元素都是32*32像素。简单的动画:

programking的快乐生活 1086

扫雷游戏源代码

(1)问题描述 本题目做一个N x M 的扫雷游戏,每个方格包含两种状态:关闭(closed)和打开(opened),初始化时每个方格都是关闭的,一个打开的方格也会包含两种状态:一个数字(clue)和一个雷(bomb)。你可以打开(open)一个方格,如果你打开的是一个bomb,那么就失败;否则就会打开一个数字,该数字是位于[0,8]的一个整数,该数字表示其所有邻居方格(neighboring squares)所包含的雷数,应用该信息可以帮助你扫雷。 具体实现要求的细节: ①能够打开一个方格,一个已打开的方格不能再关闭。 ②能够标记一个方格,标记方格的含义是对该方格有雷的预测(并不表示真的一定有雷),当一个方格标记后该方格不能被打开,只能执行取消标记的操作,只能在取消后才能打开一个方格。 ③合理分配各个操作的按键,以及各方格各种状态如何合理显示。 (2)课程设计目的 掌握线性结构的应用,并体会如何用计算机程序完成一个有趣的游戏。 (3)基本要求 ①能够给出游戏结果(输、赢、剩余的雷数、用掉的时间按妙计)。 ②游戏界面最好图形化,否则一定要清楚的字符界面。 (4)实现提示 用二维数组表示N x M 区间,要仔细考虑如何初始的布置各个雷以及各个方格的状态及变化。

扫雷游戏开发教程:从零打造精美像素扫雷

通过本教程,你已经学会了如何开发一个功能完整的扫雷游戏。记住,游戏开发就像扫雷一样——需要耐心、策略和一点冒险精神!当你遇到"地雷"(bug)时,不要灰心,标记它、分析它,然后优雅地解决它。

代数的博客 1395

扫雷源代码

扫雷源代码,提供给VC爱好者学习与借鉴。有兴趣的话快点下手吧。

均匀直线阵的常规波束形成matlab

常规波束形成概述 波束形成是将基阵各阵元输出进行一定的处理,从而形成基阵空间指向性的技术。一个波束形成器可以对空间某方位的信号有响应,而抑制其他方位的信号,所以又被称为空域滤波。一般分为常规波束形成(CBF)和自适应波束形成(ABF)。 常规波束形成较为基础,一般又可以根据实现的途径不同,分为时延波束形成和频移波束形成。 时延波束形成 在各阵元间添加时延使波束控制于不同方位的方法成为时延波束形成。设定一个目标方向,当信号来源方向在该目标方向时,响应最大;信号来源于其他方向时,响应较小。将这种响应大小

Xujing1143的博客 2万+

扫雷游戏(整体游戏架构分析+源码分析)

1.此游戏完成了我童年的梦2.锻炼了我在函数和数组这方面的知识复习3.而外掌握“缓冲区”,随机函数,时间戳等知识。

2402_84849509的博客 1033

Cadence ADE实战:1GHz VCO相位噪声仿真全流程(附PSS/Pnoise避坑指南)

本文详细介绍了在Cadence ADE环境中对1GHz VCO进行相位噪声仿真的完整流程。重点剖析了PSS(周期性稳态分析)和Pnoise(周期性噪声分析)两大核心引擎的关键参数设置与避坑指南,帮助射频与模拟IC设计者准确评估VCO性能,解决仿真不收敛、结果异常等常见问题。

rock5的博客 670

经典扫雷游戏开发全解析:HTML+CSS+JavaScript实现

本教程将完整呈现如何用原生前端三剑客(HTML+CSS+JavaScript)实现经典扫雷游戏。该实现包含以下核心功能: 2. 视觉设计(CSS) 亮点特性: 3. 游戏逻辑(JavaScript) 核心算法流程图:左键点击右键点击是否初始化游戏生成雷区计算相邻雷数渲染棋盘玩家操作揭示格子标记旗帜是否触雷?游戏失败检查胜利条件 三、功能亮点详解 1. 雷区生成算法 2. 递归展开算法 四、游戏操作指南 左键点击:揭示格子 右键点击:标记/取消标记地雷 新游戏按钮:重置游戏 胜利条件:正确标记所有地雷并

TengMMVP的博客 2156

新手入门:从零开始学习PCB飞针测试全流程(附常见问题解答)

本文详细介绍了PCB飞针测试的全流程,从核心原理、设备解析到实操步骤和常见问题解答,帮助新手快速掌握这一电子制造领域的关键质检技术。内容涵盖测试资料准备、参数设置、设备操作技巧以及故障排查方法,特别适合小批量PCB生产的质量检测需求。

weixin_29295541的博客 390

大模型量化技术全解析:从INT8到GPTQ/AWQ,降低部署成本实战指南

模型量化是一种通过降低神经网络权重和激活值的数据精度(如从FP16降至INT8/INT4),从而大幅减少模型内存占用和计算开销的核心模型压缩技术。其原理基于线性变换,将高精度浮点数映射到低精度整数表示,在硬件层面能利用专用低精度计算单元实现显著加速。这项技术的核心价值在于解决了大模型(如千亿参数LLM)部署时面临的高昂显存成本和推理延迟问题,使其能在消费级GPU和边缘设备上高效运行。当前,后训练量化(PTQ)因其无需重新训练的特性成为主流,衍生出GPTQ、AWQ、SmoothQuant等多种方法,广泛应用于

weixin_33804582的博客 630

C语言实现扫雷游戏(含展开、含标记)---完整源码与分析!!!

本次我们利用C语言实现了扫雷游戏,包含标记功能,0位展开功能,对于各个模块进行了细致的分析与分模块代码的讲解,最后再文章附有完整的源码,欢迎大家学习。

m0_56399733的博客 384

彻底解决Win11锁屏界面黑屏或者图片不变化

windows锁屏后黑屏

renkai721的专栏 1万+

c# emnu 获取注释_C#编写扫雷游戏【源码下载在文末】

翻看了下以前大学学习的一些小项目,突然发现有个项目比较有意思,觉得有必要把它分享出来。当然现在看来,里面有很多的不足之处,但因博主现在已经工作,没有时间再去优化。这个项目就是利用C#编写一个Windows系统下的扫雷小游戏。首先讲下扫雷小游戏的玩法:(1)扫雷就是要把所有非地雷的格子揭开即胜利;踩到地雷格子就算失败。(2)当点开的格子不是地雷区域的时候,该格子会显示一个数字,该数字表示的...

weixin_34286711的博客 200

基于 Simulink 的双向 DC/AC 逆变器中 IGBT/MOSFET 寄生参数影响分析实战教程

摘要:本教程详细解析了Simulink中IGBT/MOSFET寄生参数对双向DC/AC逆变器的影响。通过对比理想模型与含寄生参数(如20nH内部电感、50nH回路电感)的仿真,揭示了电压尖峰、高频振荡等实际问题。建模步骤包括搭建基准电路、引入寄生参数、配置高精度求解器(步长10ns),并给出抑制措施:添加RC缓冲电路、调整驱动电阻。关键发现:寄生参数会显著增加开关损耗和EMI噪声,需通过参数扫描优化设计。教程还提供了代数环报错、仿真速度优化等实战技巧,帮助工程师从理想仿真过渡到高保真分析。

xiaoheshang_123的博客 68

操作系统|知识梳理|复习(下)

操作系统复习

知识库搭建ing 1784

C语言+EasyX实战:从零打造图形化扫雷游戏(附完整源码与避坑指南)

本文详细介绍了如何使用C语言和EasyX图形库从零开发一款图形化扫雷游戏。通过完整的源码示例和避坑指南,帮助初学者快速掌握图形界面开发技巧,包括雷区数据结构设计、递归展开算法、鼠标交互处理等核心功能实现。特别适合刚学完C语言想进阶图形化开发的学习者。

weixin_30448603的博客 347

几种常见的Web攻击

几种常见的Web攻击 文章目录几种常见的Web攻击一、DoS攻击1.SYN洪水攻击2.IP欺骗3.Land攻击4.针对DoS攻击的防御二、CSRF攻击1. CSRF攻击的发生有三个必要条件:2.几种防护方法:三、XSS漏洞攻击1.非持久型XSS漏洞2.持久型XSS漏洞四、SQL注入1.SQL注入的危害2.SQL注入的方式3.防止SQL注入的解决方案 一、DoS攻击 DoS(Denial of Service),拒绝服务,顾名思义这种攻击是为了让服务器无法提供正常服务,最常见的DoS攻击是网络带宽攻击和连

wolfGuiDao的博客 1259

C#编写扫雷游戏

翻看了下以前大学学习的一些小项目,突然发现有个项目比较有意思,觉得有必要把它分享出来。当然现在看来,里面有很多的不足之处,但因博主现在已经工作,没有时间再去优化。这个项目就是利用C#编写一个Windows系统下的扫雷小游戏。 首先讲下扫雷小游戏的玩法: (1)扫雷就是要把所有非地雷的格子揭开即胜利;踩到地雷格子就算失败。 (2)当点开的格子不是地雷区域的时候,该格子会显示一个数字,该数字表示...

weixin_30508309的博客 1403

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: 带爆炸效果的扫雷(源码4)
下一篇: 带爆炸效果的扫雷(后记)
programking
博客等级 码龄23年 450粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值