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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? skyblue_llkdlg.cpp

?? 介紹了外掛的方法 雙緩沖技術(shù) 位圖的操作 算法的優(yōu)化
?? CPP
字號:
/*++

Copyright (c) AFE(Active-Free-Elegance)

Module Name:

    skyblue_LLKDlg.cpp

Abstract:

	LLK-Game's kernal-solving Dialog

Author:

    Weijian Luo (Arthur Luo)   15-Jun-2005

	E-mail: skybluehacker@yahoo.com.cn

Revision History:      1.0

--*/

#include "stdafx.h"
#include "skyblue_LLK.h"
#include "skyblue_LLKDlg.h"

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

 /*程序的整體在這里實現(xiàn)*/

/////////////////////////////////////////////////////////////////////////////
// C_LLK_Dlg dialog

#define BKCOLOR         RGB(128,128,128)	//背景顏色
#define FRONTWIDTH	    (39+2)			    //前面方塊的寬度
#define FRONTHEIGHT	    (39+12)			    //前面方塊的高度
#define BKWIDTH	        46					//背景方塊的寬度
#define BKHEIGHT        56					//背景方塊的高度
#define ROWCOUNT        7					//行數(shù)
#define COLCOUNT        12					//列數(shù)

#define BLANK_STATE     -1                  //空方塊(沒有任何動物)

/////////////////////////////////////////////////////////////////////////////
// C_LLK_Dlg dialog

C_LLK_Dlg::C_LLK_Dlg(CWnd* pParent /*=NULL*/)
	: CDialog(C_LLK_Dlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(C_LLK_Dlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

	//記錄方塊置為無效狀態(tài) 
	m_nY1= BLANK_STATE;  //鼠標(biāo)點擊的方塊的行數(shù)和列數(shù) 初始化是要將其設(shè)為無狀態(tài)
	m_nX1= BLANK_STATE;

	//初始化行列數(shù)
	m_nRow=ROWCOUNT;
	m_nCol=COLCOUNT;

	//根據(jù)行列數(shù)動態(tài)分配內(nèi)核數(shù)據(jù)數(shù)組空間
	m_map=new int[m_nRow*m_nCol];
}

C_LLK_Dlg::~C_LLK_Dlg()
{
	//釋放動態(tài)數(shù)組空間
	delete[] m_map;
}

void C_LLK_Dlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(C_LLK_Dlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(C_LLK_Dlg, CDialog)
	//{{AFX_MSG_MAP(C_LLK_Dlg)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_WM_LBUTTONDOWN()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// C_LLK_Dlg message handlers

BOOL C_LLK_Dlg::OnInitDialog()
{//函數(shù)的作用是初始化
	
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon

	//獲取程序框架的設(shè)備環(huán)境
	CDC *pWinDC = GetDC();	

	//內(nèi)存設(shè)備環(huán)境以及內(nèi)存位圖的創(chuàng)建,初始化,關(guān)聯(lián)

	//3D方塊邊框圖樣內(nèi)存位圖
	m_mem3DBkDC.CreateCompatibleDC(pWinDC);//動物的背景圖案
	m_mem3DBkBmp.LoadBitmap(IDB_BITMAP_3D_FRAMES);
	m_mem3DBkDC.SelectObject(&m_mem3DBkBmp);
	//動物圖樣內(nèi)存位圖
	m_memAnimalDC.CreateCompatibleDC(pWinDC);//動物的圖像
	m_memAnimalBmp.LoadBitmap(IDB_BMP_ANIMAL);
	m_memAnimalDC.SelectObject(&m_memAnimalBmp);
	//整個游戲區(qū)域內(nèi)存位圖	
	m_MemDC.CreateCompatibleDC(pWinDC);
	m_memBitmap.CreateCompatibleBitmap(pWinDC,
		m_nCol*FRONTWIDTH+5,
		m_nRow*FRONTHEIGHT+5);//創(chuàng)建兼容的位圖
	m_MemDC.SelectObject(&m_memBitmap);
	
	//開始一個新的游戲
	StartNewGame();

	//放在最桌面的前面顯示
	HWND hWnd = ::AfxGetMainWnd()->m_hWnd;
	::SetWindowPos(hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);


	return TRUE;  // return TRUE  unless you set the focus to a control
}

void C_LLK_Dlg::StartNewGame()
{//函數(shù)的作用是得到一張新的地圖

	//初始化地圖,將地圖中所有方塊區(qū)域位置置為空方塊狀態(tài)
	for(int iNum=0;iNum<(m_nCol*m_nRow);iNum++)
	{
		m_map[iNum] = BLANK_STATE;
	}

	//部下隨機種子
	srand(time(NULL));//time得到時間消失的秒數(shù) srand得到偽隨機數(shù)  設(shè)置一次就可以了

	//生成隨機地圖
	//將所有匹配成對的動物物種放進(jìn)一個臨時的地圖中
	CDWordArray tmpMap;	
	for(int i=0;i<(m_nCol*m_nRow)/4;i++)
		for(int j=0;j<4;j++)
			tmpMap.Add(i);  //在數(shù)組的末尾加上數(shù)據(jù) i是表示加的元素的值  數(shù)組中有21個元素

	//每次從上面的臨時地圖中取走(獲取后并在臨時地圖刪除)
	//一個動物放到地圖的空方塊上
	for(i=0;i<m_nRow*m_nCol;i++)
	{	
		//隨機挑選一個位置
		int nIndex=(int(rand()*0.1+rand()*0.01+rand()))%tmpMap.GetSize(); //獲取動物的索引號
		//獲取該選定物件放到地圖的空方塊
		m_map[i]=tmpMap.GetAt(nIndex);

		//在臨時地圖除去該動物
		tmpMap.RemoveAt(nIndex);		
	}
	

	//更新顯示
	Invalidate(TRUE);//實際上是進(jìn)行游戲的圖形的繪制 直接進(jìn)入到OnPaint函數(shù)
}

//
//  游戲區(qū)域的繪制
//
void C_LLK_Dlg::GameDraw(CDC * pDC)
{
	//繪制背景顏色 
	pDC->FillSolidRect(0,0,m_nCol*FRONTWIDTH+5,m_nRow*FRONTHEIGHT+5,BKCOLOR);//底色是灰色
/*背景位圖是46*56的 動物位圖是包含頂層與背景層的雙排位圖39*39*/
	for(int i=0;i<m_nRow;i++)
	{
		for(int j=0;j<m_nCol;j++)
		{			
			if(m_map[i*m_nCol+j]==BLANK_STATE)
			{
			continue;  //跳出本次循環(huán) 方塊被抵消掉了所以呈現(xiàn)背景色
			}
			//繪制方塊邊框
			pDC->BitBlt(j*FRONTWIDTH,i*FRONTHEIGHT,
				BKWIDTH,BKHEIGHT,
				&m_mem3DBkDC,
				0,BKHEIGHT,
				SRCCOPY);//直接拷貝源位圖
			//繪制方塊
			//因為要使得效果透明,所以由圖樣的底色以及表面兩部分構(gòu)成
			pDC->BitBlt(j*FRONTWIDTH,i*FRONTHEIGHT,
				FRONTWIDTH-2,FRONTHEIGHT-12,
				&m_memAnimalDC,
				FRONTWIDTH-2,m_map[i*m_nCol+j]*(FRONTHEIGHT-12),
				SRCAND);
			pDC->BitBlt(j*FRONTWIDTH,i*FRONTHEIGHT,
				FRONTWIDTH-2,FRONTHEIGHT-12,
				&m_memAnimalDC,
				0,m_map[i*m_nCol+j]*(FRONTHEIGHT-12),
				SRCPAINT);   //繪圖的規(guī)范要給據(jù)具體的圖形來決定
		}
	}
}



// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR C_LLK_Dlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void C_LLK_Dlg::OnPaint() 
{
		CPaintDC dc(this); // device context for painting
		
		//先將整個游戲區(qū)域的圖像繪制到內(nèi)存位圖
		GameDraw(&m_MemDC);
		//將內(nèi)存位圖中繪制好的圖像一次性拷貝到屏幕
		dc.BitBlt(0,0,m_nCol*FRONTWIDTH,m_nCol*FRONTHEIGHT,&m_MemDC,0,0,SRCCOPY);
}

//
// 鼠標(biāo)左鍵消息處理
//
void C_LLK_Dlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
	//1.計算鼠標(biāo)點擊方塊的的位置
	int x=point.x/FRONTWIDTH+(point.x%FRONTWIDTH?1:0)-1;//列
	int y=point.y/FRONTHEIGHT+(point.y%FRONTHEIGHT?1:0)-1;//行
	
	//2.在游戲區(qū)域內(nèi)并且該區(qū)域還有該區(qū)域不是空的區(qū)域
	if(x<m_nCol&&y<m_nRow&&m_map[y*m_nCol+x]!= BLANK_STATE)
	{
				
		//3.假設(shè)尚未記錄第一個方塊
		if(m_nX1==BLANK_STATE)
		{
			//4.記錄第一個方塊的位置
			m_nX1=x;
			m_nY1=y;
			
			//獲取程序框架的設(shè)備環(huán)境
			CDC *pWinDC = GetDC();
			
			//臨時繪制點中的方塊外框
			//只繪屏幕不載入內(nèi)存位圖
			CPen myPen;
			CPen *pOldPen;
			myPen.CreatePen(PS_SOLID, 4, RGB(255,0,0));
			pOldPen = 	pWinDC->SelectObject(&myPen);
			//方塊外框繪制,線條環(huán)繞繪制框架
			pWinDC->MoveTo(x*FRONTWIDTH,y*FRONTHEIGHT);
			pWinDC->LineTo(x*FRONTWIDTH,(y+1)*FRONTHEIGHT);
			pWinDC->LineTo((x+1)*FRONTWIDTH,(y+1)*FRONTHEIGHT);
			pWinDC->LineTo((x+1)*FRONTWIDTH,y*FRONTHEIGHT);
			pWinDC->LineTo(x*FRONTWIDTH,y*FRONTHEIGHT);
			//現(xiàn)場恢復(fù)
			pWinDC->SelectObject(pOldPen);
		}
		else
		{ 
			//5.判斷是否點擊的方塊非本身, 是否點擊同一種動物
			if((m_nX1!=x||m_nY1!=y)&& 
			  m_map[m_nY1*m_nCol+m_nX1]==m_map[y*m_nCol+x]
				)
			{
				//6.檢測是否可以消除 //滿足兩點之間的連線小于3個折線的情況
				if(IsLink(m_nX1,m_nY1,x,y))
				{
					//7.數(shù)據(jù)清理
					m_map[m_nY1*m_nCol+m_nX1]=BLANK_STATE;
					m_map[y*m_nCol+x]=BLANK_STATE;
				}				
			}
			//8.清空記錄方塊的值
			m_nX1=BLANK_STATE;  
			m_nY1=BLANK_STATE;	
						
			//通知重繪
			Invalidate(FALSE);
		}
	}
	
	//察看是否已經(jīng)勝利
	if(IsWin())
	{
		MessageBox("恭喜您勝利闖關(guān),即將開始新局");
		StartNewGame();
	}
}


//
//X直接連通
//
BOOL C_LLK_Dlg::X1_Link_X2(int x, int y1,int y2)
{
	//保證y1的值小于y2
	if(y1>y2)
	{
		//數(shù)據(jù)交換
		int n=y1;
		y1=y2;
		y2=n;
	}

	//直通 	
	for(int i=y1+1;i<=y2;i++)
	{
		if(i==y2)
			return TRUE;//表示直連
		if(m_map[i*m_nCol+x]!=BLANK_STATE)
			break;      //表示非直連
	}
	//左通
	if(XThrough(x-1,y1,FALSE)&&XThrough(x-1,y2,FALSE))
		return TRUE;
	//右通
	if(XThrough(x+1,y1,TRUE)&&XThrough(x+1,y2,TRUE))
		return TRUE;
	return FALSE;
}

//
//Y直接連通
//
BOOL C_LLK_Dlg::Y1_Link_Y2(int x1,int x2,int y)
{
	if(x1>x2)
	{
		int x=x1;
		x1=x2;
		x2=x;
	}
	//直通
	for(int i=x1+1;i<=x2;i++)
	{
		if(i==x2)
			return TRUE;
		if(m_map[y*m_nCol+i]!=BLANK_STATE)
			break;
	}
	//上通
	if(YThrough(x1,y-1,FALSE)&&YThrough(x2,y-1,FALSE))
		return TRUE;
	//下通
	if(YThrough(x1,y+1,TRUE)&&YThrough(x2,y+1,TRUE))
		return TRUE;
	return FALSE;
}

//
// 是否同一直線通
//
BOOL C_LLK_Dlg::LineX(int x,int y1,int y2)
{
	if(y1>y2)
	{
		int y=y1;
		y1=y2;
		y2=y;
	}
	for(int y=y1;y<=y2;y++)
	{
		if(m_map[y*m_nCol+x]!=BLANK_STATE)
			return FALSE;
		if(y==y2)
			return TRUE;
	}
	return FALSE;
}

//
// 是否同一直線通
//
BOOL C_LLK_Dlg::LineY(int x1,int x2,int y)
{
	if(x1>x2)
	{
		int x=x1;
		x1=x2;
		x2=x;
	}
	for(int x=x1;x<=x2;x++)
	{
		if(m_map[y*m_nCol+x]!=BLANK_STATE)
			return FALSE;
		if(x==x2)
			return TRUE;
	}
	return FALSE;
}

//
//  1直角接口連通
//
BOOL C_LLK_Dlg::OneCornerLink(int x1, int y1,int x2, int y2)
{
	if(x1>x2)
	{
		int n=x1;
		x1=x2;
		x2=n;
		n=y1;
		y1=y2;
		y2=n;
	}
	if(y2<y1)
	{
		if(LineY(x1+1,x2,y1)&&LineX(x2,y1,y2+1))
			return TRUE;
		if(LineY(x2-1,x1,y2)&&LineX(x1,y2,y1-1))
			return TRUE;
		return FALSE;
	}	
	else
	{
		if(LineY(x1+1,x2,y1)&&LineX(x2,y1,y2-1))
			return TRUE;
		if(LineY(x2-1,x1,y2)&&LineX(x1,y2,y1+1))
			return TRUE;		
		return FALSE;
	}
	return FALSE;
}

//
//  2直角接口連通
//
BOOL C_LLK_Dlg::TwoCornerLink(int x1, int y1, int x2, int y2)
{
	if(x1>x2)
	{
		int n=x1;
		x1=x2;
		x2=n;
		n=y1;
		y1=y2;
		y2=n;
	}
	//右通
	if(XThrough(x1+1,y1,TRUE)&&XThrough(x2+1,y2,TRUE))
		return TRUE;
	//左通
	if(XThrough(x1-1,y1,FALSE)&&XThrough(x2-1,y2,FALSE))
		return TRUE;
	//上通
	if(YThrough(x1,y1-1,FALSE)&&YThrough(x2,y2-1,FALSE))
		return TRUE;
	//下通
	if(YThrough(x1,y1+1,TRUE)&&YThrough(x2,y2+1,TRUE))
		return TRUE;
	//右
	for(int x=x1+1;x<m_nCol;x++)
	{
		if(m_map[y1*m_nCol+x]>-1)
			break;
		if(OneCornerLink(x,y1,x2,y2))
			return TRUE;
	}
	//左
	for(x=x1-1;x>-1;x--)
	{
		if(m_map[y1*m_nCol+x]!=BLANK_STATE)
			break;
		if(OneCornerLink(x,y1,x2,y2))
			return TRUE;
	}
	//上
	for(int y=y1-1;y>-1;y--)
	{
		if(m_map[y*m_nCol+x1]!=BLANK_STATE)
			break;
		if(OneCornerLink(x1,y,x2,y2))
			return TRUE;
	}
	//下
	for(y=y1+1;y<m_nRow;y++)
	{
		if(m_map[y*m_nCol+x1]!=BLANK_STATE)
			break;
		if(OneCornerLink(x1,y,x2,y2))
			return TRUE;
	}
	
	return FALSE;
}

BOOL C_LLK_Dlg::XThrough(int x, int y, BOOL bAdd)
{
//右
	if(bAdd)
	{
		for(int i=x;i<m_nCol;i++)
			if(m_map[y*m_nCol+i]!=BLANK_STATE)
				return FALSE;
	}
//左
	else
	{
		for(int i=0;i<=x;i++)
			if(m_map[y*m_nCol+i]!=BLANK_STATE)
				return FALSE;
	}
	return TRUE;
}

BOOL C_LLK_Dlg::YThrough(int x, int y,BOOL bAdd)
{
//上
	if(bAdd)
	{
		for(int i=y;i<m_nRow;i++)
			if(m_map[i*m_nCol+x]!=BLANK_STATE)
				return FALSE;
	}
//下
	else
	{
		for(int i=0;i<=y;i++)
			if(m_map[i*m_nCol+x]!=BLANK_STATE)
				return FALSE;
	}
	return TRUE;
}

//
//  判斷選中的兩個方塊是否可以消除
//
BOOL C_LLK_Dlg::IsLink(int x1, int y1, int x2, int y2)
{
	//X直連方式
	if(x1==x2)
	{
		if(X1_Link_X2(x1,y1,y2))
			return TRUE;
	}
	//Y直連方式
	else if(y1==y2)
	{
		if(Y1_Link_Y2(x1,x2,y1))
			return TRUE;
	}

	//一個轉(zhuǎn)彎直角的聯(lián)通方式
	if(OneCornerLink(x1,y1,x2,y2))
	{
		return TRUE;
	}
	//兩個轉(zhuǎn)彎直角的聯(lián)通方式
	else if(TwoCornerLink(x1,y1,x2,y2))
	{
		return TRUE;
	}
	return FALSE;
}

//
//  截獲鍵盤消息 F2 (用于新游戲開始)
//
BOOL C_LLK_Dlg::PreTranslateMessage(MSG* pMsg) 
{
	if(pMsg->message==WM_KEYDOWN)
	{
		if(pMsg->wParam==VK_F2)
		{
			StartNewGame();

		}
	}

	return CDialog::PreTranslateMessage(pMsg);
}

//
//   檢測是否已經(jīng)贏得了游戲
//
BOOL C_LLK_Dlg::IsWin(void)
{
	//檢測所有是否尚有非未被消除的方塊
	// (非BLANK_STATE狀態(tài))
	for(int i=0;i<m_nRow*m_nCol;i++)
	{
		if(m_map[i] != BLANK_STATE)
		{
			return FALSE;
		}
	}

	return TRUE;
}



?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线视频国内一区二区| 久久99精品国产麻豆婷婷| 国产一区二区在线观看免费| 欧美色图12p| 亚洲靠逼com| 免费看日韩精品| 欧美色综合影院| 欧美www视频| 国产乱国产乱300精品| 久久99国产精品免费网站| 欧美三级在线看| 自拍av一区二区三区| 成人动漫精品一区二区| 久久女同性恋中文字幕| 精品午夜一区二区三区在线观看| 欧美日本在线看| 五月综合激情日本mⅴ| 欧美这里有精品| 中文字幕制服丝袜一区二区三区| 国产91精品久久久久久久网曝门| 久久综合久久99| 黑人巨大精品欧美黑白配亚洲| 日韩女优av电影在线观看| 男女视频一区二区| 日韩欧美激情四射| 看片网站欧美日韩| 欧美成人高清电影在线| 美脚の诱脚舐め脚责91| 欧美videos中文字幕| 久久99精品国产| 久久综合给合久久狠狠狠97色69| 精品一区二区免费看| 久久精品在这里| 国产成人免费在线观看不卡| 久久欧美一区二区| 国产ts人妖一区二区| 亚洲欧美日韩中文播放| 色综合咪咪久久| 亚洲午夜激情av| 色呦呦一区二区三区| 亚欧色一区w666天堂| 欧美一区二区精美| 国内外成人在线视频| 日韩女同互慰一区二区| 亚洲一区二区美女| 精品国产乱子伦一区| 国产一区二区精品久久| 日本一区二区高清| 国产激情一区二区三区四区| 欧美经典三级视频一区二区三区| 成人精品高清在线| 亚洲精品欧美在线| 欧美猛男gaygay网站| 美女高潮久久久| 国产亚洲女人久久久久毛片| 成人黄色免费短视频| 国产激情视频一区二区在线观看 | 精品国产乱码久久久久久夜甘婷婷| 不卡视频在线观看| 国产精品无人区| 国产成人在线视频播放| 中文字幕亚洲欧美在线不卡| 欧美综合一区二区| 日本色综合中文字幕| 久久久综合激的五月天| 色综合久久久久综合体桃花网| 五月婷婷欧美视频| 久久久久久久久一| 色天使久久综合网天天| 九色综合国产一区二区三区| 日本一区二区免费在线观看视频| 一本久久精品一区二区| 视频一区国产视频| 精品国产一区二区精华| 极品美女销魂一区二区三区| 成a人片亚洲日本久久| 免费看欧美美女黄的网站| 国产精品色在线观看| 成人av免费观看| 尤物在线观看一区| 日韩情涩欧美日韩视频| 99视频精品免费视频| 石原莉奈在线亚洲三区| 国产三级精品三级| 欧美日韩国产一区二区三区地区| 久久99国内精品| 伊人一区二区三区| 久久精品一区二区| 欧美午夜精品久久久久久孕妇| 狠狠色丁香久久婷婷综合_中| 日韩美女啊v在线免费观看| 欧美精品一区二区三区很污很色的 | 欧美一二三四在线| 成人午夜视频免费看| 免费成人小视频| 亚洲少妇中出一区| 欧美精品一区二区不卡| 色综合久久久久综合99| 国产不卡免费视频| 久久综合综合久久综合| 一区二区三区成人| 久久久国产午夜精品| 91精品国产综合久久精品app | 日本vs亚洲vs韩国一区三区二区| 国产精品美日韩| 精品少妇一区二区三区日产乱码 | 国产精品中文字幕日韩精品| 日本高清免费不卡视频| 另类小说图片综合网| 亚洲色图欧洲色图婷婷| 精品不卡在线视频| 69久久夜色精品国产69蝌蚪网 | 中文字幕在线观看不卡| 欧美美女一区二区在线观看| 91免费看片在线观看| av不卡免费电影| 国模少妇一区二区三区| 另类调教123区| 日本不卡高清视频| 亚洲精品国产一区二区三区四区在线| 不卡电影一区二区三区| 亚洲欧美激情一区二区| 欧美激情一区二区三区在线| 2021中文字幕一区亚洲| 日韩欧美国产1| 欧美大片一区二区| 日韩免费高清av| 精品久久久久久无| 精品国产1区二区| 久久综合成人精品亚洲另类欧美 | 国产欧美日韩一区二区三区在线观看| 日韩女优av电影在线观看| 欧美一二三区在线观看| 日韩一区二区精品在线观看| 日韩色视频在线观看| 日韩欧美色电影| 精品成人在线观看| 久久婷婷成人综合色| 国产欧美日本一区视频| 国产精品全国免费观看高清| 欧美高清在线一区| 亚洲视频免费在线观看| 一级特黄大欧美久久久| 亚洲一区二区精品久久av| 婷婷开心久久网| 久久精品国产亚洲a| 激情综合色综合久久| 国产一区二区三区四 | 日本亚洲电影天堂| 久久精品国产秦先生| 国产真实乱偷精品视频免| 国产成人精品亚洲777人妖| 成人av网址在线观看| 色av成人天堂桃色av| 欧美日韩国产免费| 亚洲欧洲精品一区二区三区| 亚洲一线二线三线视频| 国产精品成人午夜| 亚洲一区中文在线| 亚洲大片免费看| 久久成人免费电影| 成人国产电影网| 欧美日韩中文国产| 久久一日本道色综合| 综合欧美亚洲日本| 日韩激情一区二区| 国产精品99久久久久久久女警| eeuss鲁片一区二区三区在线看| 在线日韩一区二区| 日韩一区二区三区在线观看| 久久美女高清视频 | 欧美电视剧在线看免费| 久久精品亚洲乱码伦伦中文| 久久久精品国产99久久精品芒果| 日韩欧美一区二区不卡| 中文一区在线播放| 亚洲电影一区二区三区| 国内精品第一页| 91丨porny丨首页| 7777精品伊人久久久大香线蕉 | 国产精品99久久久久久久女警| 97精品超碰一区二区三区| 欧美剧情片在线观看| 国产亲近乱来精品视频| 亚洲一区二区三区视频在线播放| 极品尤物av久久免费看| 99久久99久久精品国产片果冻| 91麻豆精品国产91久久久久| 亚洲国产精品激情在线观看| 亚洲v中文字幕| 国产91在线|亚洲| 911精品国产一区二区在线| 国产精品丝袜久久久久久app| 亚洲超丰满肉感bbw| 成人午夜在线免费| 日韩亚洲欧美高清| 一区二区在线电影| 国产一区二区在线观看视频| 欧美日精品一区视频| 日本一区二区三区电影|