亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? canvasframe.cpp

?? 俄羅斯方塊
?? CPP
字號:
// canvasFrame.cpp : implementation file
//

#include "stdafx.h"
#include "canvasr.h"
#include "canvasFrame.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


/////////////////////////////////////////////////////////////////////////////
// canvasFrame
int x,y,kx,ky,ty,i,j,k,m,count;
bool keydown;
bool newpie;
bool cancel;
bool full;
bool restart;
int bottom[16];

struct piece
{
	int x;
	int y;
	int color;
};

piece pie;

struct occupy
{
	int x;
	int y;
	bool exist;
	int color;
};

occupy occ[20][16];

IMPLEMENT_DYNCREATE(canvasFrame, CFrameWnd)

canvasFrame::canvasFrame()
{
	Create(NULL,"ELS",WS_OVERLAPPED|WS_SYSMENU|WS_CAPTION,CRect(0,0,330,436));    
	CClientDC dc(this);
	int width = dc.GetDeviceCaps(HORZRES);
	int height = dc.GetDeviceCaps(VERTRES);
	GetWindowRect( &rect );
	width = ( width - ( rect.right - rect.left ))/2 ;
	height = (height - (rect.bottom - rect.top ))/2 ;
	MoveWindow( width , height , (rect.right - rect.left ) , (rect.bottom - rect.top ) ,true);
	GetClientRect(&rect);

	mdc = new CDC;
	mdc1 = new CDC;
	mdc->CreateCompatibleDC(&dc); //將mdc轉換成與dc相容的DC
	mdc1->CreateCompatibleDC(&dc);
	temp = new CBitmap;
	temp->CreateCompatibleBitmap(&dc,rect.right,rect.bottom);
    mdc->SelectObject(temp);

	bg=new CBitmap;
	bg->m_hObject = (HBITMAP)::LoadImage(NULL,"bg.bmp",IMAGE_BITMAP,rect.right,rect.bottom,LR_LOADFROMFILE); //載入背景圖文件
	mp=new CBitmap;
	mp->m_hObject=(HBITMAP)::LoadImage(NULL,"m0.bmp",IMAGE_BITMAP,240,80,LR_LOADFROMFILE);
	char str[7];
    for(i=0;i<3;i++)
	{
		sprintf(str,"e%d.bmp",i);
		fk[i] = new CBitmap;
		fk[i]->m_hObject = (HBITMAP)::LoadImage(NULL,str,IMAGE_BITMAP,20,20,LR_LOADFROMFILE); 
    } 
	
		
	for(i=0;i<16;i++)
		bottom[i]=rect.bottom;

	for(i=0;i<20;i++)
		for(j=0;j<16;j++)
		{
			occ[i][j].exist=false;
			occ[i][j].color=0;
			occ[i][j].x=j*20;
			occ[i][j].y=i*20;
		}
    pie.color=rand()%3;
	x=rect.right/2;
	y=0;
	kx=20;
	ky=20;
	ty=20;
	keydown=false;
	newpie=true;
	cancel=false;
	full=false;
	restart=true;
}

canvasFrame::~canvasFrame()
{
	for(i=0;i<3;i++)
		delete fk[i];
	delete temp;
	delete mdc;
	delete mdc1;
	delete bg;
}

BEGIN_MESSAGE_MAP(canvasFrame, CFrameWnd)
	//{{AFX_MSG_MAP(canvasFrame)
	ON_WM_TIMER()
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
	ON_WM_KEYDOWN()
	ON_WM_KEYUP()
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// canvasFrame message handlers

void canvasFrame::OnTimer(UINT nIDEvent) 
{
	CClientDC dc(this);

	if(!keydown)
	{
		mdc1->SelectObject(bg);
		mdc->BitBlt(0,0,rect.right,rect.bottom,mdc1,0,0,SRCCOPY);
	}//待修改

	for(i=0;i<16;i++)
	{
		if(bottom[i]<=0)
		{
			full=true;
			break;
		}
	}

	if(full)
	{
		newpie=false;
		cancel=false;
		restart=false;
	}

	if(keydown==false&&restart==false)
	{
		for(i=0;i<20;i++)
		{
			for(j=0;j<16;j++)
			{
				if(occ[i][j].exist)
				{
					mdc1->SelectObject(fk[occ[i][j].color]);
					mdc->BitBlt(occ[i][j].x,occ[i][j].y,20,20,mdc1,0,0,SRCCOPY);
				}
			}		
		
		}

		mdc1->SelectObject(fk[pie.color]);
		mdc->BitBlt(pie.x,pie.y,20,20,mdc1,0,0,SRCCOPY);	
	}

	if(keydown==false&&restart==false)
	{
		mdc1->SelectObject(mp);
		mdc->BitBlt(40,160,240,80,mdc1,0,0,SRCCOPY);
		dc.BitBlt(0,0,rect.right,rect.bottom,mdc,0,0,SRCCOPY);
	}
    
	if(restart)
	{
		if(!keydown)
		{
			pie.x=x;
			pie.y=y;
			y+=ty;
			
			if((pie.y+20)>=bottom[x/20])
			{
				pie.x=x;
				pie.y=bottom[pie.x/20]-20;
				bottom[pie.x/20]-=20;
				newpie=true;
				occ[pie.y/20][pie.x/20].exist=true;
				occ[pie.y/20][pie.x/20].color=pie.color;
			}

			if(newpie)
			{
				newpie=false;
				pie.color=rand()%3;
				pie.x=rect.right/2;
				pie.y=0;
				x=rect.right/2;
				y=0;
			} 

			for(i=0;i<20;i++)
			{
				for(j=0;j<16;j++)
				{
					if(occ[i][j].exist)
					{
						mdc1->SelectObject(fk[occ[i][j].color]);
						mdc->BitBlt(occ[i][j].x,occ[i][j].y,20,20,mdc1,0,0,SRCCOPY);
					}
				}		
			
			}
	        
			mdc1->SelectObject(fk[pie.color]);
			mdc->BitBlt(pie.x,pie.y,20,20,mdc1,0,0,SRCCOPY);	

			dc.BitBlt(0,0,rect.right,rect.bottom,mdc,0,0,SRCCOPY);	

			for(j=0;j<16;j++)
			{
				if(occ[19][j].exist==false)
					break;
			}

			if(j>=16)
				cancel=true;

			if(cancel)
			{
				for(k=19;k>0;k--)
				{
					for(m=0;m<16;m++)
					{
						occ[k][m].exist=occ[k-1][m].exist;
						if(occ[k-1][m].exist)
							occ[k][m].color=occ[k-1][m].color;
					}
				}

				for(j=0;j<16;j++)
				{
					occ[0][j].exist=false;
					bottom[j]=bottom[j]+20;
				}

				cancel=false;
			}

		}
	}
   

	CFrameWnd::OnTimer(nIDEvent);
}

int canvasFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	SetTimer(1,300,NULL);
	return 0;
}

void canvasFrame::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	keydown=true;

	CClientDC dc(this);
	mdc1->SelectObject(bg);
	mdc->BitBlt(0,0,rect.right,rect.bottom,mdc1,0,0,SRCCOPY);

	for(i=0;i<16;i++)
	{
		if(bottom[i]<=0)
		{
			full=true;
			break;
		}
	}

	if(full)
	{
		newpie=false;
		cancel=false;
		restart=false;
	}

	if(restart==false)
	{
		for(i=0;i<20;i++)
		{
			for(j=0;j<16;j++)
			{
				if(occ[i][j].exist)
				{
					mdc1->SelectObject(fk[occ[i][j].color]);
					mdc->BitBlt(occ[i][j].x,occ[i][j].y,20,20,mdc1,0,0,SRCCOPY);
				}
			}		
		
		}

		mdc1->SelectObject(fk[pie.color]);
		mdc->BitBlt(pie.x,pie.y,20,20,mdc1,0,0,SRCCOPY);	
	}

	if(restart==false)
	{
		mdc1->SelectObject(mp);
		mdc->BitBlt(40,160,240,80,mdc1,0,0,SRCCOPY);
		dc.BitBlt(0,0,rect.right,rect.bottom,mdc,0,0,SRCCOPY);
	}

	if(restart)
	{
		if(nChar==VK_DOWN)
		{
			y+=ky;
			if(y+20>=bottom[x/20])
				y=bottom[x/20]-20;
		}

		if(nChar==VK_UP)
		{
			keydown=false;
		}

		if(nChar==VK_LEFT)
		{
			x-=kx;
			if(x<=0)
				x=0;
		}

		if(nChar==VK_RIGHT)
		{
			x+=kx;
			if(x+20>=rect.right)
				x=rect.right-20;
		}

		pie.x=x;
		pie.y=y;

		if((pie.y+20)>=bottom[x/20])
		{
			pie.x=x;
			pie.y=bottom[pie.x/20]-20;
			bottom[pie.x/20]-=20;
			occ[pie.y/20][pie.x/20].exist=true;
			occ[pie.y/20][pie.x/20].color=pie.color;
			newpie=true;
		}

		if(newpie)
		{
			newpie=false;
			pie.color=rand()%3;
			pie.x=rect.right/2;
			pie.y=0;
			x=rect.right/2;
			y=0;
		}    
		
		for(i=0;i<20;i++)
		{
			for(j=0;j<16;j++)
			{
				if(occ[i][j].exist)
				{
					mdc1->SelectObject(fk[occ[i][j].color]);
					mdc->BitBlt(occ[i][j].x,occ[i][j].y,20,20,mdc1,0,0,SRCCOPY);
				}
			}		
		
		}

		mdc1->SelectObject(fk[pie.color]);
		mdc->BitBlt(pie.x,pie.y,20,20,mdc1,0,0,SRCCOPY);	

		dc.BitBlt(0,0,rect.right,rect.bottom,mdc,0,0,SRCCOPY);

		for(j=0;j<16;j++)
		{
			if(occ[19][j].exist==false)
				break;
		}

		if(j>=16)
			cancel=true;

		if(cancel)
		{
			for(k=19;k>0;k--)
			{
				for(m=0;m<16;m++)
				{
					occ[k][m].exist=occ[k-1][m].exist;
					if(occ[k-1][m].exist)
						occ[k][m].color=occ[k-1][m].color;
				}
			}

			for(j=0;j<16;j++)
			{
				occ[0][j].exist=false;
				bottom[j]=bottom[j]+20;
			}

			cancel=false;
		}
	}

	if(nChar==VK_F1)
	{
		restart=true;
		full=false;

		for(i=0;i<16;i++)
			bottom[i]=rect.bottom;

		for(i=0;i<20;i++)
			for(j=0;j<16;j++)
			{
				occ[i][j].exist=false;
				occ[i][j].color=0;
				occ[i][j].x=j*20;
				occ[i][j].y=i*20;
			}

		pie.color=rand()%3;

		x=rect.right/2;
		y=0;
	}

	if(nChar==VK_ESCAPE)
			PostMessage(WM_CLOSE);

	CFrameWnd::OnKeyDown(nChar, nRepCnt, nFlags);
}

void canvasFrame::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	keydown=false;
	CFrameWnd::OnKeyUp(nChar, nRepCnt, nFlags);
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久er热在这里只有精品66| 欧美高清在线视频| 免费在线看一区| 欧美日精品一区视频| 亚洲综合一区二区三区| 欧美日韩国产综合一区二区三区 | 风间由美一区二区三区在线观看| 久久久久国产精品人| 成人av电影在线播放| 亚洲视频在线一区| 91麻豆精品国产自产在线观看一区| 日韩电影免费一区| 久久久亚洲精华液精华液精华液| 成人a免费在线看| 亚洲国产中文字幕在线视频综合 | 一区二区三区欧美视频| 欧美日韩精品系列| 国产老妇另类xxxxx| 国产无人区一区二区三区| 99国产精品久久久久久久久久久| 亚洲www啪成人一区二区麻豆 | 色综合久久久久久久久| 视频一区二区中文字幕| 国产午夜精品一区二区| 欧美三级在线播放| 激情伊人五月天久久综合| 国产精品麻豆网站| 欧美一区二区三区小说| 成人97人人超碰人人99| 蜜臀av一区二区在线观看 | 亚洲青青青在线视频| 91精品国产色综合久久不卡蜜臀| 丁香激情综合五月| 天天综合天天综合色| 国产精品久久久久久久久晋中 | 青娱乐精品在线视频| 中文字幕av不卡| 91麻豆精品国产91久久久更新时间| 国产69精品久久久久777| 亚洲高清不卡在线观看| 亚洲国产精品av| 欧美日韩情趣电影| 91视频在线看| 精品无人码麻豆乱码1区2区 | 蜜桃久久av一区| 亚洲女同女同女同女同女同69| 久久夜色精品国产噜噜av | 久久综合久色欧美综合狠狠| 91精品办公室少妇高潮对白| 风间由美性色一区二区三区| 另类小说视频一区二区| 日欧美一区二区| 亚洲精品一二三四区| 国产日韩成人精品| 日韩精品一区在线| 欧美绝品在线观看成人午夜影视| av不卡在线播放| 国产成人8x视频一区二区| 免费一级片91| 日本伊人精品一区二区三区观看方式| 亚洲精品videosex极品| 国产精品网曝门| 久久久久久久综合狠狠综合| 欧美xxxxxxxxx| 日韩欧美美女一区二区三区| 欧美一区二区三区免费大片| 3d成人h动漫网站入口| 欧美日韩高清一区二区不卡| 色狠狠色狠狠综合| 91麻豆免费视频| 91老师国产黑色丝袜在线| www.久久久久久久久| 成人avav影音| 一本一本大道香蕉久在线精品 | 免费xxxx性欧美18vr| 三级影片在线观看欧美日韩一区二区 | 亚洲色图欧美偷拍| 亚洲欧洲av在线| 国产精品免费久久久久| 中日韩av电影| 中文字幕在线不卡国产视频| 中文字幕色av一区二区三区| 亚洲日本免费电影| 亚洲综合成人在线视频| 午夜欧美视频在线观看| 欧美a级理论片| 国产一区啦啦啦在线观看| 国产成人在线免费观看| www.性欧美| 在线欧美日韩国产| 337p亚洲精品色噜噜| 久久这里只有精品视频网| 国产女主播一区| 亚洲欧洲精品一区二区三区不卡| 亚洲人亚洲人成电影网站色| 亚洲一区二区三区影院| 亚洲午夜精品网| 亚洲一区在线电影| 日本欧美大码aⅴ在线播放| 国产一区二区三区在线观看免费视频 | 97精品久久久午夜一区二区三区| 99视频超级精品| 欧美日韩的一区二区| 日韩精品在线网站| 亚洲欧美怡红院| 婷婷一区二区三区| 国产成人小视频| 在线欧美日韩精品| 2023国产精华国产精品| 国产精品国产a| 日韩国产欧美三级| 成人在线视频一区二区| 在线观看国产精品网站| 欧美不卡在线视频| 亚洲欧洲日韩一区二区三区| 午夜久久久影院| 成人丝袜高跟foot| 欧美嫩在线观看| 国产欧美视频一区二区三区| 亚洲黄色尤物视频| 久久超碰97中文字幕| 99久久久久免费精品国产| 91精品国产色综合久久不卡蜜臀| 中文字幕第一区第二区| 日韩电影网1区2区| 99这里只有精品| 亚洲精品一线二线三线| 中文字幕在线播放不卡一区| 免费不卡在线观看| 欧洲精品在线观看| 国产精品美女久久久久久久网站| 日精品一区二区| 欧洲精品视频在线观看| 亚洲国产高清在线观看视频| 青青草伊人久久| 在线欧美日韩精品| ●精品国产综合乱码久久久久| 久久精品国产亚洲a| 欧美性猛交xxxxxxxx| 国产精品成人一区二区艾草| 精品一二线国产| 91精品国产91久久久久久最新毛片| 日韩毛片精品高清免费| 国产福利91精品一区| 日韩欧美国产三级电影视频| 一区二区成人在线观看| av成人老司机| 国产精品三级在线观看| 国产一区欧美二区| 欧美大片在线观看一区| 日韩精品三区四区| 欧美放荡的少妇| 亚洲一区二区三区四区不卡| 99久久精品国产毛片| 中文字幕一区二区三区乱码在线| 日韩电影在线免费| 国产乱码精品一区二区三区忘忧草| 久久综合资源网| 久久精品夜色噜噜亚洲aⅴ| 蜜桃视频免费观看一区| 欧美中文字幕一二三区视频| 亚洲天堂av一区| av成人老司机| 成人欧美一区二区三区黑人麻豆 | 激情久久五月天| 日韩一区二区三区视频在线观看 | 久久国产精品无码网站| 欧美大黄免费观看| 激情图区综合网| 欧美国产日本视频| 成人国产一区二区三区精品| 日韩一区在线播放| 色婷婷国产精品综合在线观看| 一区二区三区国产豹纹内裤在线| 欧美自拍偷拍一区| 无吗不卡中文字幕| 欧美一二三四在线| 国产毛片精品国产一区二区三区| 国产亚洲欧洲997久久综合| 国产激情偷乱视频一区二区三区| 欧美国产欧美综合| 91在线码无精品| 午夜精品久久久久影视| 日韩限制级电影在线观看| 国产麻豆一精品一av一免费 | 亚洲人成精品久久久久| 欧美中文字幕不卡| 奇米一区二区三区av| 久久久久久一二三区| 不卡视频免费播放| 亚洲午夜电影在线| 日韩美女主播在线视频一区二区三区| 久久av中文字幕片| 亚洲婷婷国产精品电影人久久| 欧美午夜影院一区| 国产在线麻豆精品观看| 亚洲同性同志一二三专区| 欧美日韩国产经典色站一区二区三区| 免费在线观看一区二区三区| 亚洲国产精华液网站w|