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

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

?? ddz2.cpp

?? EVC 下的斗地主源碼,有AI機器人,運行環境是模擬器5
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
	return 0;
	/*//出單王
	if(searchDanJoker())
		{playDanJoker(player);return 1;}*/
}
////////////////////////////////////////////////////////////////////////////////
//被動出牌
////////////////////////////////////////////////////////////////////////////////
int out2(PLAYER *player)
{//單張
	if(strcmp(CurrentOutCard.type ,"gz") == 0)
	{
		if(playDanZhang2(player)) 
			return 1;	
		else 
		{
			if(searchZhaDan())    //有炸彈出之
				{playZhaDan(player);return 1;}
			else if(searchJoker())//有雙王出之
				{playJoker(player);return 1;}
				else  
					return 0;//過 
		}
	}
	//對子
	if(strcmp(CurrentOutCard.type ,"dz") == 0)//
	{
		if(playDuiZi2(player)) 
			return 1;
		else 
		{
			if(searchZhaDan())    //有炸彈出之
			{
				playZhaDan(player);
				return 1;
			}
			else 
				if(searchJoker())//有雙王出之
				{
					playJoker(player);
					return 1;
				}
				else  
					return 0; 
		}
	}
		//三張
	if(strcmp(CurrentOutCard.type ,"sgbd") == 0)
		{
			if(playSanZhang2(player))
				return 1;
			else
			{
				if(searchZhaDan())    //有炸彈出之
					{playZhaDan(player);return 1;}
				else if(searchJoker())//有雙王出之
						{playJoker(player);return 1;}
					else  
						return 0; 
			}
		}
			//三帶一
		if(strcmp(CurrentOutCard.type ,"sd1") == 0)//
		{
			if(playSanDaiYi(player))
				return 1;
			else
			{
				if(searchZhaDan())    //有炸彈出之
					{playZhaDan(player);return 1;}
				else if(searchJoker())//有雙王出之
						{playJoker(player);return 1;}
					else  
						return 0; 
			}
		}     
				//連子
		if(strcmp(CurrentOutCard.type ,"sz") == 0)//
		{
			if(playLianZi2(player))
				return 1;
			else
			{
				if(searchZhaDan())    //有炸彈出之
					{playZhaDan(player);return 1;}
				else if(searchJoker())//有雙王出之
					{playJoker(player);return 1;}
				else  
					return 0; 
			}
		}    
//四帶二
		if(strcmp(CurrentOutCard.type ,"sd2g") == 0)//
		{
			if(playSiDai2(player))
				return 1;
			else
			{
				if(searchZhaDan())    //有炸彈出之
					{playZhaDan(player);return 1;}
				else if(searchJoker())//有雙王出之
					{playJoker(player);return 1;}
				else  
					return 0; 
			}
		}
//炸彈
	    if(strcmp(CurrentOutCard.type ,"zd") == 0)//
		{
			if(playZhaDan2(player))
				return 1;
			else
			{
				if(searchJoker())//有雙王出之
					{playJoker(player);return 1;}
				else  
					return 0; 
			}
		}
			//雙王
		if(strcmp(CurrentOutCard.type ,"sw") == 0)//
			{							
				if(searchJoker())//有雙王出之
					{playJoker(player);return 1;}
				else  
					return 0; 
			}
	return 0;
}
////////////////////////////////////////////////////////////////////////////////
// 出牌
////////////////////////////////////////////////////////////////////////////////
int OutCard()
{
	switch (g_nTurnOut)
	{
	case 1:
		{			
			AnalyseCard(player1);

			if(g_nTurnOut ==g_nLastWhoOut)//
			{
				out1(&player1);
				return 1;
			}
			else
				if(out2(&player1))
					return 1;
		}break;
	case 3:
		{
			AnalyseCard(player3);
			if(g_nTurnOut ==g_nLastWhoOut)//
			{
				out1(&player3);
				return 1;
			}
			else
				if(out2(&player3))
					return 1;
		}break;
	}
	return 0;
}
//不出
void NotOut(int turn)
{
	if(turn == 1) g_nPlayer1NotOut = 1;
	if(turn == 3) g_nPlayer3NotOut = 1;
}
//
void LastWhoOut(int turn)
{
	if(turn == 1) g_nLastWhoOut = 1;
	if(turn == 2) g_nLastWhoOut = 2;
	if(turn == 3) g_nLastWhoOut = 3;
}
////////////////////////////////////////////////////////////////////////////////
//出牌算法
////////////////////////////////////////////////////////////////////////////////
void HowToOut(int turn)
{
	int before,after;
	before = turn - 1;
	if(before == 0) before = 3;
	after = turn + 1;
	after %= 3;
	if(after == 0)after = 3;
	if(g_nLastWhoOut == before && g_nWhoIsLord == before)//上家是地主,上家出的牌,33
	{
		if(OutCard() == 0)//判斷能不能出
			NotOut(turn);//不出
		else
			LastWhoOut(turn);
	}
	else
	{
		if(g_nLastWhoOut == after && g_nWhoIsLord == after)//上上家是地主,上家沒出牌,22
		{
			if(OutCard() == 0)//判斷能不能出
				NotOut(turn);//
			else
				LastWhoOut(turn);
		}
		else
		{
			if(g_nWhoIsLord == turn)//自己是地主,11
			{
				if(OutCard() == 0)//判斷能不能出
					NotOut(turn);//
				else
					LastWhoOut(turn);
			}
			else
				if(g_nLastWhoOut == before && g_nWhoIsLord == after)//下家是地主,上家出牌太小,32
				{
					if(strcmp(CurrentOutCard.type,"gz") == 0 && CurrentOutCard.card <10)
					{
						if(OutCard() == 0)//判斷能不能出
							NotOut(turn);//
						else
							LastWhoOut(turn);
					}
					else
						if(strcmp(CurrentOutCard.type,"dz") == 0 && CurrentOutCard.card <8)
						{
							if(OutCard() == 0)//判斷能不能出
								NotOut(turn);//
							else
								LastWhoOut(turn);
						}
						else
							NotOut(turn);
				}
				else
					NotOut(turn);//不出
		}
	}
}
////////////////////////////////////////////////////////////////////////////////
//  初級化窗口
////////////////////////////////////////////////////////////////////////////////
void clear(HWND hWnd)
{
	//初級化牌
	for(int i = 0 ; i < 20 ; i++)
	{
		player1.statics[i] = 0 ; 
		player2.statics[i] = 0 ; 
		player3.statics[i] = 0 ; 
		player1.card[i] = 0 ; 
		player2.card[i] = 0 ; 
		player3.card[i] = 0 ; 
		player4.card[i] = 0 ; 
	}
	g_nShowNotOut = 0;
	g_nPlayer1NotOut = 0;
	g_nPlayer3NotOut = 0;
	g_nTurnOut = 0;
	g_nLastWhoOut = 0;//上次是誰出的
}
////////////////////////////////////////////////////////////////////////////////
// //是否結束
////////////////////////////////////////////////////////////////////////////////
int CheckIfOver(HWND hWnd)
{
	if(CardNum(player1,0) == 0)
	{
		MessageBox(hWnd , _T("    player1贏了!   ") , _T("恭喜") , MB_OK) ;
		g_nShowStart = 1;
		clear(hWnd);
		return 1;
	}
	else
		if(CardNum(player2,0) == 0)
		{
			MessageBox(hWnd , _T("恭喜,你贏了!") , _T("恭喜") , MB_OK) ;
			g_nShowStart = 1;
			clear(hWnd);
			return 1;
		}
		else
			if(CardNum(player3,0) == 0)
			{
				MessageBox(hWnd , _T("   player3贏了!    ") , _T("恭喜") , MB_OK) ;
				g_nShowStart = 1;
				clear(hWnd);
				return 1;
			}
	return 0;
}
////////////////////////////////////////////////////////////////////////////////
// 游戲主函數
////////////////////////////////////////////////////////////////////////////////
int GameMain(HWND hWnd)
{
	//::PatBlt(g_hMemDC ,  0 ,  100 ,  50 ,  200 ,  WHITENESS) ; 
	int nTime = 800;
	if(g_nShowStart == 1)
		return 0;
	if(g_nTurnOut == 2)
		g_nShowNotOut = 1;
	if((g_nTurnOut == 2 && g_nLastWhoOut == 2 )|| g_nTurnOut == 3 || g_nTurnOut == 1)
		g_nShowNotOut = 0;

	if(g_nCanNotOut == 1)
	{
		delay(1000);
		g_nCanNotOut = 0;
	}
	//delay(nTime);
	if(g_nIfBegin == 1)//剛開始
	{	
		switch (g_nTurnGetLord)
		{delay(nTime);
		case 1: 
			{
				if(IfGetLord(player1))
				{
					GetLord(&player1);//叫
					g_nLastWhoOut = 1;
					g_nWhoIsLord = 1;
					g_nTurnOut = 1;
					g_nPlayer3NotGet = 0;
					g_nPlayer1NotGet = 0;
					return 1;
				}
				else//不叫
				{
					g_nPlayer1NotGet = 1;
					NotGetLord(hWnd);
					if(g_nNotGetLord >=3)
					{
						g_nNotGetLord = 0;
						g_nTurnGetLord = rand() % 3 +1;
						g_nIfBegin = 1;
						MessageBox(hWnd , _T("都不叫,重新發牌!") , _T("提示信息") , MB_OK);
						g_nPlayer3NotGet = 0;
						g_nPlayer1NotGet = 0;

						SendOutCard();
						return 1;
					}
				}
			}
			break;
		case 2: 
			{
				g_nShow3f = 1;//控制叫按鈕
				g_nShowNotGet = 1;//控制不叫按鈕
			} break;
		case 3:
			{
				if(IfGetLord(player3))
				{
					GetLord(&player3);//叫
					g_nLastWhoOut = 3;
					g_nWhoIsLord = 3;
					g_nTurnOut = 3;
					g_nPlayer1NotGet = 0;
					g_nPlayer3NotGet = 0;
					return 1;
				}
				else
				{
					NotGetLord(hWnd);//不叫
					g_nPlayer3NotGet = 1;
					if(g_nNotGetLord >=3)
					{
						g_nNotGetLord = 0;
						g_nTurnGetLord = rand() % 3 +1;
						MessageBox(hWnd , _T("都不叫,重新發牌!") , _T("提示信息") , MB_OK);
						g_nPlayer3NotGet = 0;
						g_nPlayer1NotGet = 0;
						SendOutCard();
						return 1;
					}
				}
			} break;
		}//switch
	}
	else//不是剛開始
	{
		switch (g_nTurnOut)//到誰出
		{
		case 1:
			{delay(nTime);
				if(CheckIfOver(hWnd)) return 0;//是否結束
				DelCard(&player1) ;
				DelCard(&player1) ;
				DelCard(&player1) ;
				DelCard(&player1) ;
				if(g_nLastWhoOut == 1)//必需出牌
				{
					OutCard();//
					g_nLastWhoOut = 1;
				}
				else
				{
					HowToOut(1);
				}
				g_nPlayer3NotOut = 0;				
				g_nTurnOut++;
				g_nTurnOut = g_nTurnOut % 3 ;
				if(g_nTurnOut == 0) g_nTurnOut = 3 ;
			}
			break;
		case 2:
			{
				//g_nPlayer1NotOut = 0;
				if(CheckIfOver(hWnd)) return 0;
				DelCard(&player2) ;
				DelCard(&player2) ;
				DelCard(&player2) ;
				DelCard(&player2) ;
				if(g_nOutFlag == 1)//點了右鍵
				{
					int i ; 
					for(i = 0 ; i < 20 ; i++)//改狀態
					{
						if(player2.statics[i] == 1)
						{
							player2.statics[i] = 2 ; 
						}
					}
					if(CheckCard(player2) == 0 )//改狀態
					{
						for(i = 0 ; i < 20 ; i++)
						{
							if(player2.statics[i] == 2)
							{
								player2.statics[i] = 1 ; 
							}
						}
						g_nCanNotOut = 1 ;
					}
					else//2出
					{
						g_nLastWhoOut = 2;
						g_nTurnOut ++;
						g_nTurnOut = g_nTurnOut % 3 ;
						if(g_nTurnOut == 0) 
							g_nTurnOut = 3;
						g_nPlayer1NotGet = 0;
						g_nShowNotOut = 0;		
						g_nPlayer3NotOut = 0;
					}
				}
			}
			g_nOutFlag = 0;
			break;
		case 3:
			{
				if(CheckIfOver(hWnd)) return 0;
				delay(nTime);	
				g_nPlayer3NotOut = 0;
				g_nPlayer1NotOut = 0;
				DelCard(&player3) ;
				DelCard(&player3) ;
				DelCard(&player3) ;
				DelCard(&player3) ;

				if(g_nLastWhoOut == 3)//必需出牌
				{
					OutCard();//
					g_nLastWhoOut = 3;
				}
				else
				{
					HowToOut(3);
				}
				g_nPlayer1NotOut = 0;
				g_nTurnOut++;
				g_nTurnOut = g_nTurnOut % 3 ;
				if(g_nTurnOut == 0) g_nTurnOut = 3 ;
			}
			break;
		}//switch
	}//else
	return 1;
}
////////////////////////////////////////////////////////////////////////////////
//  顯示緩沖窗口
////////////////////////////////////////////////////////////////////////////////
void LoadMem(HWND hWnd , HDC hDC)
{
			RECT rcClient ; 
			::GetClientRect(hWnd ,  &rcClient) ;  // 取得客戶區大小
			::BitBlt(hDC ,  // 目的DC
				     0 ,  0 , 
					 rcClient.right ,  rcClient.bottom ,  
					 g_hMemDC ,  // 源DC
					 0 , 0 , 
					 SRCCOPY) ;  // 復制緩沖DC到屏幕		
}


////////////////////////////////////////////////////////////////////////////////
// 把牌顯示到緩沖g_hMemDC
////////////////////////////////////////////////////////////////////////////////
void AddToMemDC(HWND hWnd , int PicName , int x , int y ,int Width,int Height)
{
	// 加載圖像
	HBITMAP hBitmap  =  (HBITMAP)LoadImage(g_hInstance ,  
									(unsigned short*)PicName , 
									IMAGE_BITMAP , 
									0 ,  
									0 , 
									0);

	BITMAP object ; 
	::GetObject(hBitmap ,  sizeof(BITMAP) ,  &object) ; 
	//g_nCardWidth  =  object.bmWidth ; 
	g_nCardHeight  =  object.bmHeight ; 
	// 創建card DC
	HDC hCardDC =  NULL ; 
	hCardDC  =  ::CreateCompatibleDC(NULL) ;  // 此步不可缺!
	::SelectObject(hCardDC ,  hBitmap) ;  // 此步不可缺!
	::DeleteObject(hBitmap) ;  // 可以釋放了!

	//RECT rcClient ; 
	//::GetClientRect(hWnd ,  &rcClient) ; 
	::BitBlt(g_hMemDC ,  // 目標DC 
			x ,  y ,  
			Width ,  Height ,  
			hCardDC ,  // 源DC
			0 ,  0 ,  
			SRCCOPY) ;   
	DeleteDC(hCardDC) ; 
}

////////////////////////////////////////////////////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产尿小便嘘嘘| 免费在线观看精品| 夜夜亚洲天天久久| 婷婷亚洲久悠悠色悠在线播放| 夜夜精品视频一区二区| 成人黄色大片在线观看| 欧美一级夜夜爽| 国产成人自拍在线| 91国偷自产一区二区使用方法| 久久精品夜色噜噜亚洲aⅴ| 丝袜亚洲精品中文字幕一区| 99久久精品免费观看| aaa国产一区| 91麻豆产精品久久久久久| 91久久奴性调教| 91精品久久久久久久久99蜜臂| 555夜色666亚洲国产免| 欧美不卡视频一区| 久久麻豆一区二区| 国产精品免费观看视频| 亚洲手机成人高清视频| 日韩—二三区免费观看av| 韩国在线一区二区| 色婷婷av一区| 国产日韩精品久久久| 亚洲嫩草精品久久| 欧美性大战久久久| 久久嫩草精品久久久精品一| 天堂影院一区二区| 制服丝袜国产精品| 亚洲一区二区精品视频| proumb性欧美在线观看| 亚洲国产激情av| 国产麻豆成人精品| 国产精品午夜在线观看| 国产高清不卡一区| 久久亚洲一区二区三区明星换脸 | 成人永久免费视频| 久久综合久久综合久久| 蜜臀久久久久久久| 日韩精品影音先锋| 国产精品中文欧美| 综合久久国产九一剧情麻豆| 不卡电影免费在线播放一区| 亚洲与欧洲av电影| 精品嫩草影院久久| 99久久精品国产导航| 久久综合久久99| 在线播放欧美女士性生活| 国产传媒欧美日韩成人| 石原莉奈一区二区三区在线观看| 久久奇米777| 日韩三级在线观看| 色8久久人人97超碰香蕉987| 高清成人免费视频| 精品在线播放免费| 一区二区三区久久久| 精品福利av导航| 欧美肥妇毛茸茸| 成人av资源在线观看| 久久精工是国产品牌吗| 综合精品久久久| 久久综合久久鬼色中文字| 欧美天堂一区二区三区| 成人少妇影院yyyy| 国产一区 二区 三区一级| 香蕉加勒比综合久久 | 国产又粗又猛又爽又黄91精品| 一色桃子久久精品亚洲| 久久精品亚洲乱码伦伦中文| 91精品国产综合久久福利| 在线免费视频一区二区| av亚洲精华国产精华| 成人高清免费在线播放| 国产美女久久久久| 国产成人在线免费| 国产一区二区不卡| 成人黄色av电影| 国产不卡视频一区二区三区| 成人一区二区三区视频在线观看 | 亚洲一区二区在线免费看| 伊人夜夜躁av伊人久久| 亚洲欧美日韩国产另类专区| 亚洲丝袜制服诱惑| 亚洲第一成人在线| 亚洲一区二区三区在线看| 婷婷综合另类小说色区| 日韩成人av影视| 国产福利精品导航| 99国产精品久久久久久久久久| 成人h精品动漫一区二区三区| 91一区二区在线| 6080国产精品一区二区| 久久蜜桃香蕉精品一区二区三区| 欧美国产日韩一二三区| 一区二区三区高清不卡| 蜜桃精品在线观看| 99麻豆久久久国产精品免费 | 久久se精品一区精品二区| 成人永久免费视频| 91精品国产乱| 中文字幕视频一区| 蜜臀久久久久久久| 色综合视频在线观看| 精品伦理精品一区| 亚洲国产中文字幕在线视频综合| 国产米奇在线777精品观看| 日本黄色一区二区| 中文字幕精品在线不卡| 蜜桃视频免费观看一区| 欧美熟乱第一页| 一区二区视频在线| 韩国精品主播一区二区在线观看| 欧美视频第二页| 亚洲婷婷国产精品电影人久久| 精品亚洲欧美一区| 91麻豆精品国产无毒不卡在线观看 | 国产日韩欧美精品在线| 蜜桃一区二区三区在线| 欧美色欧美亚洲另类二区| 亚洲女性喷水在线观看一区| 国产成人综合在线观看| 久久一区二区三区四区| 精品系列免费在线观看| 亚洲精品在线三区| 狠狠网亚洲精品| 国产亚洲精品中文字幕| 成人黄色电影在线| 亚洲品质自拍视频| 欧美一区二区三区在| 男男成人高潮片免费网站| 日韩免费性生活视频播放| 国产伦精品一区二区三区在线观看| 久久这里只精品最新地址| 国产99精品视频| 一区二区三区国产精品| 欧美日韩成人综合| 精品影院一区二区久久久| 亚洲三级视频在线观看| 欧美日韩一区成人| 国产一区视频网站| 亚洲成人久久影院| 亚洲国产高清在线| 欧美一级一区二区| caoporn国产一区二区| 亚洲韩国精品一区| 国产色产综合产在线视频| 欧美羞羞免费网站| 粉嫩av一区二区三区| 五月综合激情日本mⅴ| 国产精品入口麻豆原神| 日韩一区二区影院| 日本黄色一区二区| 国产宾馆实践打屁股91| 久久精品国产一区二区三 | 欧美男人的天堂一二区| 盗摄精品av一区二区三区| 久久国产精品区| 免费成人在线观看| 视频一区二区欧美| 午夜精品免费在线观看| 亚洲精品乱码久久久久久黑人 | 91麻豆免费观看| www.99精品| 成人av影视在线观看| 国产v日产∨综合v精品视频| 另类成人小视频在线| 日韩精品一级中文字幕精品视频免费观看 | 欧美tickle裸体挠脚心vk| 国产成人亚洲综合色影视| 成人黄动漫网站免费app| 在线日韩av片| 久久久蜜臀国产一区二区| 亚洲男女一区二区三区| 国产麻豆日韩欧美久久| 欧美精品久久一区| 国产精品久久久久婷婷| 亚洲成a人片在线不卡一二三区| 蜜桃av噜噜一区| 成人av在线看| 欧美不卡一区二区| 中文字幕欧美一| 久久99精品国产.久久久久| 色综合久久久久综合体| 久久青草欧美一区二区三区| 亚洲综合精品久久| 狠狠色综合日日| 91精品国产美女浴室洗澡无遮挡| 亚洲国产成人午夜在线一区| 日产精品久久久久久久性色| 91女厕偷拍女厕偷拍高清| 久久久亚洲综合| 三级精品在线观看| 欧美日韩黄色影视| 一区二区免费视频| 91行情网站电视在线观看高清版| 国产精品欧美综合在线| 国产成a人亚洲| 国产日韩欧美不卡在线| 激情深爱一区二区|