c++游戏设计二:反转扑克牌

原创 2014年12月02日 10:54:33
<span style="font-family: Arial, Helvetica, sans-serif;">#include <afxwin.h></span>
class CMyWnd :public CFrameWnd
{
private:
	CDC *m_pmdc[4];
	CBitmap *m_pbitmap;
	CString myPath[5];
	int currentState[4];
	CRect myRect[4];
	
public:
	CMyWnd()
	{
		Create(NULL,"Second App");
		CClientDC dc(this);

		//Initialize the path
		myPath[0]="../image/back.bmp";
		myPath[1]="../image/q.bmp";
		myPath[2]="../image/10.bmp";
		myPath[3]="../image/j.bmp";
		myPath[4]="../image/joker.bmp";
		//Intialize the rect
		myRect[0].SetRect(50,50,200,250);
		myRect[1].SetRect(50,350,200,550);
		myRect[2].SetRect(400,50,550,250);
		myRect[3].SetRect(400,350,550,550);

		memset(currentState,0,4);
		MoveWindow(200,20,600,600);

		m_pbitmap=new CBitmap;
		
		for(int i=0;i<4;i++)
		{
			m_pbitmap->m_hObject=(HBITMAP)::LoadImage(NULL,myPath[0],
              IMAGE_BITMAP, 0,0,LR_LOADFROMFILE);
			m_pmdc[i]=new CDC;
			m_pmdc[i]->CreateCompatibleDC(&dc);
			m_pmdc[i]->SelectObject(m_pbitmap);
			m_pbitmap->DeleteObject();
		}
	}
	~CMyWnd()
	{
		delete m_pbitmap;
		for(int i=0;i<4;i++)
		{
			delete m_pmdc[i];
		}
		
	}
	DECLARE_MESSAGE_MAP()
	afx_msg void OnPaint();
	afx_msg void OnTimer(UINT_PTR nIDEvent);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
};

class CMyApp:public CWinApp
{
public:
	BOOL InitInstance();
};

BOOL CMyApp::InitInstance()
{
	CMyWnd *pf=new CMyWnd;
	pf->ShowWindow(m_nCmdShow);
	pf->UpdateWindow();
	this->m_pMainWnd=pf;
	return TRUE;
}
CMyApp FirstApp;

BEGIN_MESSAGE_MAP(CMyWnd, CFrameWnd)
	ON_WM_PAINT()
	ON_WM_LBUTTONUP()
	END_MESSAGE_MAP()


void CMyWnd::OnPaint()
{
	CPaintDC dc(this); // device context for painting
	
		// TODO: 在此处添加消息处理程序代码
		// 不为绘图消息调用 CFrameWnd::OnPaint()	
		for(int i=0;i<4;i++)
		{
			dc.StretchBlt(myRect[i].left,myRect[i].top,150,200,m_pmdc[i],0,0,150,200,SRCCOPY);

			/*在这里我们删除m_pbitmap中对象的原因是
			不清楚内存指向的情况,多个m_pmdc指向一个m_pbitmap的话,会导致后面的不可用
			那么我们就暂时理解成一个map只能被一个cdc所用,这个map是给了cdc一个地址呢还是直接将其剪切到cdc的地址空间了呢?
			
			m_pbitmap->DeleteObject();
			if(flag==0)
				m_pbitmap->m_hObject=(HBITMAP)::LoadImage(NULL,myPath[0],
              IMAGE_BITMAP, 0,0,LR_LOADFROMFILE);*/
		}

}


void CMyWnd::OnLButtonUp(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	for(int i=0;i<4;i++)
	{
		if(myRect[i].PtInRect(point))
		{
			this->currentState[i]++;
			if(this->currentState[i]%2==0)
			{
				m_pbitmap->m_hObject=(HBITMAP)::LoadImage(NULL,this->myPath[i+1],
				 IMAGE_BITMAP, 0,0,LR_LOADFROMFILE);
			}
			else
			{
				m_pbitmap->m_hObject=(HBITMAP)::LoadImage(NULL,this->myPath[0],
              IMAGE_BITMAP, 0,0,LR_LOADFROMFILE);
			}
			m_pmdc[i]->SelectObject(m_pbitmap);		
			InvalidateRect(&myRect[i]);
		}
	}
	
	CFrameWnd::OnLButtonDown(nFlags, point);
}


                    

扑克牌游戏-华为OJ-C++实现

/*扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王): 3 4 5...
  • suifeng50
  • suifeng50
  • 2014年06月23日 15:11
  • 2176

java编写简易扑克牌游戏

游戏功能描述 创建一副扑克牌: 包括四种花色:黑桃,红桃,梅花,方片 包括十三种点数:2-10,J,Q,K,A 创建两名玩家(or多名) 玩家至少要有ID,姓名,手牌等属性,手牌为扑克牌的集合...
  • qq_20581563
  • qq_20581563
  • 2016年04月27日 23:07
  • 15183

java简易扑克牌游戏,慕课第三季作业

要求:1、创建牌,分四个花色,每个花色13张,没有大小王2、创建玩家,玩家有ID和姓名,每个人两张牌3、洗牌,打乱牌序 利用Collections.shuffle方法,加个随机数循环多次洗牌,保证不重...
  • lily960427
  • lily960427
  • 2017年03月26日 21:02
  • 469

Java扑克牌小程序

慕课网第三季作业要求 1. 创建一副扑克牌,包括2-10,J,Q,K,A,黑桃,红桃,梅花,方片,不包括大小王。 2. 创建两名玩家,有name属性。 3. 洗牌,利用Collectio...
  • izzlin
  • izzlin
  • 2017年04月09日 20:27
  • 440

啊哈!算法—纸牌游戏—小猫钓鱼

扑克游戏: 将一副扑克牌平均分成两份,每人拿一份。小哼先拿出手中的第一张扑克牌放在桌上,然后小哈也拿出手中的第一张放在桌上,就这样两人交替出牌。 出牌时,若某人打出的牌与桌面上的某张牌面相同,即将两张...
  • LY_624
  • LY_624
  • 2016年04月28日 12:24
  • 2281

【算法】C语言实现简易的扑克牌游戏

【算法】C语言实现简易的扑克牌游戏
  • LX18792732127
  • LX18792732127
  • 2017年06月18日 18:07
  • 918

Java入门第三季-综合实战:简易扑克牌游戏

一、概述 第三季的综合实战部分是写一个简易扑克牌游戏,功能实现要求如下: 1.创建一副扑克牌 包括四种花色: 黑桃 红桃 梅花 方片 十三种点数 2-10,JQKA,不考虑大小王 2.创建两名玩家 ...
  • qwerty_bibabo
  • qwerty_bibabo
  • 2016年07月26日 18:15
  • 4323

[数据结构]纸牌游戏——小猫钓鱼

星期天小哼和小哈约在一起玩桌游,他们正在玩一个非常古怪的扑克游戏——“小猫钓鱼”。游戏的规则是这样的:将一副扑克牌平均分成两份,每人拿一份。小哼先拿出手中的第一张扑克牌放在桌上,然后小哈也拿出手中的第...
  • qaz3171210
  • qaz3171210
  • 2015年06月23日 14:37
  • 2820

Java实现简易扑克牌游戏

Java实现简易扑克牌游戏——black的专栏——washaxiu
  • u012596172
  • u012596172
  • 2017年06月14日 17:27
  • 701

html5 canvas 扑克牌游戏开发探索

基于html5和web socket的扑克游戏探索
  • tx101q
  • tx101q
  • 2017年02月01日 13:27
  • 814
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++游戏设计二:反转扑克牌
举报原因:
原因补充:

(最多只允许输入30个字)