资源简介
经典扫雷程序源码,已实现基本的扫雷方块的展开,方块周围雷数的计算,方块的标旗,胜负的判断,难度的更改。
代码片段和文件信息
/*
easy: 8*8 10 mines
mid: 16*16 40 mines
hard:32*16 99 mines
*/
#include“resource.h“
//回调函数,windows自己调用
LRESULT CALLBACK WndProc(HWND UINT WPARAM LPARAM);
int WINAPI WinMain(HINSTANCE hInstance HINSTANCE hPreInstance PSTR szCmdLine int iCmdShow)
{
static TCHAR szAppName[] = TEXT(“MyWindows“);
HWND hwnd; //句柄
MSG msg; //消息
WNDCLASS wndClass; //窗口类
//设置窗口类的各项数据
wndClass.style = CS_HREDRAW | CS_VREDRAW; //调整窗口大小时是否重绘
wndClass.lpfnWndProc = WndProc; //回调函数
wndClass.cbClsExtra = 0;
wndClass.cbWndExtra = 0;
wndClass.hInstance = hInstance; //实例句柄
wndClass.hIcon = LoadIcon(hInstance IDP_ICON); //图标
wndClass.hCursor = LoadCursor(NULL IDC_ARROW); //光标
wndClass.hbrBackground = (HBRUSH)GetStockobject(WHITE_BRUSH);
wndClass.lpszMenuName = IDM_MENU;
wndClass.lpszClassName = szAppName;
//注册该窗口类
if (!RegisterClass(&wndClass))
{
MessageBox(NULL TEXT(“这个程序需要在windowsNT才能执行!“) szAppName MB_IConerror);
return 0;
}
//设置窗口具体特征(分化)
hwnd = CreateWindow(szAppName TEXT(“windows程序设计“) WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX
200 100 (difficulty + 1) * BRICK (difficulty + 3) * BRICK
NULL NULL hInstance NULL);
ShowWindow(hwnd iCmdShow);
UpdateWindow(hwnd);
//消息循环,windows核心
while (GetMessage(&msg NULL 0 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg); //调用窗口过程函数(回调函数)
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd UINT message WPARAM wParam LPARAM lParam)
{
HDC hdc hdcMem;
int wmId wmEvent i j;
//菜单项句柄
static HWND hMenu hGame;
//雷区
static int *mineField;
static POINT firstMine; //雷区起点
//位图句柄
static HBITMAP hPicture[14] hBitmap;
BITMAP bitmap;
static HWND *hStatic;
switch (message)
{
case WM_CREATE:
hMenu = GetMenu(hwnd);
hGame = GetSubMenu(hMenu 0);
for (i = 0; i < 14; ++i)
{
j = i + IDP_P0;
hPicture[i] = LoadBitmap(((LPCREATESTRUCT)lParam)->hInstance MAKEINTRESOURCE(j));
}
CheckMenuRadioItem(hGame IDM_GAME_ESAY IDM_GAME_MIND IDM_GAME_ESAY MF_BYCOMMAND);
case WM_USER:
firstMine.x = 0;
firstMine.y = 0;
//加载雷区
if (mineField)
{
free(mineField);
}
mineField = (int*)calloc(difficulty * difficulty sizeof(int));
SetMineField(mineField);
//加载静态类控件
if (hStatic)
{
free(hStatic);
}
hStatic = (HWND*)calloc(difficulty * difficultysizeof(HWND));
for (i = 0; i < difficulty*difficulty; ++i)
{
hStatic[i] = CreateWindow(TEXT(“static“) NULL WS_CHILD | WS_VISIBLE | SS_BITMAP | SS_NOTIFY
(i / difficulty)*BRICK (i % difficulty)*BRICK BRICK BRICK
hwnd (HMENU)i NULL NULL);
SendMessage(hStatic[i] STM_SETIMAGE IMAGE_BITMAP hPicture[13]);
}
flags = mines;
allMine = difficulty * difficulty;
return 0;
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
switch (wmId)
{
case IDM_GAME_NEW:
DestroyAllWindow(hStatic);
MoveWindow(hwnd 20
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-04-28 22:13 扫雷\.vs\
目录 0 2018-04-28 22:13 扫雷\.vs\扫雷\
目录 0 2018-04-28 22:13 扫雷\.vs\扫雷\v14\
文件 36864 2018-05-01 10:27 扫雷\.vs\扫雷\v14\.suo
目录 0 2018-05-01 10:17 扫雷\Debug\
文件 1300 2018-04-28 22:13 扫雷\扫雷.sln
文件 36679680 2018-05-01 10:27 扫雷\扫雷.VC.db
目录 0 2018-04-30 14:44 扫雷\扫雷\
目录 0 2018-04-30 14:43 扫雷\扫雷\Debug\
文件 18820 2018-04-29 21:13 扫雷\扫雷\Debug\ClearMines.obj
文件 84228 2018-04-30 14:43 扫雷\扫雷\Debug\Resource.res
文件 379904 2018-04-30 14:44 扫雷\扫雷\Debug\vc140.idb
文件 102400 2018-04-30 14:44 扫雷\扫雷\Debug\vc140.pdb
文件 32295 2018-04-30 14:44 扫雷\扫雷\Debug\WinMain.obj
文件 941 2018-04-29 15:59 扫雷\扫雷\Debug\扫雷.Build.CppClean.log
文件 3543 2018-04-30 14:44 扫雷\扫雷\Debug\扫雷.log
目录 0 2018-04-30 14:44 扫雷\扫雷\Debug\扫雷.tlog\
文件 1018 2018-04-30 14:44 扫雷\扫雷\Debug\扫雷.tlog\CL.command.1.tlog
文件 40154 2018-04-30 14:44 扫雷\扫雷\Debug\扫雷.tlog\CL.read.1.tlog
文件 1062 2018-04-30 14:44 扫雷\扫雷\Debug\扫雷.tlog\CL.write.1.tlog
文件 1070 2018-04-30 14:44 扫雷\扫雷\Debug\扫雷.tlog\li
文件 2694 2018-04-30 14:44 扫雷\扫雷\Debug\扫雷.tlog\li
文件 356 2018-04-30 14:44 扫雷\扫雷\Debug\扫雷.tlog\li
文件 276 2018-04-30 14:43 扫雷\扫雷\Debug\扫雷.tlog\rc.command.1.tlog
文件 3366 2018-04-30 14:43 扫雷\扫雷\Debug\扫雷.tlog\rc.read.1.tlog
文件 154 2018-04-30 14:43 扫雷\扫雷\Debug\扫雷.tlog\rc.write.1.tlog
文件 188 2018-04-30 14:44 扫雷\扫雷\Debug\扫雷.tlog\扫雷.lastbuildstate
目录 0 2018-04-30 14:41 扫雷\扫雷\Image\
文件 1254 2018-04-29 12:00 扫雷\扫雷\Image\bomb.bmp
文件 1254 2018-04-29 12:01 扫雷\扫雷\Image\bomb0.bmp
文件 1254 2018-04-29 12:01 扫雷\扫雷\Image\flag.bmp
............此处省略22个文件信息
相关资源
- 完整代码!扫雷游戏,vs2010
- 微信H5扫雷红包独立版源码可完美运营
- unity制作扫雷exe
- Cocos Creator7个小游戏 扫雷、 飞机大战
- Cocos Creator7个小游戏合集2048、小鸟、
- 三个AI小游戏unity-五子棋、扫雷、Wu
- 高程大作业 扫雷 代码实现
- 扫雷游戏实验报告
- ios-swift 实现扫雷.zip
- as3.0 扫雷
- Qt扫雷游戏源码
- 扫雷程序源代码
- QT 扫雷程序
- 在MyEclipse和eclipse里玩的小游戏如:扫
- MineSweeper
- win32 扫雷游戏
- QT之扫雷游戏
- 扫雷.rar
- 扫雷源码 + 素材 注释完全
- qt扫雷游戏
- Win32汇编的扫雷不完全版本
- 扫雷游戏设计思路
- windows扫雷代码
- Qt 扫雷游戏设计一
- 扫雷资源windows原版
- 基于MVC模式的扫雷游戏
- cocos 扫雷代码工程,编译
- labview制作扫雷小游戏以及简易计算器
- 最新大富豪红包扫雷.txt
- 用汇编语言做一个扫雷游戏
评论
共有 条评论