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

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

?? mygame.cpp

?? 這是一個連連看的游戲源程序
?? CPP
字號:
// MyGame.cpp : implementation file
//

#include "stdafx.h"
#include <afx.h>
#include "Game.h"
#include "MyGame.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMyGame

CMyGame::CMyGame()
{
	m_dx = 40 ;				//圖標尺寸
	m_dy = 50 ;
	m_yc = 90 ;				//小窗口起始y值
	m_num = -1 ;			//初始無點
	m_ScreenWidth = 772 ;	//772*652窗口尺寸,應從窗口函數讀取,未完成
	m_ScreenHeight = 652 ;	
	m_Class = EMPTY ;		//無級別
	m_SortAll = true ;		//true-初始排序,false-重新排序
	m_Pause = false ;		//未暫停
	m_GameOver = false ;	//結束否開關
	
	//隨機初始化
	time_t tm ;	
	time(&tm) ;
	srand((int)tm) ;
}

CMyGame::~CMyGame()
{
}

BEGIN_MESSAGE_MAP(CMyGame, CWnd)
	//{{AFX_MSG_MAP(CMyGame)
		// NOTE - the ClassWizard will add and remove mapping macros here.
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyGame message handlers

//設置不同級別的初始圖尺寸
void CMyGame::SetClass()
{
	m_Score = 0 ;
	m_Layer = 0 ;
	switch( m_Class )
	{
	case EASY :
		m_Xsize = 12 ;
		m_Ysize = 7 ;
		m_Look = 2 ;
		m_Prompt = 4 ;
		break;
	case NORMAL :
		m_Xsize = 14 ;
		m_Ysize = 8 ;
		m_Look = 3 ;
		m_Prompt = 6 ;
		break;
	case HARD :
		m_Xsize = 16 ;
		m_Ysize = 9 ;
		m_Look = 4 ;
		m_Prompt = 8 ;
		break;
	}
	m_GameOver = false ;
	m_xc=(770-m_Xsize*m_dx)/2 ;	//770為窗口寬度,應從窗口讀取,現未完成
}

//初始化隨機生成圖標,使用冒泡排序算法

void CMyGame::ReInitData()
{
	m_SortAll = false ;
	do
	{	InitData() ;
	}while(!TestAll()) ;
	m_SortAll = true ;
}
void CMyGame::InitData()
{
	int i, j; 
	int x[16*9];

	//生成初始序號
	if ( m_SortAll )
	{	m_Count = m_Xsize*m_Ysize/2 ;
		m_Time = 300 ;
	}
	int Count = m_Count*2 ;

	//產生隨機數
	GetRand(x, Count) ;

	//按冒泡排序算法將隨機數的按序號排序

	//按約定的每圖標4個產生初始圖
	if ( m_SortAll )
	{	for (i=0; i<m_Xsize; i++)
			for (j=0; j<m_Ysize; j++)
				m_Data[i][j]=x[i*m_Ysize+j]/4+1;	//+1,約定值0表示被消去
	}
	else
	{	int tmpData[16*9] ;

		int k = 0 ;
		for (i=0; i<m_Xsize; i++)
			for (j=0; j<m_Ysize; j++)
				if ( m_Data[i][j] != 0 )
					tmpData[k++] = m_Data[i][j] ;
		k = 0 ;
		for (i=0; i<m_Xsize; i++)
			for (j=0; j<m_Ysize; j++)
				if ( m_Data[i][j] != 0 )
					m_Data[i][j] = tmpData[x[k++]] ;
	}
	//m_Layer = M_UPDOWN2 ;							//m_Layer = M_UPDOWN2 ;測試
	//M_OUT,M_IN
}

//產生一組互不相同的num個隨機數[0,num-1]
void CMyGame::GetRand(int x[], int num)
{
	int xx, i, j ;
	for( i=0; i<num; i++)
	{	
		do
		{	xx = rand()%num ;
			for(j = 0 ; (j<i)&&(xx!=x[j]); j++);
		}while(j!=i) ;
		x[i] = xx ;
	}
}

//輸入參數:(x,y)點坐標
//功能:判斷點(x,y)是否在圖形窗口內,并轉換和保存相應方格值(xw,yw)
//返回成功標志
BOOL CMyGame::GetPoint(int x, int y)
{
	int xw, yw ;
	BOOL InWindow ;

	InWindow = (x-m_xc>=0)&&(x-m_xc<m_Xsize*m_dx)&&(y-m_yc>=0)&&(y-m_yc<m_Ysize*m_dy) ;
										//判斷是否在圖形窗口內
	if ( InWindow )
	{
		xw = (x-m_xc)/m_dx ;			//計算方格值
		yw = (y-m_yc)/m_dy ;
		InWindow &=(m_Data[xw][yw]!=0) ;//判斷是否為0
	}
	if ( InWindow )
	{
		m_num++ ;
		m_xw[m_num] = xw ;				//保存方格值
		m_yw[m_num] = yw ;
	}
	return InWindow ;
}

//輸入參數:k,k1為二點的下標
//功能:判斷二點間有無連線
//返回:二點間有連線的布爾值
enum {START,END,MIDDLE} ;

BOOL CMyGame::CheckLine(BOOL IsPrompt, int k, int k1)
{
	int x0, x1, y0, y1, x, y ;
	BOOL TestOk=false ;

	x0 = m_xw[k] ;
	y0 = m_yw[k] ;
	x1 = m_xw[k1] ;
	y1 = m_yw[k1] ;
	//1.判斷是否同一圖標
	if (m_Data[x0][y0]!=m_Data[x1][y1])	
		return false ;	
	//2.判斷一字直線
	if (x0==x1)
	{
		TestOk = CheckLineY(MIDDLE, x0, y0, y1);
		if ((!TestOk)&&(x0==0))
		{
			TestOk = true ;
			SetPoint(IsPrompt, -1, y0) ;
			SetPoint(IsPrompt, -1, y1) ; }
		if ((!TestOk)&&(x0==m_Xsize-1))
		{
			TestOk = true ;
			SetPoint(IsPrompt, m_Xsize, y0) ;
			SetPoint(IsPrompt, m_Xsize, y1) ;  }
	}
	if (y0==y1)
	{
		TestOk = CheckLineX(MIDDLE, x0, x1, y0);
		if ((!TestOk)&&(y0==0))
		{
			TestOk = true ;
			SetPoint(IsPrompt, x0, -1) ;
			SetPoint(IsPrompt, x1, -1) ; }
		if ((!TestOk)&&(y0==m_Ysize-1))
		{
			TestOk = true ;
			SetPoint(IsPrompt, x0, m_Ysize) ;
			SetPoint(IsPrompt, x1, m_Ysize) ;  }
	}
	//3.判斷L字連線
	if (!TestOk)	
		if(TestOk = CheckLineX(START, x0, x1, y0)&&CheckLineY(MIDDLE, x1, y0, y1))
			SetPoint(IsPrompt, x1, y0) ;
	if (!TestOk)
		if(TestOk = CheckLineY(START, x0, y0, y1)&&CheckLineX(MIDDLE, x0, x1, y1))
			SetPoint(IsPrompt, x0, y1);
	//4.判斷連線
	for(x=x0+1;((x==m_Xsize)||((x<m_Xsize)&&(m_Data[x][y0]==0)))&&(!TestOk);x++)
		if (TestOk = CheckLineY(START,x, y0, y1)&&CheckLineX(MIDDLE, x, x1, y1))
		{	SetPoint(IsPrompt, x, y0) ;
			SetPoint(IsPrompt, x, y1) ; }
	for(x=x0-1;((x==-1)||((x>=-1)&&(m_Data[x][y0]==0)))&&(!TestOk);x--)
		if (TestOk = CheckLineY(START, x, y0, y1)&&CheckLineX(MIDDLE, x, x1, y1))
		{	SetPoint(IsPrompt, x, y0) ;
			SetPoint(IsPrompt, x, y1) ; }
	for(y=y0+1;((y==m_Ysize)||((y<m_Ysize)&&(m_Data[x0][y]==0)))&&(!TestOk);y++)
		if (TestOk = CheckLineX(START,x0, x1, y)&&CheckLineY(MIDDLE,x1, y, y1))
		{	SetPoint(IsPrompt, x0, y) ;
			SetPoint(IsPrompt, x1, y) ; }
	for(y=y0-1;((y==-1)||((y>=0)&&(m_Data[x0][y]==0)))&&(!TestOk);y--)
		if (TestOk = CheckLineX(START,x0, x1, y)&&CheckLineY(MIDDLE,x1, y, y1))
		{	SetPoint(IsPrompt, x0, y) ;
			SetPoint(IsPrompt, x1, y) ; }
	if (TestOk&&(!IsPrompt))
		m_Data[x0][y0] = m_Data[x1][y1] = 0 ;
	return TestOk ;
}

//測試X向連線
BOOL CMyGame::CheckLineX(int flag, int x0, int x1, int y)
{
	BOOL Ok=true ;
	int x ;
	
	if ((y==-1)||(y==m_Ysize)) return true ;
	if ( x0 < x1 )
		for(x=x0+(flag!=END);(x<=x1-(flag!=START))&&Ok;x++) 
			Ok = (m_Data[x][y]==0) ;
	else
		for(x=x0-(flag!=END);(x>=x1+(flag!=START))&&Ok;x--) 
			Ok = (m_Data[x][y]==0) ;
	return Ok ;
}

//測試Y向連線
BOOL CMyGame::CheckLineY(int flag, int x, int y0, int y1)
{
	BOOL Ok=true ;
	int y ;

	if ((x==-1)||(x==m_Xsize)) return true ;
	if ( y0 < y1 )
		for(y=y0+(flag!=END);(y<=y1-(flag!=START))&&Ok;y++) 
			Ok = (m_Data[x][y]==0) ;
	else
		for(y=y0-(flag!=END);(y>=y1+(flag!=START))&&Ok;y--) 
			Ok = (m_Data[x][y]==0) ;
	return Ok ;
}

//測試全圖有無連線
BOOL CMyGame::TestAll()
{
	int k, num ;
	BOOL TestOk = false ;

	num = m_num ;
	for(k = 1 ; (k <= (m_Xsize*m_Ysize)/4)&&(!TestOk); k++)
	{
		FindValue(k) ;
		TestOk = TestGraph() ;
	}
	m_num = num ;
	return TestOk ;
}

//搜索編號為no的圖標,存放在(m_xw[4],m_yw[4])中
void CMyGame::FindValue(int no)
{
	int i, j ;
	BOOL TestOk = false ;

	m_num = -1 ;
	for (i=0; i<m_Xsize; i++)
	{
		for (j=0; j<m_Ysize; j++)
		   if (m_Data[i][j]==no)
		   {
			   m_num++ ;
			   m_xw[m_num] = i ;
			   m_yw[m_num] = j ;
		   }
	}
}

//測試當前圖有無連線
BOOL CMyGame::TestGraph()
{
	int k, k1 ;
	BOOL TestOk = false ;

	if (m_num==-1) return false ;
	k = m_num+1 ;
	do
	{
		k1 = --k ;
		do
		{
			TestOk = CheckLine(true, k, --k1) ;
		}while((k1>0)&&(!TestOk));
	}while((k>1)&&(!TestOk)) ;
	if ( TestOk )
	{
		m_xw[0] = m_xw[k1] ;
		m_yw[0] = m_yw[k1] ;
		m_xw[1] = m_xw[k] ;
		m_yw[1] = m_yw[k] ;
		m_num = 1 ;
	}
	return TestOk ;
}

//轉換圖標(xw,yw)的中心坐標(x,y)
void CMyGame::TranToXYCenter(int *x, int *y, int k)
{
	*x = m_xc+m_xw[k]*m_dx+m_dx/2 ;
	*y = m_yc+m_yw[k]*m_dy+m_dy/2 ;
}

//保存點(xw,yw)到(m_xw[],m_yw[])中
void CMyGame::SetPoint(BOOL IsPrompt, int x, int y)
{
	if (!IsPrompt)
	{
		m_num++;
		m_xw[m_num]=x ; 
		m_yw[m_num]=y ; }
}

//轉換(xw,yw)的圖標角點坐標(x,y)
void CMyGame::TranToXY(int *x, int *y, int xw, int yw)
{
	*x = m_xc+xw*m_dx ;
	*y = m_yc+yw*m_dy ;
}

/***************移動圖形2004.11.10-11.12***************/

void CMyGame::MoveGraph()
{
	switch( m_Layer )
	{
	case M_NO :			//不變化
	case M_OUT :		//向外擴散,未完成
	case M_IN :			//向內集中,未完成
		break ;
	case M_DOWN:		//向下
		MoveToDown2(ALL) ;
		break ;
	case M_LEFT:		//向左
		MoveToLeft2(ALL) ;
		break ;
	case M_UP:			//向上
		MoveToUp2(ALL) ;
		break ;
	case M_RIGHT:		//向右
		MoveToRight2(ALL) ;
		break ;
	case M_UPDOWN :		//上下分離
		switch((m_yw[0]>=m_Ysize/2)+2*(m_yw[1]>=m_Ysize/2))
		{
		case 0 :		//HALF0-HALF0
			MoveToUp2(HALF0) ;
			break ;
		case 1 :		//HALF1-HALF0
			MoveToDown(m_xw[0], m_yw[0], HALF1) ;
			MoveToUp(m_xw[1], m_yw[1], HALF0) ;
			break ;
		case 2 :		//HALF0-HALF1
			MoveToUp(m_xw[0], m_yw[0], HALF0) ;
			MoveToDown(m_xw[1], m_yw[1], HALF1) ;
			break ;
		case 3 :		//HALF1-HALF1
			MoveToDown2(HALF1) ;
			break ;
		}
		break ;
	case M_LEFTRIGHT :	//左右分離
		switch((m_xw[0]>=m_Xsize/2)+2*(m_xw[1]>=m_Xsize/2))
		{
		case 0 :		//HALF0-HALF0
			MoveToLeft2(HALF0) ;
			break ;
		case 1 :		//HALF1-HALF0
			MoveToRight(m_xw[0], m_yw[0], HALF1) ;
			MoveToLeft(m_xw[1], m_yw[1], HALF0) ;
			break ;
		case 2 :		//HALF0-HALF1
			MoveToLeft(m_xw[0], m_yw[0], HALF0) ;
			MoveToRight(m_xw[1], m_yw[1], HALF1) ;
			break ;
		case 3 :		//HALF1-HALF1
			MoveToRight2(HALF1) ;
			break ;
		}
		break ;
	case M_UPDOWN1 :	//上下集中 
		switch((m_yw[0]>=m_Ysize/2)+2*(m_yw[1]>=m_Ysize/2))
		{
		case 0 :		//HALF0-HALF0
			MoveToDown2(HALF0) ;
			break ;
		case 1 :		//HALF1-HALF0
			MoveToUp(m_xw[0], m_yw[0], HALF1) ;
			MoveToDown(m_xw[1], m_yw[1], HALF0) ;
			break ;
		case 2 :		//HALF0-HALF1
			MoveToDown(m_xw[0], m_yw[0], HALF0) ;
			MoveToUp(m_xw[1], m_yw[1], HALF1) ;
			break ;
		case 3 :		//HALF1-HALF1
			MoveToUp2(HALF1) ;
			break ;
		}
		break ;	
	case M_LEFTRIGHT1 :	//左右集中
		switch((m_xw[0]>=m_Xsize/2)+2*(m_xw[1]>=m_Xsize/2))
		{
		case 0 :		//HALF0-HALF0
			MoveToRight2(HALF0) ;
			break ;
		case 1 :		//HALF1-HALF0
			MoveToLeft(m_xw[0], m_yw[0], HALF1) ;
			MoveToRight(m_xw[1], m_yw[1], HALF0) ;
			break ;
		case 2 :		//HALF0-HALF1
			MoveToRight(m_xw[0], m_yw[0], HALF0) ;
			MoveToLeft(m_xw[1], m_yw[1], HALF1) ;
			break ;
		case 3 :		//HALF1-HALF1
			MoveToLeft2(HALF1) ;
			break ;
		}
		break ;
	case M_LEFTRIGHT2 :	//上左下右
		switch((m_yw[0]>=m_Ysize/2)+2*(m_yw[1]>=m_Ysize/2))
		{
		case 0 :		//HALF0-HALF0
			MoveToLeft2(ALL) ;
			break ;
		case 1 :		//HALF1-HALF0
			MoveToRight(m_xw[0], m_yw[0], ALL) ;
			MoveToLeft(m_xw[1], m_yw[1], ALL) ;
			break ;
		case 2 :		//HALF0-HALF1
			MoveToLeft(m_xw[0], m_yw[0], ALL) ;
			MoveToRight(m_xw[1], m_yw[1], ALL) ;
			break ;
		case 3 :		//HALF1-HALF1
			MoveToRight2(ALL) ;
			break ;
		}
		break ;
	case M_UPDOWN2 :	//左下右上
		switch((m_xw[0]>=m_Xsize/2)+2*(m_xw[1]>=m_Xsize/2))
		{
		case 0 :		//HALF0-HALF0
			MoveToDown2(ALL) ;
			break ;
		case 1 :		//HALF1-HALF0
			MoveToUp(m_xw[0], m_yw[0], ALL) ;
			MoveToDown(m_xw[1], m_yw[1], ALL) ;
			break ;
		case 2 :		//HALF0-HALF1
			MoveToDown(m_xw[0], m_yw[0], ALL) ;
			MoveToUp(m_xw[1], m_yw[1], ALL) ;
			break ;
		case 3 :		//HALF1-HALF1
			MoveToUp2(ALL) ;
			break ;
		}
		break ;	
	}
}

//上移子程序
//AreaFlag:ALL-全區,HALF0-上半區,HALF1-下半區
void CMyGame::MoveToUp(int xw, int yw, int AreaFlag)
{
	int yw1;

	switch( AreaFlag )
	{
	case ALL :
	case HALF1 :	
		yw1 = m_Ysize ;
		break ;
	case HALF0 :
		yw1 = m_Ysize/2 ;
		break ;
	}
	for (; yw<yw1-1; yw++)
		m_Data[xw][yw] = m_Data[xw][yw+1] ;
	m_Data[xw][yw] = 0 ;
}

//下移子程序
//AreaFlag:ALL-全區,HALF0-上半區,HALF1-下半區
void CMyGame::MoveToDown(int xw, int yw, int AreaFlag)
{
	int yw1;
	switch( AreaFlag )
	{
	case ALL :
	case HALF0 :
		yw1 = 0 ;
		break ;
	case HALF1 :
		yw1 = m_Ysize/2 ;
		break ;
	}
	for (; yw>yw1; yw--)
		m_Data[xw][yw] = m_Data[xw][yw-1] ;
	m_Data[xw][yw] = 0 ;
}

//左移子程序
//AreaFlag:ALL-全區,HALF0-左半區,HALF1-右半區
void CMyGame::MoveToLeft(int xw, int yw, int AreaFlag)
{
	int xw1;

	switch( AreaFlag )
	{
	case ALL :
	case HALF1 :
		xw1 = m_Xsize ;
		break ;
	case HALF0 :
		xw1 = m_Xsize/2 ;
		break ;
	}
	for (; xw<xw1-1; xw++)
		m_Data[xw][yw] = m_Data[xw+1][yw] ;
	m_Data[xw][yw] = 0 ;
}

//右移子程序
//AreaFlag:ALL-全區,HALF0-左半區,HALF1-右半區
void CMyGame::MoveToRight(int xw, int yw, int AreaFlag)
{
	int xw1;

	switch( AreaFlag )
	{
	case ALL :
	case HALF0 :
		xw1 = 0 ;
		break ;
	case HALF1 :
		xw1 = m_Xsize/2 ;
		break ;
	}
	for (; xw>xw1; xw--)
		m_Data[xw][yw] = m_Data[xw-1][yw] ;
	m_Data[xw][yw] = 0 ;
}

//二點下移子程序,考慮二點同列
//AreaFlag:ALL-全區,HALF0-上半區,HALF1-下半區
void CMyGame::MoveToDown2(int AreaFlag)
{
	if ((m_xw[0]!=m_xw[1])||((m_xw[0]==m_xw[1])&&(m_yw[0]<m_yw[1])))
	{	MoveToDown(m_xw[0], m_yw[0], AreaFlag) ;
		MoveToDown(m_xw[1], m_yw[1], AreaFlag) ;}
	else
	{	MoveToDown(m_xw[1], m_yw[1], AreaFlag) ;
		MoveToDown(m_xw[0], m_yw[0], AreaFlag) ;}
}

//二點左移子程序,考慮二點同行
//AreaFlag:ALL-全區,HALF0-左半區,HALF1-右半區
void CMyGame::MoveToLeft2(int AreaFlag)
{
	if ((m_yw[0]!=m_yw[1])||((m_yw[0]==m_yw[1])&&(m_xw[0]>m_xw[1])))
	{	MoveToLeft(m_xw[0], m_yw[0], AreaFlag) ;
		MoveToLeft(m_xw[1], m_yw[1], AreaFlag) ;}
	else
	{	MoveToLeft(m_xw[1], m_yw[1], AreaFlag) ;
		MoveToLeft(m_xw[0], m_yw[0], AreaFlag) ;}
}

//二點上移子程序,考慮二點同列
//AreaFlag:ALL-全區,HALF0-上半區,HALF1-下半區	
void CMyGame::MoveToUp2(int AreaFlag)
{
	if ((m_xw[0]!=m_xw[1])||((m_xw[0]==m_xw[1])&&(m_yw[0]>m_yw[1])))
	{	MoveToUp(m_xw[0], m_yw[0], AreaFlag) ;
		MoveToUp(m_xw[1], m_yw[1], AreaFlag) ;}
	else
	{	MoveToUp(m_xw[1], m_yw[1], AreaFlag) ;
		MoveToUp(m_xw[0], m_yw[0], AreaFlag) ;}
}

//二點右移子程序,考慮二點同行
//AreaFlag:ALL-全區,HALF0-左半區,HALF1-右半區
void CMyGame::MoveToRight2(int AreaFlag)
{
	if ((m_yw[0]!=m_yw[1])||((m_yw[0]==m_yw[1])&&(m_xw[0]<m_xw[1])))
	{	MoveToRight(m_xw[0], m_yw[0], AreaFlag) ;
		MoveToRight(m_xw[1], m_yw[1], AreaFlag) ;}
	else
	{	MoveToRight(m_xw[1], m_yw[1], AreaFlag) ;
		MoveToRight(m_xw[0], m_yw[0], AreaFlag) ;}
}

//計算過關獎勵
int CMyGame::CompAward()
{
	return((m_Layer+1)*200+m_Time*10+m_Look*50) ;
}

//處理過關
void CMyGame::ProcessNext()
{
	CString str ;
	char *Class[3]={"Easy","Normal","Hard"} ;
	int Award ;
	
	if (m_Layer!=M_OUT)
	{	m_Layer++ ;
		m_Look++ ;
		m_Prompt+=5 ;
		Award = CompAward() ;
		str.Format("過關成功,請進入第%d關!\n剩余時間、生命值和關數依照比例,可以獲得%d分。",
			m_Layer+1,Award) ;
		m_Score += Award ;
		AfxMessageBox(str) ; 
		InitData() ;//重新初始化
	}
	else
	{	str.Format("恭喜過關!!您以后可以挑戰[%s難度],祝您玩的愉快",Class[m_Class+1]) ;
		AfxMessageBox(str) ; 
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本到不卡精品视频在线观看 | 国内精品久久久久影院薰衣草 | 亚洲成人动漫在线观看| 久久国产精品72免费观看| 99久久精品免费| 精品剧情在线观看| 夜夜嗨av一区二区三区中文字幕| 九九精品一区二区| 欧美日韩视频在线观看一区二区三区| 欧美高清在线一区| 精品一区二区三区的国产在线播放| 在线观看亚洲精品| 国产精品视频看| 国产乱码精品一区二区三区av | 亚洲第一狼人社区| 91丨porny丨首页| 日本一区二区久久| 国产一区二区三区视频在线播放| 7878成人国产在线观看| 一区二区激情小说| 91蝌蚪国产九色| 亚洲天堂网中文字| 成人午夜激情影院| 欧美激情一区二区三区在线| 国产一区二区剧情av在线| 日韩欧美123| 青青草国产精品亚洲专区无| 欧美精品123区| 亚欧色一区w666天堂| 欧美特级限制片免费在线观看| 亚洲欧美另类久久久精品| 不卡av在线网| 亚洲同性gay激情无套| 99riav久久精品riav| 国产精品久久久久影院亚瑟| 不卡电影一区二区三区| 国产精品国产三级国产aⅴ中文| 成人美女视频在线看| 欧美国产精品一区二区三区| 成人免费毛片高清视频| 中文字幕亚洲区| 色综合久久天天| 亚洲一区二区美女| 欧美日本国产一区| 久久爱www久久做| 欧美激情综合网| 99视频精品免费视频| 一区二区三区在线免费播放| 欧美少妇bbb| 麻豆精品国产传媒mv男同 | 国产成人在线色| 中文字幕在线观看一区| 在线免费av一区| 日韩电影在线观看电影| 精品国产乱码久久久久久久久| 国产精品自产自拍| 亚洲男人天堂一区| 日韩欧美国产wwwww| 国产成人三级在线观看| 亚洲女同一区二区| 正在播放亚洲一区| 成人午夜av影视| 亚洲国产一区二区三区 | 国产一区二区三区免费| 国产精品久久二区二区| 日韩精品中文字幕一区二区三区 | 不卡高清视频专区| 日一区二区三区| 国产女同互慰高潮91漫画| 一本在线高清不卡dvd| 久久国产综合精品| 亚洲丝袜制服诱惑| 欧美xxxxxxxxx| 在线中文字幕不卡| 国产精品自拍一区| 日韩av不卡在线观看| 成人欧美一区二区三区小说| 日韩三级精品电影久久久| 99久久99久久精品国产片果冻| 日本不卡的三区四区五区| 国产精品久久久久久久久果冻传媒 | 欧美三级电影在线看| 国产乱理伦片在线观看夜一区| 夜夜亚洲天天久久| 欧美极品美女视频| 欧美成人女星排行榜| 91国产成人在线| 国产成a人亚洲精品| 麻豆精品在线视频| 午夜精品久久久久久久| 中文字幕一区不卡| 久久综合狠狠综合久久激情| 欧美精品777| 日本丰满少妇一区二区三区| 成人免费福利片| 美女免费视频一区二区| 亚洲国产欧美日韩另类综合| 国产精品伦理一区二区| 久久久影院官网| 精品国产三级a在线观看| 欧美人狂配大交3d怪物一区| 色综合久久99| 99re免费视频精品全部| 不卡区在线中文字幕| 国产精品一二三四| 国产一区亚洲一区| 久久99九九99精品| 精品一区二区日韩| 美女视频一区二区三区| 久久精品国产亚洲5555| 日韩国产高清在线| 免费亚洲电影在线| 日本成人中文字幕在线视频| 日韩精品久久久久久| 日韩成人一级大片| 日韩高清在线不卡| 麻豆精品一二三| 免费观看91视频大全| 蜜臀av性久久久久蜜臀aⅴ流畅| 日本不卡123| 国产美女精品在线| 国产成人久久精品77777最新版本| 国产电影一区二区三区| 高清beeg欧美| 99热99精品| 欧美午夜精品一区| 欧美片网站yy| 欧美成人a视频| 久久久久一区二区三区四区| 欧美经典一区二区| 亚洲丝袜自拍清纯另类| 亚洲国产成人av| 免费精品99久久国产综合精品| 久久精品国产99| 国产成人午夜电影网| 色综合久久天天| 69久久夜色精品国产69蝌蚪网| 精品少妇一区二区三区视频免付费| 久久久久亚洲蜜桃| 亚洲人被黑人高潮完整版| 一区二区不卡在线播放 | 成人在线综合网| 色狠狠桃花综合| 日韩欧美一区中文| 国产精品久久久久毛片软件| 亚洲一区二区三区国产| 国内精品伊人久久久久av一坑| 成人性生交大片免费看中文| 在线观看视频一区| 日韩一区二区在线观看视频| 日本一区二区电影| 性做久久久久久免费观看| 色偷偷久久一区二区三区| 欧美乱熟臀69xxxxxx| 国产亚洲欧美一区在线观看| 亚洲综合色丁香婷婷六月图片| 久久av老司机精品网站导航| aaa欧美色吧激情视频| 欧美一区二区在线不卡| 中文字幕一区二区三区四区| 免费观看30秒视频久久| 99久久精品国产网站| 日韩免费电影网站| 一区二区三区免费| 国产超碰在线一区| 制服丝袜成人动漫| 亚洲欧美日韩在线| 国产精品香蕉一区二区三区| 51精品视频一区二区三区| 中文字幕在线不卡一区二区三区 | 欧美zozo另类异族| 亚洲一级二级三级| eeuss鲁片一区二区三区在线看| 91精品中文字幕一区二区三区| 国产精品第一页第二页第三页| 久久精品国产精品亚洲综合| 欧美专区亚洲专区| 中文字幕一区二区三区视频| 国产毛片精品视频| 91精品久久久久久久99蜜桃| 亚洲一区二区在线观看视频| 成人av动漫网站| 国产免费观看久久| 激情六月婷婷久久| 日韩精品一区在线观看| 亚洲成av人片观看| 色狠狠一区二区| 亚洲乱码一区二区三区在线观看| 国产suv一区二区三区88区| 欧美一级国产精品| 五月天久久比比资源色| 欧美色图第一页| 亚洲午夜免费视频| 精品视频免费看| 午夜精品影院在线观看| 欧美日韩国产片| 日韩电影免费在线观看网站| 欧美精品xxxxbbbb| 日韩精品一卡二卡三卡四卡无卡| 欧美精品久久99|