• 大小: 13.19MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-30
  • 语言: 其他
  • 标签: 扫雷  

资源简介

经典扫雷程序源码,已实现基本的扫雷方块的展开,方块周围雷数的计算,方块的标旗,胜负的判断,难度的更改。

资源截图

代码片段和文件信息

/*
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\link.command.1.tlog
     文件        2694  2018-04-30 14:44  扫雷\扫雷\Debug\扫雷.tlog\link.read.1.tlog
     文件         356  2018-04-30 14:44  扫雷\扫雷\Debug\扫雷.tlog\link.write.1.tlog
     文件         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个文件信息

评论

共有 条评论