资源简介

这是楼主自己用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个文件信息

评论

共有 条评论