资源简介
这是楼主自己用vs2010仿照Windows经典游戏写的一款纸牌游戏,花了大概有两周的时间。里面不仅包括exe,同是还有cpp。用vs2010可以直接打开。注释信息也是添加的很详细的,有需要的猿友可以下载学习。
代码片段和文件信息
//控制类
#include “CardCtrl.h“
#include
CCardCtrl::CCardCtrl(): m_vtr(52) //构造函数对数据成员赋值,初始化52个元素
{
m_hWnd = NULL;
m_hInstance = NULL;
//向量(数组)赋值
for(int i = 0; i < 52; i++)
{
m_vtr[i] = i;
}
//种种子,保证每次产生的随机数列不同
srand((unsigned int) time (NULL) );
//向量(数组)随机排列需要加载algorithm头文件
random_shuffle( m_vtr.begin() m_vtr.end() );
m_hBackGroudBit = NULL;
//鼠标链表头和尾初始化
m_pMouselinkHead = NULL;
m_pMouselinkEnd = NULL;
}
//设置数据成员接口
void CCardCtrl::SetDataValue(HWND hWnd HINSTANCE hInstance)
{
m_hWnd = hWnd;
m_hInstance = hInstance;
}
//加载52张牌
void CCardCtrl::LoadCards()
{
for (int i = 0; i < 13 ; i++) //金花
{
m_cardsArr[i].m_nCardsNum = i + 1;
m_cardsArr[i].m_nCardsColor = enum_cards_flower;
m_cardsArr[i].m_hCardsBitmap = LoadBitmap(m_hInstance/*句柄*/ MAKEINTRESOURCE(IDB_BITMAP2 + i) );
}
for (int i = 13; i < 26 ; i++) //方块
{
m_cardsArr[i].m_nCardsNum = i-13 + 1;
m_cardsArr[i].m_nCardsColor = enum_cards_square;
m_cardsArr[i].m_hCardsBitmap = LoadBitmap(m_hInstance/*句柄*/ MAKEINTRESOURCE(IDB_BITMAP2 + i) );
}
for (int i = 26; i < 39 ; i++) //红心
{
m_cardsArr[i].m_nCardsNum = i-26 + 1;
m_cardsArr[i].m_nCardsColor = enum_cards_heart;
m_cardsArr[i].m_hCardsBitmap = LoadBitmap(m_hInstance/*句柄*/ MAKEINTRESOURCE(IDB_BITMAP2 + i) );
}
for (int i = 39; i < 52 ; i++) //黑桃
{
m_cardsArr[i].m_nCardsNum = i-39 + 1;
m_cardsArr[i].m_nCardsColor = enum_cards_black;
m_cardsArr[i].m_hCardsBitmap = LoadBitmap(m_hInstance/*句柄*/ MAKEINTRESOURCE(IDB_BITMAP2 + i) );
}
}
//初始化游戏数据
void CCardCtrl::InitGameData()
{
//加载背景位图
m_hBackGroudBit = LoadBitmap(m_hInstance MAKEINTRESOURCE(IDB_BACK));
//加载52张牌
LoadCards();
m_oDownCards.LoadDownCards(m_cardsArr m_vtr m_hInstance);
m_oRightUpCards.InitRightUpCards(m_hInstance);
m_oLeftUpCards.InitLeftUpCards(m_cardsArr m_vtr m_hInstance);
}
//处理paint消息
void CCardCtrl::OnPaintWnd()
{
//得到DC
HDC hDc = GetDC(m_hWnd);
//创建兼容性DC
HDC hMemDC = CreateCompatibleDC(hDc);
//绑定DC与位图
HBITMAP hBackGroudBit = LoadBitmap(m_hInstance MAKEINTRESOURCE(IDB_BACK));
if (NULL == Selectobject(hMemDC hBackGroudBit))
{
MessageBox(m_hWnd “asda“ “asdasd“ MB_OK);
}
//显示下半/右上/左上部分牌
m_oDownCards.ShowDownCards(hMemDC);
m_oRightUpCards.ShowRightUpCards(hMemDC);
m_oLeftUpCards.ShowLeftUpCards(hMemDC);
//显示鼠标牌
ShowMouseCards(hMemDC);
//复制兼容性DC到窗口DC
BitBlt(hDc 0 0 750 700 hMemDC 0 0 SRCCOPY);
Deleteobject(hBackGroudBit);
DeleteDC(hMemDC);
DeleteDC(hDc);
}
//键盘
void CCardCtrl::onkeydown(UINT nKeyID)
{
}
//处理timer(定时器)
void CCardCtrl::OnTimer(UINT nTimerID)
{
}
//左键点击
void CCardCtrl::OnLButtonDown(POINT pt) //需要传入鼠标坐标参数
{
//记录鼠标点
m_LeftMouseDownPos = pt;
if(pt.y >= 156) //先进行鼠标点击位置的判断,以区别鼠标是在下部牌堆拿牌还是在右上牌堆拿牌,提高效率
{
if(true == m_oDownCards.CanMouseGetDownCards(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1214 2015-09-09 10:00 PaperCard\cards\cl1.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\cl10.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\cl2.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\cl3.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\cl4.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\cl5.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\cl6.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\cl7.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\cl8.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\cl9.bmp
文件 3574 2015-09-09 10:00 PaperCard\cards\clj.bmp
文件 3574 2015-09-09 10:00 PaperCard\cards\clq.bmp
文件 3574 2015-09-09 10:00 PaperCard\cards\clz.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\di1.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\di10.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\di2.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\di3.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\di4.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\di5.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\di6.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\di7.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\di8.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\di9.bmp
文件 3574 2015-09-09 10:00 PaperCard\cards\dij.bmp
文件 3574 2015-09-09 10:00 PaperCard\cards\diq.bmp
文件 3574 2015-09-09 10:00 PaperCard\cards\diz.bmp
文件 20790 2016-04-26 16:54 PaperCard\cards\go.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\he1.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\he10.bmp
文件 1214 2015-09-09 10:00 PaperCard\cards\he2.bmp
............此处省略97个文件信息
相关资源
- vs2010对C++智能提示插件
- Manning: C++/CLI in Action
- MFC鼠标拖动绘制直线绘制矩形C++
- win10+vs2019+bazel+编译tensorflow2.1.1-CPU版(
- 《学VC编传奇游戏》.rar
- C++泛型编程与STL中文版
- VS 2017 C/C++ MicroSoft源服务器符号文件基
- MMX+C++实现图片渐入渐出
- 数据结构C++版邓俊辉 第三版 文字版
- 吃豆人C++vs2017编译的吃豆人
- 数据结构习题解析__殷人昆编著_2011年
- Microsoft Visual C++ Build Tools
- Think in C++第二版内含中文,英文版
- 基于SVM与人工神经网络的车牌识别C
- rabbitmq的C++客户端SimpleAmqpClient编译库
- 各种风格C++MFC皮肤库
- MFC做的连连看
- 基于VC++的邮件收发系统
- 基于块匹配的图像拼接 源码,C++实现
- C++参考大全第四版中文版pdf + 英文p
- python通过ctypes调用c\\c++编写的dll\\so库
- 《Boost程序库完全开发指南:深入C++“
- 轻松搞定C++语言
- 车辆管理与服务系统 MFC C++
- c#调用c++的可变参数
- C++网络编程文件之第五章 应用层协议
- C++使用GSOPE调用WEBSERVICE
- C++语言程序设计(第4版)清华大学教
- 点云Las文件读写c++库 Lasib_msvc2015
- C++游戏-雷霆战机
评论
共有 条评论