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

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

?? gsesearchengine.cpp

?? 人工智能上機實驗題目:自動求解八數碼難題。 八數碼難題:在3×3的方格棋盤上
?? CPP
字號:
// AlphaBetaSearch.cpp: implementation of the CGSESearchEngine class.
//
//////////////////////////////////////////////////////////////////////


#include "EightNum.h"
#include "GSESearchEngine.h"



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

CGSESearchEngine::CGSESearchEngine()
{
	m_iPly=0;
	m_pMG=new CMoveGenerator;
	m_pEval=new CEvaluation;
}

CGSESearchEngine::~CGSESearchEngine()
{
}
void CGSESearchEngine::BoardCopy(BYTE desbyBoard[][3],BYTE srcbyBoard[][3])
{
	int i,j;
	for(i=0;i<3;i++)
	{
		for(j=0;j<3;j++)
		{
			desbyBoard[i][j]=srcbyBoard[i][j];
		}
	}
}

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

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

	//已得出目標狀態
	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;
		BoardCopy(m_pMG->m_MoveList[m_iPly][iNodes].byBoard,byBoard);
		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;
		BoardCopy(m_pMG->m_MoveList[m_iPly][i].byBoard,byBoard);
		m_queueMove.push(m_pMG->m_MoveList[m_iPly][i]);		//與另一個不同的m_queueMove
	}

	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->Evaluate(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;
		}
		//-------------------------------------------------------


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

				//已得出目標狀態
				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;
					BoardCopy(m_pMG->m_MoveList[m_iPly+1][iNodes].byBoard,cmParent.byBoard);
					cmLast=m_pMG->m_MoveList[m_iPly+1][iNodes];
					bIsOver=1;

					goto GetBestMove;
				}

				//將子節點入隊列
				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;
					BoardCopy(m_pMG->m_MoveList[m_iPly+1][i+iNodes].byBoard,cmParent.byBoard);
					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++;
		//cout<<m_iPly<<"  ";
	}
	cout<<"sorry!con't find the solution!"<<"    ";

GetBestMove:
	//得出最佳走法隊列
	if(bIsOver)
	{
		BoardCopy(cmTemp.byBoard,cmLast.byBoard);
		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];
		}
	}
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线不卡视频| 国产一区999| 亚洲色图在线看| 久久精品免费在线观看| 久久综合九色综合欧美亚洲| 91精品在线一区二区| 4438成人网| 欧美一区二区三区播放老司机| 欧美午夜精品一区二区三区| 欧美无砖砖区免费| 欧美日韩高清影院| 日韩一区二区三区电影| 亚洲精品在线免费播放| 亚洲精品视频免费看| 1024国产精品| 亚洲一区二区3| 麻豆免费精品视频| 国产乱人伦精品一区二区在线观看 | 全部av―极品视觉盛宴亚洲| 日日摸夜夜添夜夜添精品视频| 午夜av一区二区| 久久9热精品视频| 风流少妇一区二区| 一本一道综合狠狠老| 欧美日高清视频| 亚洲精品一区二区三区福利 | 国产一区二区主播在线| 丁香五精品蜜臀久久久久99网站| av动漫一区二区| 在线不卡的av| 国产精品―色哟哟| 五月综合激情日本mⅴ| 国产精品性做久久久久久| www.亚洲在线| 日韩视频在线一区二区| 国产精品超碰97尤物18| 天天综合天天综合色| 国产99久久久久久免费看农村| 欧美在线观看一区二区| 久久老女人爱爱| 亚洲成人免费电影| 成人高清视频免费观看| 欧美日韩国产首页| 国产欧美精品一区二区色综合| 亚洲永久免费av| 成人深夜福利app| 日韩色视频在线观看| 亚洲码国产岛国毛片在线| 久久99日本精品| 欧美另类变人与禽xxxxx| 中文字幕高清一区| 美腿丝袜在线亚洲一区| 在线观看日韩毛片| 中文文精品字幕一区二区| 日韩精品一区第一页| 99久久精品国产一区二区三区| 精品处破学生在线二十三| 亚洲chinese男男1069| 白白色 亚洲乱淫| 久久久久久夜精品精品免费| 婷婷六月综合网| 色八戒一区二区三区| 亚洲国产成人午夜在线一区| 国产一区二区三区四| 欧美一区二区三区四区在线观看 | 国产麻豆精品视频| 日韩免费观看2025年上映的电影| 亚洲福利电影网| 色噜噜狠狠成人中文综合| 国产精品国产三级国产aⅴ原创 | 五月天激情综合网| 国产成人免费9x9x人网站视频| 欧美久久久久久久久久| 亚洲一区在线观看免费| 91九色02白丝porn| 亚洲一区精品在线| 欧美三电影在线| 亚洲国产精品自拍| 欧美日韩另类国产亚洲欧美一级| 一区二区三区在线观看网站| 在线视频亚洲一区| 亚洲va韩国va欧美va| 欧美日韩一级片在线观看| 亚洲成人动漫一区| 日韩三级在线免费观看| 久草热8精品视频在线观看| 精品理论电影在线| 国产九九视频一区二区三区| 久久久久久**毛片大全| 成人午夜在线免费| 亚洲免费观看高清完整| 91精品婷婷国产综合久久| 青青草91视频| 国产欧美精品一区二区三区四区 | 成人精品免费视频| 亚洲欧美一区二区久久 | 美日韩一区二区| 欧美电影免费观看完整版| 国产激情91久久精品导航| 亚洲日本青草视频在线怡红院| 在线看日韩精品电影| 久久精品免费看| 国产精品网站一区| 欧美日韩一级黄| 国产一区二区三区视频在线播放| 中文字幕在线不卡一区| 欧美日韩亚洲高清一区二区| 国产一区二区三区国产| 中文字幕一区三区| 日韩视频免费观看高清完整版在线观看 | 日本精品免费观看高清观看| 日韩精品成人一区二区在线| 久久婷婷国产综合精品青草| 91麻豆免费观看| 美女www一区二区| 亚洲欧洲av在线| 日韩免费看的电影| 91精品91久久久中77777| 久久99久久99精品免视看婷婷| 日韩伦理电影网| 欧美tk丨vk视频| 欧美大度的电影原声| 99久久精品免费精品国产| 奇米在线7777在线精品| 亚洲美女精品一区| 久久久综合精品| 正在播放一区二区| caoporen国产精品视频| 精一区二区三区| 亚洲图片自拍偷拍| 国产精品无码永久免费888| 欧美一区二区在线看| 99re这里只有精品首页| 精久久久久久久久久久| 亚洲成人精品影院| 亚洲三级视频在线观看| 精品91自产拍在线观看一区| 欧美肥大bbwbbw高潮| 在线亚洲+欧美+日本专区| 成人国产在线观看| 国产一区二区美女诱惑| 久久成人久久爱| 五月天久久比比资源色| 亚洲小说春色综合另类电影| 自拍偷拍亚洲欧美日韩| 国产精品久久久久永久免费观看| 精品区一区二区| 欧美成人三级在线| 日韩一卡二卡三卡四卡| 日韩一级欧美一级| 欧美一区二区二区| 777色狠狠一区二区三区| 欧美日韩高清一区二区三区| 欧美在线色视频| 欧美在线三级电影| 欧美喷水一区二区| 欧美一区二区久久| 精品久久国产字幕高潮| 久久久久久免费网| 国产精品久久久久国产精品日日| 欧美韩日一区二区三区四区| 国产日产亚洲精品系列| 国产精品卡一卡二| 亚洲视频在线一区| 亚洲永久精品国产| 日韩高清在线一区| 美女脱光内衣内裤视频久久网站| 久久国内精品自在自线400部| 久久国内精品视频| 国产精品一二三四区| caoporn国产一区二区| 一本大道久久a久久精二百| 精品视频免费看| 欧美精品一区视频| 国产精品传媒视频| 亚洲电影在线播放| 国产在线乱码一区二区三区| 成人在线综合网| 欧美三级电影精品| 久久美女艺术照精彩视频福利播放| 久久精品亚洲精品国产欧美| 亚洲乱码精品一二三四区日韩在线| 亚洲在线成人精品| 国产在线精品一区二区夜色| 成人午夜看片网址| 欧美日韩在线播放一区| 久久久精品黄色| 一区二区三区av电影| 久久精品久久99精品久久| 99在线精品一区二区三区| 4hu四虎永久在线影院成人| 欧美国产一区在线| 亚洲高清在线精品| 国产精品一二三区| 欧美日韩国产另类一区| 国产精品视频你懂的| 蜜桃免费网站一区二区三区| 91在线免费播放| 久久综合99re88久久爱| 五月婷婷激情综合|