資源簡介
這是樓主自己用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個文件信息
評論
共有 條評論