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

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

?? gse_ttsearchengine.cpp

?? 八數(shù)碼難題源代碼
?? CPP
字號:
// AlphaBetaSearch.cpp: implementation of the CGSE_TTSearchEngine class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "EightNum.h"
#include "GSE_TTSearchEngine.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CGSE_TTSearchEngine::CGSE_TTSearchEngine()
{
	m_iPly=0;
	m_pMG=new CMoveGenerator_TT;
	m_pEval=new CEveluation;
}

CGSE_TTSearchEngine::~CGSE_TTSearchEngine()
{
}

CGSE_TTSearchEngine::SearchAGoodMove(BYTE byBoard[][3])
{
	int i;
	int iPly=0;
	int iSmallest;//記錄同一層節(jié)點中的最小值
	int iTemp;
	queue<CHESSMOVE> tempQueue;
	int iCount;
	int iNodes=0;
	CHESSMOVE cmLast;//得到目標(biāo)狀態(tài)的最后一個走法
	CHESSMOVE cmTemp;
	CHESSMOVE cmParent;
	CHESSMOVE cmParentBackUp;
	bool bIsOver=0;//是否已得出目標(biāo)狀態(tài)

	iCount=m_pMG->CreatePossibleMove(byBoard,m_iPly);

	//已得出目標(biāo)狀態(tài)
	if(!iCount)
	{
		m_pMG->m_MoveList[m_iPly][iNodes].npParent=cmParentBackUp.npMe;
		m_pMG->m_MoveList[m_iPly][iNodes].npMe.byPly=m_iPly+1;
		m_pMG->m_MoveList[m_iPly][iNodes].npMe.byNum=iNodes;
		memcpy(m_pMG->m_MoveList[m_iPly][iNodes].byBoard,byBoard,9);
		cmLast=m_pMG->m_MoveList[m_iPly][iNodes];
		bIsOver=1;

		goto GetBestMove;
	}

	for(i=0;i<iCount;i++)
	{
		m_pMG->m_MoveList[m_iPly][i].npMe.byPly=m_iPly;
		m_pMG->m_MoveList[m_iPly][i].npMe.byNum=i;
		memcpy(m_pMG->m_MoveList[m_iPly][i].byBoard,byBoard,9);
		m_queueMove.push(m_pMG->m_MoveList[m_iPly][i]);
	}

	while(!m_queueMove.empty())
	{
		iPly=m_queueMove.front().iPly;
		
		//--------遍歷隊列中同一層的走法,找出走法的最佳值--------
		iSmallest=10;
		while(iPly==m_queueMove.front().iPly)
		{
			MakeMove(m_queueMove.front().byBoard,m_queueMove.front());
			iTemp=m_pEval->Eveluate(m_queueMove.front().byBoard);
			if(iTemp<iSmallest)
				iSmallest=iTemp;
			UnMakeMove(m_queueMove.front().byBoard,m_queueMove.front());
			tempQueue.push(m_queueMove.front());
			m_queueMove.pop();

			if(m_queueMove.empty())
				break;
		}
		//-------------------------------------------------------


		//---------------將好的走法的子節(jié)點入隊列----------------
		iNodes=0;
		while(iPly==tempQueue.front().iPly)
		{
			cmParent=tempQueue.front();
			cmParentBackUp=cmParent;
			MakeMove(cmParent.byBoard,cmParent);
			iTemp=m_pEval->Eveluate(cmParent.byBoard);
			if(iTemp==iSmallest)
			{
				//產(chǎn)生子節(jié)點
				iCount=m_pMG->CreatePossibleMove(cmParent.byBoard,m_iPly+1);

				//已得出目標(biāo)狀態(tài)
				if(!iCount)
				{
					m_pMG->m_MoveList[m_iPly+1][iNodes].npParent=cmParentBackUp.npMe;
					m_pMG->m_MoveList[m_iPly+1][iNodes].npMe.byPly=m_iPly+1;
					m_pMG->m_MoveList[m_iPly+1][iNodes].npMe.byNum=iNodes;
					memcpy(m_pMG->m_MoveList[m_iPly+1][iNodes].byBoard,cmParent.byBoard,9);
					cmLast=m_pMG->m_MoveList[m_iPly+1][iNodes];
					bIsOver=1;

					goto GetBestMove;
				}

				//將子節(jié)點入隊列
				for(i=0;i<iCount;i++)
				{
					m_pMG->m_MoveList[m_iPly+1][i+iNodes].npParent=cmParentBackUp.npMe;
					m_pMG->m_MoveList[m_iPly+1][i+iNodes].npMe.byPly=m_iPly+1;
					m_pMG->m_MoveList[m_iPly+1][i+iNodes].npMe.byNum=i+iNodes;
					memcpy(m_pMG->m_MoveList[m_iPly+1][i+iNodes].byBoard,cmParent.byBoard,9);
					m_queueMove.push(m_pMG->m_MoveList[m_iPly+1][i+iNodes]);
				}
				iNodes+=iCount;
			}
			UnMakeMove(cmParent.byBoard,cmParent);
			tempQueue.pop();

			if(tempQueue.empty())
				break;
		}
		//-------------------------------------------------------

		m_iPly++;
	}

GetBestMove:
	//得出最佳走法隊列
	if(bIsOver)
	{
		memcpy(cmTemp.byBoard,cmLast.byBoard,9);
		MakeMove(cmTemp.byBoard,cmLast);
		m_stackBestMove.push(cmTemp);
		m_stackBestMove.push(cmLast);
		while(memcmp(cmLast.byBoard,byBoard,9))
		{
			m_stackBestMove.push(m_pMG->m_MoveList[cmLast.npParent.byPly][cmLast.npParent.byNum]);
			cmLast=m_pMG->m_MoveList[cmLast.npParent.byPly][cmLast.npParent.byNum];
		}
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲18色成人| 99久久99久久综合| 亚洲va欧美va天堂v国产综合| 日欧美一区二区| 日韩欧美一卡二卡| 久久精品国产久精国产爱| 欧美一级高清片在线观看| 免费成人av资源网| 久久久久国产免费免费| 成人国产电影网| 亚洲国产日日夜夜| 日韩一区二区精品葵司在线| 国产精品1区2区| 亚洲男人都懂的| 欧美一区欧美二区| 国产成人99久久亚洲综合精品| 亚洲欧美激情在线| 777xxx欧美| 成人午夜免费视频| 亚洲国产日韩av| 久久综合av免费| 欧美中文字幕一二三区视频| 久久国产剧场电影| 1区2区3区欧美| 91麻豆精品国产无毒不卡在线观看 | 国产精品蜜臀在线观看| 一本久久a久久免费精品不卡| 中文字幕不卡三区| 欧洲视频一区二区| 亚洲精品五月天| 亚洲国产精品影院| 国产在线一区二区| 91精品福利在线一区二区三区| 国产凹凸在线观看一区二区| 亚洲国产激情av| 欧美福利视频一区| 不卡视频一二三四| 国产综合色在线视频区| 免费在线看一区| 久草精品在线观看| 一区二区三区四区在线播放| 成人黄页在线观看| 日本一二三四高清不卡| 国产91精品入口| 亚洲天堂a在线| 欧美电影精品一区二区 | 久久亚洲综合av| 日本成人在线视频网站| av不卡在线观看| 久久成人精品无人区| 一区二区三区日韩精品视频| 中文字幕免费观看一区| 欧美电影免费提供在线观看| 欧美视频在线播放| 99在线精品视频| 福利视频网站一区二区三区| 狠狠狠色丁香婷婷综合激情 | 欧美日免费三级在线| gogo大胆日本视频一区| 国产精品综合一区二区三区| 日韩成人一区二区| 亚洲国产精品自拍| 一区二区不卡在线视频 午夜欧美不卡在 | 蜜臀av一区二区在线免费观看 | 国产精品久久久久精k8| 精品国产91乱码一区二区三区| 欧美日韩在线免费视频| 色婷婷激情综合| 色综合久久久久网| av在线免费不卡| www.久久精品| 99久久精品国产导航| av成人免费在线观看| 不卡视频一二三四| 波多野结衣精品在线| 成人精品视频一区二区三区| 一本大道av伊人久久综合| 欧美中文字幕一二三区视频| 欧美精品一卡两卡| 美美哒免费高清在线观看视频一区二区| 色呦呦日韩精品| 99视频精品在线| 91麻豆精品秘密| 国产午夜精品久久久久久免费视| 日韩精品一区二区三区中文精品| 国产精品久久久久一区二区三区| 日韩精品乱码av一区二区| 国产一区美女在线| 欧美一级欧美一级在线播放| 亚洲国产成人av| 在线观看国产一区二区| 精品蜜桃在线看| 精品成人私密视频| 欧美韩国日本不卡| 国产精品全国免费观看高清| 一片黄亚洲嫩模| 青青草成人在线观看| 久久不见久久见免费视频1| 美女尤物国产一区| 欧美成人精品二区三区99精品| 美腿丝袜亚洲三区| 久久成人久久爱| 顶级嫩模精品视频在线看| 成人一区在线观看| 在线视频国内自拍亚洲视频| 欧美一区二区日韩| 久久久午夜精品理论片中文字幕| 国产精品你懂的| 天天影视网天天综合色在线播放| 麻豆精品新av中文字幕| 风间由美性色一区二区三区| 在线一区二区三区四区| 日韩视频一区在线观看| 国产精品网站一区| 亚洲成人av资源| 国产精品综合二区| 欧美亚洲国产bt| 久久老女人爱爱| 亚洲午夜精品17c| 国产精品1区二区.| 欧美精品乱码久久久久久按摩| 国产日产精品1区| 石原莉奈在线亚洲二区| 国产91丝袜在线播放| 欧美美女一区二区在线观看| 欧美精彩视频一区二区三区| 天天操天天干天天综合网| 成人午夜碰碰视频| 欧美一区二区私人影院日本| 国产精品国产a| 久久精品理论片| 欧美三级午夜理伦三级中视频| 国产亚洲成年网址在线观看| 亚洲高清不卡在线| 日本一区二区三区电影| 色悠悠久久综合| 成人毛片老司机大片| 精品99一区二区| 国产精品夜夜嗨| 欧美一三区三区四区免费在线看 | 日本精品一区二区三区四区的功能| 亚洲日本电影在线| 国产精品大尺度| 国产婷婷色一区二区三区四区 | 国产又黄又大久久| 免费三级欧美电影| 日韩精品乱码av一区二区| 一区二区日韩av| 精品三级在线看| 91视视频在线观看入口直接观看www| 亚洲人成亚洲人成在线观看图片| 91尤物视频在线观看| 一区二区三区精品久久久| 久久久不卡网国产精品一区| 成人免费视频免费观看| 亚洲国产精品一区二区久久| 成人h动漫精品一区二区| 色88888久久久久久影院野外| 欧美性色黄大片手机版| 国产精品情趣视频| 狠狠色狠狠色综合系列| 欧美大片在线观看一区二区| 日韩精品色哟哟| 91精品国产免费久久综合| 亚洲五码中文字幕| 欧美这里有精品| 一片黄亚洲嫩模| 欧美日韩国产区一| 五月天国产精品| 制服丝袜中文字幕一区| 五月天网站亚洲| 欧美一级xxx| 韩国中文字幕2020精品| 久久尤物电影视频在线观看| 国内久久精品视频| 久久久影视传媒| 成人免费毛片高清视频| 亚洲视频在线一区二区| 色婷婷久久久亚洲一区二区三区| 亚洲黄色尤物视频| 欧美视频日韩视频在线观看| 日韩av电影免费观看高清完整版在线观看| 欧美男男青年gay1069videost| 日韩av一二三| 国产日韩v精品一区二区| 91视频观看视频| 婷婷综合在线观看| 精品日韩一区二区三区| 成人污污视频在线观看| 亚洲精品欧美专区| 欧美区在线观看| 国产精品性做久久久久久| 1024成人网色www| 欧美高清视频在线高清观看mv色露露十八 | 青青草精品视频| 一区二区三区毛片| 精品一区精品二区高清| 日韩国产欧美三级| 色网站国产精品| 久久久综合精品|