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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? jiugongdlg.cpp

?? 圖象模式識(shí)別工程從簡(jiǎn)單到復(fù)雜的各個(gè)舉例工程的源代碼
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
					UpdateData(false);
				}
				m_jiugong.CopyJG(tempstate,&m_jiugong.StateCur);
			}
			else{
				m_stringState.Format("您已經(jīng)不能相左移動(dòng),請(qǐng)重新走步");
				UpdateData(false);
			}
		}
	}
	else{
		if(m_jiugong.MoveLeft(&m_jiugong.StateCur,tempstate)==true){
			m_nstep++;
			if(m_jiugong.Compare(tempstate,&m_jiugong.StateObj)==true){
				m_stringState.Format("您走了第 %d 步,已經(jīng)找到目標(biāo)狀態(tài)",m_nstep);
				UpdateData(false);
			}
			else{
				m_stringState.Format("您走了第 %d 步,請(qǐng)繼續(xù)走",m_nstep);
				UpdateData(false);
			}
			m_jiugong.CopyJG(tempstate,&m_jiugong.StateCur);
		}
		else{
			m_stringState.Format("您已經(jīng)不能相左移動(dòng),請(qǐng)重新走步");
			UpdateData(false);
		}
	}
	DrawJiuGong(pDCCur,(&m_jiugong.StateCur)->state);
}

void CJiugongDlg::OnButtonRight() 
{
	// TODO: Add your control notification handler code here
	Beep(1000,50);
	JGState *tempstate;
	tempstate=(JGState *)malloc(sizeof(JGState));
	if(m_nstep==0){
		m_jiugong.CopyJG(&m_jiugong.StateInit,&m_jiugong.StateCur);
		if(m_jiugong.Compare(&m_jiugong.StateCur,&m_jiugong.StateObj)==true){
			m_stringState.Format("起始狀態(tài)和目標(biāo)狀態(tài)相同,不需移動(dòng)");
			UpdateData(false);
		}
		else{
			if(m_jiugong.MoveRight(&m_jiugong.StateCur,tempstate)==true){
				m_nstep++;
				if(m_jiugong.Compare(tempstate,&m_jiugong.StateObj)==true){
					m_stringState.Format("您走了第 1 步,已經(jīng)找到目標(biāo)狀態(tài)");
					UpdateData(false);
				}
				else{
					m_stringState.Format("您走了第 1 步,請(qǐng)繼續(xù)走");
					UpdateData(false);
				}
				m_jiugong.CopyJG(tempstate,&m_jiugong.StateCur);
			}
			else{
				m_stringState.Format("您已經(jīng)不能相右移動(dòng),請(qǐng)重新走步");
				UpdateData(false);
			}
		}
	}
	else{
		if(m_jiugong.MoveRight(&m_jiugong.StateCur,tempstate)==true){
			m_nstep++;
			if(m_jiugong.Compare(tempstate,&m_jiugong.StateObj)==true){
				m_stringState.Format("您走了第 %d 步,已經(jīng)找到目標(biāo)狀態(tài)",m_nstep);
				UpdateData(false);
			}
			else{
				m_stringState.Format("您走了第 %d 步,請(qǐng)繼續(xù)走",m_nstep);
				UpdateData(false);
			}
			m_jiugong.CopyJG(tempstate,&m_jiugong.StateCur);
		}
		else{
			m_stringState.Format("您已經(jīng)不能相右移動(dòng),請(qǐng)重新走步");
			UpdateData(false);
		}
	}
	DrawJiuGong(pDCCur,(&m_jiugong.StateCur)->state);
}

void CJiugongDlg::OnButtonSearch() 
{
	if(m_binitdown==false||m_bobjdown==false){
		MessageBox("初始狀態(tài)或者目標(biāo)狀態(tài)沒(méi)有輸入!!!","錯(cuò)誤警告");
		m_bsearch.EnableWindow(false);
		m_bshow.EnableWindow(false);
		return;
	}

	m_stringState.Format("搜索中,請(qǐng)耐心等待......");
	UpdateData(false);
	CDlgWait dlgwait;
	dlgwait.Create(IDD_DIALOG_WAIT);
	dlgwait.ShowWindow(SW_SHOW);
	dlgwait.CenterWindow();
	dlgwait.BeginWaitCursor();
	dlgwait.UpdateWindow();

	if(m_jiugong.ComputeJO(&(m_jiugong.StateInit))!=m_jiugong.ComputeJO(&(m_jiugong.StateObj))){
		m_stringState.Format("很抱歉,兩個(gè)狀態(tài)之間不可達(dá),請(qǐng)重新輸入");
		UpdateData(false);
		MessageBox("兩個(gè)狀態(tài)之間不可達(dá),\n請(qǐng)重新輸入!!!","提示");
		return;
	}

	if(m_jiugong.Search()==true){
		m_stringState.Format("搜索成功,總共需要走 %d 步",m_jiugong.ResultList.GetCount()-1);
		UpdateData(false);
	}
	else{
		m_stringState.Format("因?yàn)槟承┰颍阉魇。?qǐng)重新輸入");
		UpdateData(false);
	}

	m_nstep=0;
	dlgwait.DestroyWindow();
}

void CJiugongDlg::OnButtonShow() 
{
	if(m_binitdown==false||m_bobjdown==false){
		MessageBox("初始狀態(tài)或者目標(biāo)狀態(tài)沒(méi)有輸入!!!","錯(cuò)誤警告");
		m_bsearch.EnableWindow(false);
		m_bshow.EnableWindow(false);
		return;
	}

	if(m_nstep==0&&m_jiugong.ResultList.IsEmpty()==false){
		DrawJiuGong(pDCCur,((JGState *)(m_jiugong.ResultList.GetHead()))->state);
		m_stringState.Format("總共需要走 %d 步,當(dāng)前是起始狀態(tài)",m_jiugong.ResultList.GetCount()-1);
		UpdateData(false);
		m_nstep++;
	}
	else if(m_nstep<(m_jiugong.ResultList.GetCount()-1)){
		POSITION tempindex;
		tempindex=m_jiugong.ResultList.FindIndex(m_nstep);
		DrawJiuGong(pDCCur,((JGState *)(m_jiugong.ResultList.GetAt(tempindex)))->state);
		m_stringState.Format("總共需要走 %d 步,當(dāng)前是第 %d 步",m_jiugong.ResultList.GetCount()-1,m_nstep);
		UpdateData(false);
		m_nstep++;
		Beep(1000,50);
	}
	else{
		m_stringState.Format("總共需要走 %d 步,已經(jīng)走到目標(biāo)狀態(tài)",m_jiugong.ResultList.GetCount()-1);
		UpdateData(false);
		DrawJiuGong(pDCCur,((JGState *)(m_jiugong.ResultList.GetTail()))->state);
		Beep(1000,50);
	}
}

void CJiugongDlg::OnButtonUp() 
{
	// TODO: Add your control notification handler code here
	Beep(1000,50);
	JGState *tempstate;
	tempstate=(JGState *)malloc(sizeof(JGState));
	if(m_nstep==0){
		m_jiugong.CopyJG(&m_jiugong.StateInit,&m_jiugong.StateCur);
		if(m_jiugong.Compare(&m_jiugong.StateCur,&m_jiugong.StateObj)==true){
			m_stringState.Format("起始狀態(tài)和目標(biāo)狀態(tài)相同,不需移動(dòng)");
			UpdateData(false);
		}
		else{
			if(m_jiugong.MoveUp(&m_jiugong.StateCur,tempstate)==true){
				m_nstep++;
				if(m_jiugong.Compare(tempstate,&m_jiugong.StateObj)==true){
					m_stringState.Format("您走了第 1 步,已經(jīng)找到目標(biāo)狀態(tài)");
					UpdateData(false);
				}
				else{
					m_stringState.Format("您走了第 1 步,請(qǐng)繼續(xù)走");
					UpdateData(false);
				}
				m_jiugong.CopyJG(tempstate,&m_jiugong.StateCur);
			}
			else{
				m_stringState.Format("您已經(jīng)不能相上移動(dòng),請(qǐng)重新走步");
				UpdateData(false);
			}
		}
	}
	else{
		if(m_jiugong.MoveUp(&m_jiugong.StateCur,tempstate)==true){
			m_nstep++;
			if(m_jiugong.Compare(tempstate,&m_jiugong.StateObj)==true){
				m_stringState.Format("您走了第 %d 步,已經(jīng)找到目標(biāo)狀態(tài)",m_nstep);
				UpdateData(false);
			}
			else{
				m_stringState.Format("您走了第 %d 步,請(qǐng)繼續(xù)走",m_nstep);
				UpdateData(false);
			}
			m_jiugong.CopyJG(tempstate,&m_jiugong.StateCur);
		}
		else{
			m_stringState.Format("您已經(jīng)不能相上移動(dòng),請(qǐng)重新走步");
			UpdateData(false);
		}
	}
	DrawJiuGong(pDCCur,(&m_jiugong.StateCur)->state);	
}

void CJiugongDlg::OnRadioMac() 
{
	// TODO: Add your control notification handler code here
	m_bleft.EnableWindow(false);
	m_bup.EnableWindow(false);
	m_bright.EnableWindow(false);
	m_bdown.EnableWindow(false);
	m_bsearch.EnableWindow();
	m_bshow.EnableWindow();
	m_stringState.Format("當(dāng)前選擇的是機(jī)器搜索狀態(tài)");
	UpdateData(false);
	m_nstep=0;
	DrawJiuGong(pDCCur,m_jiugong.StateInit.state);
}

void CJiugongDlg::OnRadioMan() 
{
	// TODO: Add your control notification handler code here
	m_bleft.EnableWindow();
	m_bup.EnableWindow();
	m_bright.EnableWindow();
	m_bdown.EnableWindow();
	m_bsearch.EnableWindow(false);
	m_bshow.EnableWindow(false);
	m_stringState.Format("當(dāng)前選擇的是人工游戲狀態(tài)");
	UpdateData(false);
	m_nstep=0;
	DrawJiuGong(pDCCur,m_jiugong.StateInit.state);
}

///////////////////////////////////////////////////////////////////////
//畫(huà)九宮圖
void CJiugongDlg::DrawJiuGong(CDC *pDC,int state[3][3])
{
	//To Draw the JiuGong
	CBitmap bitmap[9];
    CDC dcMemory;
	CRect rc;
	int width;
	int height;
    bitmap[0].LoadBitmap(IDB_BITMAP_NULL);
	bitmap[1].LoadBitmap(IDB_BITMAP1);
	bitmap[2].LoadBitmap(IDB_BITMAP2);
	bitmap[3].LoadBitmap(IDB_BITMAP3);
	bitmap[4].LoadBitmap(IDB_BITMAP4);
	bitmap[5].LoadBitmap(IDB_BITMAP5);
	bitmap[6].LoadBitmap(IDB_BITMAP6);
	bitmap[7].LoadBitmap(IDB_BITMAP7);
	bitmap[8].LoadBitmap(IDB_BITMAP8);
    dcMemory.CreateCompatibleDC(pDC);
	
	pDC->GetWindow()->GetWindowRect(&rc);
	width = rc.Width();
	height = rc.Height();
  	for(int i=0;i<3;i++){
		for(int j=0;j<3;j++){
			if(state[i][j]>=0&&state[i][j]<9){
				dcMemory.SelectObject(&bitmap[state[i][j]]);
				pDC->BitBlt((j*2+1)*width/6-8,(i*2+1)*height/6-8,16,16,&dcMemory,0,0,SRCCOPY);
			}//end if
		}//end for
	}//end for
}

///////////////////////////////////////////////////////////////////
//檢查數(shù)據(jù)的有效性
bool CJiugongDlg::CheckData(int state[3][3])
{
	int count[9];
	int i,j;
	for(i=0;i<9;i++){
		count[i]=0;
	}

	for(i=0;i<3;i++){
		for(j=0;j<3;j++){
			if(state[i][j]<0||state[i][j]>8)
				return false;
			count[state[i][j]]++;
		}
	}

	for(i=0;i<9;i++){
		if(count[i]==0)
			return false;
	}

	return true;
}


void CJiugongDlg::OnButtonAuto() 
{
	// TODO: Add your control notification handler code here
	if(m_binitdown==false||m_bobjdown==false){
		MessageBox("初始狀態(tài)或者目標(biāo)狀態(tài)沒(méi)有輸入!!!","錯(cuò)誤警告");
		m_bsearch.EnableWindow(false);
		m_bshow.EnableWindow(false);
		return;
	}
	m_bleft.EnableWindow(false);
	m_bup.EnableWindow(false);
	m_bright.EnableWindow(false);
	m_bdown.EnableWindow(false);
	m_bsearch.EnableWindow(false);
	m_bshow.EnableWindow(false);
	m_nstep=0;
	if(m_jiugong.ResultList.GetCount()==0){
		MessageBox("無(wú)解或還沒(méi)有搜索","警告");
	}

	for(int i=0;i<=m_jiugong.ResultList.GetCount();i++){
		OnButtonShow();
		Sleep(1000);
	}
	
	m_bsearch.EnableWindow();
	m_bshow.EnableWindow();
}

void CJiugongDlg::OnButtonDepth() 
{
	// TODO: Add your control notification handler code here
	CDlgDepth depthdlg;
	if(depthdlg.DoModal()==IDOK){
		if(depthdlg.m_depth<25||depthdlg.m_depth>200){
			MessageBox("深度太大或太小!!!","警告");
			return;
		}
		else
			m_jiugong.m_ndepth=depthdlg.m_depth;
	}
}

void CJiugongDlg::OnButtonHuifu() 
{
	// TODO: Add your control notification handler code here
	DrawJiuGong(pDCInit,m_jiugong.StateInit.state);
	DrawJiuGong(pDCObj,m_jiugong.StateObj.state);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产一级片| 久久久久高清精品| 国产又黄又大久久| 日韩一区欧美一区| 欧美一级久久久久久久大片| 成人高清视频在线| 日韩成人免费电影| 亚洲欧美日本韩国| 国产亚洲一二三区| 欧美一区二区三区电影| 色一区在线观看| 国产999精品久久久久久绿帽| 午夜国产精品一区| 亚洲色图欧美在线| 久久久精品免费免费| 538prom精品视频线放| 99麻豆久久久国产精品免费优播| 老汉av免费一区二区三区 | 欧美tk—视频vk| 在线观看成人小视频| jizzjizzjizz欧美| 成人午夜伦理影院| 国产传媒欧美日韩成人| 精品无码三级在线观看视频| 亚洲在线一区二区三区| 中文字幕一区二区三区不卡在线 | 久久国产精品第一页| 亚洲综合久久久| 亚洲三级免费电影| 国产精品国产自产拍高清av王其| www欧美成人18+| 精品久久久久久久人人人人传媒 | 99r国产精品| av在线不卡电影| 成人免费毛片a| 成人激情小说乱人伦| 成人免费高清视频在线观看| 国产一区二区三区在线观看免费视频| 久久99久久99| 国产一区三区三区| 国产精品亚洲视频| 岛国一区二区三区| 99视频一区二区| 色一情一伦一子一伦一区| 色狠狠色噜噜噜综合网| 色综合激情五月| 欧美午夜影院一区| 欧美一区二区成人| 日韩精品一区二区三区swag | 日韩欧美一区二区视频| 欧美一级免费观看| 精品成人佐山爱一区二区| 久久久久国产成人精品亚洲午夜| 久久久欧美精品sm网站| 亚洲国产精品成人综合色在线婷婷 | 狠狠色丁香久久婷婷综合_中| 麻豆精品久久精品色综合| 久久精品99国产国产精| 国产成人在线视频网站| 99国产精品视频免费观看| 欧美自拍偷拍午夜视频| 欧美精品第一页| 精品伦理精品一区| 中文字幕在线免费不卡| 亚洲大片免费看| 国产真实乱子伦精品视频| 成人精品小蝌蚪| 欧美色偷偷大香| 欧美成人猛片aaaaaaa| 国产日韩一级二级三级| 亚洲免费高清视频在线| 日本在线不卡视频一二三区| 国模套图日韩精品一区二区 | 日韩精品一区二区三区swag| 国产欧美精品在线观看| 亚洲黄色在线视频| 国产在线不卡一卡二卡三卡四卡| 99精品欧美一区二区蜜桃免费| 欧美日韩视频在线观看一区二区三区 | 国模一区二区三区白浆| 91麻豆精品在线观看| 91精品免费观看| 国产精品麻豆欧美日韩ww| 五月激情六月综合| 成人a免费在线看| 8x8x8国产精品| 国产精品久久久99| 日韩精品一区第一页| 成人一区在线看| 4438x成人网最大色成网站| 欧美激情一区二区三区不卡 | 国产欧美日韩视频一区二区 | 亚洲国产成人porn| 国产麻豆精品在线观看| 欧美视频日韩视频| 亚洲国产精品v| 日韩高清不卡一区二区三区| 成人黄色小视频| 欧美va亚洲va| 亚洲第一会所有码转帖| 高清成人在线观看| 欧美一二三区精品| 一区二区三区免费网站| 国产69精品一区二区亚洲孕妇| 欧美三级日韩在线| 国产精品久久久久天堂| 精品一区二区免费在线观看| 91免费观看在线| 日本一区二区视频在线观看| 麻豆国产91在线播放| 欧美性一二三区| 亚洲欧美激情视频在线观看一区二区三区| 精品无码三级在线观看视频| 6080午夜不卡| 亚洲电影中文字幕在线观看| 99在线精品免费| 日本一区二区成人在线| 国产一区二区三区在线观看免费视频| 欧美日韩国产综合草草| 一区二区成人在线| 色8久久精品久久久久久蜜| 国产精品初高中害羞小美女文| 国产一区二区三区av电影| 欧美一区二区美女| 日韩国产精品久久久| 欧美丝袜丝nylons| 亚洲激情在线激情| 在线影视一区二区三区| 樱花影视一区二区| 91片在线免费观看| 成人免费在线播放视频| 91在线精品秘密一区二区| 国产精品午夜在线观看| 国产suv精品一区二区883| 国产亚洲一二三区| 高清成人在线观看| 中文字幕va一区二区三区| 国产传媒日韩欧美成人| 欧美国产禁国产网站cc| www.激情成人| 亚洲天天做日日做天天谢日日欢| caoporen国产精品视频| 1024亚洲合集| 在线观看成人小视频| 午夜视频一区在线观看| 777午夜精品免费视频| 日韩成人免费在线| 日韩美女视频在线| 国产精品一二三| 国产精品久线观看视频| 色婷婷综合久久久久中文一区二区| 亚洲精品va在线观看| 欧美日韩精品一区二区三区四区 | 在线看不卡av| 香蕉成人啪国产精品视频综合网 | 国产欧美日韩三级| 波多野结衣在线一区| 亚洲色图一区二区| 欧美人体做爰大胆视频| 蜜桃视频一区二区三区在线观看| 欧美r级电影在线观看| 国产成人免费视频网站高清观看视频 | 亚洲高清中文字幕| 日韩欧美国产一区二区在线播放| 国产美女av一区二区三区| 国产精品久久久久久亚洲伦 | 国产欧美精品在线观看| 色哟哟国产精品| 蜜臀av性久久久久av蜜臀妖精| 国产亚洲精品久| 在线观看日韩高清av| 日本中文一区二区三区| 国产精品素人一区二区| 欧美性色黄大片手机版| 麻豆视频观看网址久久| 国产精品欧美经典| 欧美视频在线一区二区三区| 九九精品视频在线看| 亚洲欧美日韩一区| 欧美大片在线观看| 97精品久久久午夜一区二区三区| 日韩精品一二区| 亚洲国产精品黑人久久久| 7777精品伊人久久久大香线蕉超级流畅| 经典三级视频一区| 亚洲一区av在线| 国产情人综合久久777777| 欧美精品久久天天躁| 不卡av在线免费观看| 久久国产日韩欧美精品| 一区二区三区精品视频| 久久久久久久久久久久久夜| 精品视频全国免费看| 岛国av在线一区| 麻豆精品视频在线观看| 亚洲永久免费av| 国产精品少妇自拍| 日韩欧美美女一区二区三区| 日本韩国欧美在线| 大美女一区二区三区|