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

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

?? eightnumberview.cpp

?? 人工智能中的八數碼難題,人工智能中的八數碼難題
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
				   aa[i]=ab[j];
				   ab[j]=11;
				   break;
			   }
		   }
	   }
      //**start=aa[i];
	  /*str.Format("%d",aa[i]);
	  string +=str;
	  str.Format("%d",**start);
	  string +=str;
	  MessageBox(string);*/
   }
   for (i=0; i<9; i++)
   {
    str.Format("%d",aa[i]);
	string+=str;
   }
  int  z=1;
   for (i=0; i<3; i++)
	   for (j=0; j<3; j++)
	   {
		   start[i][j]=atoi(substr(string,z++,1));
	   }
    /*CString std="";
   for (i=0; i<3; i++)
	   for (j=0; j<3; j++)
   {
         str.Format("%d",start[i][j]);
	     std=std+"  "+str;
		 
	   
   }
  start=aa;
   for (i=0; i<3; i++)
     for (j=0; j<3; j++)
   {
	   str.Format("%d",**start);
	   std=std+"  "+str; 
   }
   MessageBox(std);*/
}

void CEightNumberView::OnButtonSteprun() 
{
	// TODO: Add your control notification handler code here
	int value;
	CString s;
	//pdc=GetDC();

	if(count<depth-1)
	{
		count++;
		si=output[count].si;
		sj=output[count].sj;
		ni=output[count+1].si;
		nj=output[count+1].sj;
		//ni=output[count].ni;
		//nj=output[count].nj;
		value=output[count].ch[ni][nj];
		/*CString str;
		str.Format("%d",value);
		//MessageBox(str);
		CString sting=str;
		str.Format("%d",si);
		sting+=str;
		str.Format("%d",sj);
		sting+=str;
		MessageBox(sting);*/
        drawd(sj,si,value);
        drawd(nj,ni,0);
		DrawGraphics();

		
		//start[si][sj]=value;
		//start[ni][nj]=0;
		//ItoBitmap();
		//DrawStation();
		//OnPaint();
		
		//drawd
		if(count==depth-1)
		{
			//m_RunToStop.EnableWindow(FALSE);
		    //m_SepRun.EnableWindow(FALSE);
			MessageBox("恭喜你,你已贏得這局,要重新開始,請單擊‘開始游戲’","八數碼游戲",MB_OK|MB_ICONINFORMATION);
			//m_cButtonStepRun.EnableWindow(FALSE);
		}
	}
  // MessageBox("This is me!");
}

void CEightNumberView::drawd(int x,int y,int a)
{
  	CDC *pDC=GetDC();
	CDC memdc1;
    UINT Mid;
	CBitmap bitmap;
  		 if (a==0) Mid=IDB_BITMAP9;
		   else if(a==1) Mid=IDB_BITMAP1;
		     else if(a==2) Mid=IDB_BITMAP2;
			   else if(a==3) Mid=IDB_BITMAP3;
			     else if(a==4) Mid=IDB_BITMAP4;
				   else if(a==5) Mid=IDB_BITMAP5;
				     else if(a==6) Mid=IDB_BITMAP6;
					   else if(a==7) Mid=IDB_BITMAP7;
					     else if(a==8) Mid=IDB_BITMAP8;

		bitmap.LoadBitmap(Mid);


	memdc1.CreateCompatibleDC(pDC);
	memdc1.SelectObject(bitmap);
	pDC->BitBlt((x)*cellwidth+20,(y)*cellheight+20,cellwidth,cellheight,&memdc1,(0)*cellwidth,(0)*cellheight,SRCCOPY);
	
	pDC->DeleteDC();
	//DeleteObject(map);
	return;
}

void CEightNumberView::OnButtonRun() 
{
	// TODO: Add your control notification handler code here
	int i,j;
	count=-1;
    for (i=0; i<3; i++)
       for (j=0; j<3; j++)
	   {
		   zerosite.ch[i][j]=start[i][j];
		   if (start[i][j]==0)
		   {
			   zerosite.si=j;
			   zerosite.sj=i;
			   ni=j;
			   nj=i;
		   }
	   }
	   for (i=0; i<3; i++)
		  for (j=0; j<3; j++)
		  {
			  drawd(i,j,start[j][i]);
		  }
    //m_ShowState.SetWindowText("正在進行初始化請耐心等待......");
	DrawGraphics();
    AutoPlay=!AutoPlay;
	if (AutoPlay)
	{
	   m_RunToStop.SetWindowText("停止自動運行");
       SetTimer(1,300,NULL);
	 }
	  else 
	  {
		  m_RunToStop.SetWindowText("自動運行");
		  KillTimer(1);
	  }
   
}

void CEightNumberView::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	
	OnButtonSteprun();
	
	CFormView::OnTimer(nIDEvent);
}

void CEightNumberView::OnCancelMode() 
{
	CFormView::OnCancelMode();
	
	// TODO: Add your message handler code here
	
}

void CEightNumberView::OnButtonOnok() 
{
	// TODO: Add your control notification handler code here
	//CAboutDlg dlg;
	//dlg.DoModal();
	KillTimer(1);
    m_pThread=AfxBeginThread(MultiThread,0);
    m_pThread->SuspendThread ();

    CEditDlg dlg;
	dlg.DoModal();
	//if (dlg.)
	
	AfxGetMainWnd()->SendMessage(WM_CLOSE);
    
}

void CEightNumberView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	int x,y;
	int value;
	x=point.x/cellwidth;
	y=point.y/cellheight;
	//CString str;
	//	str.Format("%d",abs(x-zerosite.si)+abs(y-zerosite.sj));
      //  MessageBox(str);
	if (abs(x-zerosite.si)+abs(y-zerosite.sj)==1)
	{
		if (x-zerosite.si==1)
		{
          value=zerosite.ch[y][x];
		  //CString str;
          //str.Format("%d",x-zerosite.si);
		  //MessageBox(str);
		  drawd(zerosite.si,zerosite.sj,value);
          drawd(x,y,0);
		  DrawGraphics();
		  
		  zerosite.ch[y][x]=0;
		  zerosite.ch[zerosite.sj][zerosite.si]=value;
		  zerosite.si=x;
		  
		}
		else if (x-zerosite.si==-1)
		{
          value=zerosite.ch[y][x];
		  drawd(zerosite.si,zerosite.sj,value);
          drawd(x,y,0);
		  DrawGraphics();
		  //CString str;
		  //str.Format("%d",value);
		  //MessageBox(str);
		  
		  zerosite.ch[zerosite.sj][zerosite.si]=value;
		  zerosite.ch[y][x]=0;
		  zerosite.si=x;
		}
        else if (y-zerosite.sj==1)
		{
          value=zerosite.ch[y][x];
		  drawd(zerosite.si,zerosite.sj,value);
          drawd(x,y,0);
		  DrawGraphics();
		  //CString str;
		  //str.Format("%d",value);
		  //MessageBox(str);
		  
		  zerosite.ch[zerosite.sj][zerosite.si]=value;
		  zerosite.ch[y][x]=0;
          zerosite.sj=y;
		}
	    else if (y-zerosite.sj==-1)
		{
          value=zerosite.ch[y][x];

		  drawd(zerosite.si,zerosite.sj,value);
          drawd(x,y,0);
		  DrawGraphics();
          //CString str;
		  // str.Format("%d",value);
		  //MessageBox(str);
		  
		  zerosite.ch[zerosite.sj][zerosite.si]=value;
		  zerosite.ch[y][x]=0;
          zerosite.sj=y;
		}
       

	}
	/*CString str,st="";
	for (int i=0; i<3; i++)
		for (int j=0; j<3; j++)
		{
          str.Format("%d",zerosite.ch[i][j]);
		  st+=str;
		}
		MessageBox(st);*/
	if (Goals(zerosite))
	{
        //m_RunToStop.EnableWindow(FALSE);
	//	m_SepRun.EnableWindow(FALSE);
		MessageBox("恭喜你,你已贏得這局,要重新開始,請單擊‘開始游戲’","八數碼游戲",MB_OK|MB_ICONINFORMATION);
	}

	CFormView::OnLButtonDown(nFlags, point);
}

void CEightNumberView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	// TODO: Add your message handler code here and/or call default
	int value;
	int x,y;
	switch(nChar)
	{
	case VK_RIGHT:
      if(zerosite.si>0 && zerosite.si<3)
		{
		  x=zerosite.si-1;
		  y=zerosite.sj;
		  value=zerosite.ch[y][x];
		  drawd(zerosite.si,zerosite.sj,value);
          drawd(x,y,0);
		  DrawGraphics();
		  //CString str;
		  //str.Format("%d",value);
		  //MessageBox(str);
		  
		  zerosite.ch[zerosite.sj][zerosite.si]=value;
		  zerosite.ch[y][x]=0;
		  zerosite.si=x;
		}
		break;
	case VK_LEFT:
		if(zerosite.si<2 && zerosite.si>-1)
		{
          x=zerosite.si+1;
		  y=zerosite.sj;
		  value=zerosite.ch[y][x];
		  drawd(zerosite.si,zerosite.sj,value);
          drawd(x,y,0);
		  DrawGraphics();
		  //CString str;
		  //str.Format("%d",value);
		  //MessageBox(str);
		  
		  zerosite.ch[zerosite.sj][zerosite.si]=value;
		  zerosite.ch[y][x]=0;
		  zerosite.si=x;
		}
		break;
	case VK_DOWN:
		if(zerosite.sj>0 && zerosite.sj<3)
		{
		  x=zerosite.si;
		  y=zerosite.sj-1;
		  value=zerosite.ch[y][x];

		  drawd(zerosite.si,zerosite.sj,value);
          drawd(x,y,0);
		  DrawGraphics();
          //CString str;
		  // str.Format("%d",value);
		  //MessageBox(str);
		  
		  zerosite.ch[zerosite.sj][zerosite.si]=value;
		  zerosite.ch[y][x]=0;
          zerosite.sj=y;	
		}
		break;
	case VK_UP:
		if(zerosite.sj<2 &&zerosite.sj>-1)
		{
          x=zerosite.si;
		  y=zerosite.sj+1;
		  value=zerosite.ch[y][x];
		  drawd(zerosite.si,zerosite.sj,value);
          drawd(x,y,0);
		  DrawGraphics();
		  //CString str;
		  //str.Format("%d",value);
		  //MessageBox(str);
		  
		  zerosite.ch[zerosite.sj][zerosite.si]=value;
		  zerosite.ch[y][x]=0;
          zerosite.sj=y;
		}
		break;
	}
	if (Goals(zerosite))
	{
		//m_RunToStop.EnableWindow(FALSE);
		//m_SepRun.EnableWindow(FALSE);
		MessageBox("恭喜你,你已贏得這局,要重新開始,請單擊‘開始游戲’","八數碼游戲",MB_OK|MB_ICONINFORMATION);
	}
	CFormView::OnKeyDown(nChar, nRepCnt, nFlags);
}

CString CEightNumberView::substr(CString st, int a, int b)
{
    int length=strlen(st);
	CString str;
	for (int i=a;i<=a+b-1;i++)
      str=str+st[i-1];
	return str;
}

void CEightNumberView::OnButtonStart() 
{
	// TODO: Add your control notification handler code here
	int i,j;
	depth=0;
	//open=1;
	//closed=0;
    if (!KillTimer(1)) KillTimer(1);
	count=-1;
	AutoPlay=false;
	
	UpdateData();
    GetRand();

	for (i=0; i<3; i++)
       for (j=0; j<3; j++)
	   {
		   zerosite.ch[i][j]=start[i][j];
		   if (start[i][j]==0)
		   {
			   zerosite.si=j;
			   zerosite.sj=i;
			   ni=j;
			   nj=i;
		   }
	   }
	   for (i=0; i<3; i++)
		  for (j=0; j<3; j++)
		  {
			  drawd(i,j,start[j][i]);
		  }
    m_ShowState.SetWindowText("正在進行初始化請耐心等待......");
	DrawGraphics();
	DrawStoA();
    //Run();
	m_pThread=AfxBeginThread(MultiThread,0);
	 if (ftot)
	 {
       m_SepRun.EnableWindow(TRUE);
	   m_RunToStop.EnableWindow(TRUE);
       m_ShowState.SetWindowText(String);   
	 }
	else
		{
			//MessageBox("非常遺憾此狀態無解,你只能使用鼠標移動","初始化失敗通知",MB_OK|MB_ICONINFORMATION);
           m_SepRun.EnableWindow(FALSE);
	       m_RunToStop.EnableWindow(FALSE);
		   
		   m_ShowState.SetWindowText("初始化失敗!非常遺憾此狀態無解\n\n   禁止使用自動運行和單步運行\n\n  只能使用鼠標或鍵盤方向鍵移動");
            //MessageBox("初始化失敗!");
		}
  UpdateData(false);
    //Run();
	//ItoBitmap();
	//DrawStation();
	   //Invalidate();
   
    

}

void CEightNumberView::OnButtonExplain() 
{
	// TODO: Add your control notification handler code here
	CExplainGame dlg;
	dlg.DoModal();

}

void CEightNumberView::DrawStoA()
{
	int i,j;
	CDC *pdc;
    pdc=GetDC();
	CPen newPen,*oldPen;
	newPen.CreatePen(PS_SOLID,3,RGB(128,0,0));
	oldPen=pdc->SelectObject(&newPen);
	//初始狀態
	for(i=0;i<=3;i++)
	{
		pdc->MoveTo(540+40,40+40*i);
		pdc->LineTo(540+160,40+40*i);
	}
	for(j=0;j<=3;j++)
	{
		pdc->MoveTo(540+40+40*j,40);
		pdc->LineTo(540+40+40*j,160);
	}
	//目標狀態
	for(i=0;i<=3;i++)
	{
		pdc->MoveTo(540+240,40+40*i);
		pdc->LineTo(540+360,40+40*i);
	}
	for(j=0;j<=3;j++)
	{
		pdc->MoveTo(540+240+40*j,40);
		pdc->LineTo(540+240+40*j,160);
	}
	CFont newFont,*oldFont;
	newFont.CreateFont(20,20,0,0,700,FALSE,FALSE,FALSE,ANSI_CHARSET,
		OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,PROOF_QUALITY,FF_ROMAN,"Times New Roman");
	oldFont=pdc->SelectObject(&newFont);
	pdc->SetBkColor(RGB(212,208,200));
	CString str;
	//顯示目標狀態
	for(i=0;i<3;i++)
		for(j=0;j<3;j++)
		{
			//str.Format("%i",goal[i][j]);
			//pdc->TextOut(540+240+40*j+10,40+40*i+10,str);
			str.Format("%i",start[i][j]);
			pdc->TextOut(540+40+40*j+10,40+40*i+10,str);
		}
	newPen.DeleteObject();
	newFont.DeleteObject();
	pdc->SelectObject(oldPen);
	pdc->SelectObject(oldFont);
}

BOOL CEightNumberView::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	if(pMsg->message==WM_KEYDOWN)
	{
		OnKeyDown((UINT)pMsg->wParam,(UINT)pMsg->lParam,(UINT)pMsg->lParam);
	}
	return CFormView::PreTranslateMessage(pMsg);
}

void CEightNumberView::CalcWindowRect(LPRECT lpClientRect, UINT nAdjustType) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	CFormView::CalcWindowRect(lpClientRect, nAdjustType);
}


UINT MultiThread(LPVOID param)
{
	CMainFrame *pFrame=(CMainFrame*)(AfxGetApp()->m_pMainWnd );
	CEightNumberView *pView=(CEightNumberView*)(pFrame->GetActiveView ());
	pView->Run();
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美激情在线| 99热99精品| 亚洲成人免费在线| 亚洲已满18点击进入久久| 一区免费观看视频| 国产精品白丝在线| 中文字幕一区二区不卡| 国产精品天美传媒| 国产精品无人区| 国产精品欧美综合在线| 中文字幕第一区综合| 国产精品电影院| 亚洲欧洲日韩在线| 亚洲女人小视频在线观看| 亚洲男人天堂一区| 亚洲一线二线三线久久久| 亚洲午夜国产一区99re久久| 亚洲午夜久久久久久久久电影网| 午夜精品久久久久久久| 日韩国产欧美在线播放| 毛片av一区二区| 久久电影国产免费久久电影| 韩国三级中文字幕hd久久精品| 国产一区在线视频| 成人动漫一区二区三区| 一本高清dvd不卡在线观看| 在线亚洲高清视频| 在线电影欧美成精品| 欧美变态凌虐bdsm| 国产精品美日韩| 亚洲电影一区二区三区| 日韩黄色免费电影| 韩国毛片一区二区三区| 97se狠狠狠综合亚洲狠狠| 欧美三级三级三级爽爽爽| 中文字幕av在线一区二区三区| 中文字幕av免费专区久久| 亚洲激情校园春色| 日本在线不卡一区| 国产成人综合网| 91久久久免费一区二区| 日韩亚洲欧美中文三级| 中文字幕免费在线观看视频一区| 一区二区三区四区中文字幕| 天天影视涩香欲综合网 | 色网综合在线观看| 欧美精品一二三| 久久久久久久久免费| 一区二区三区四区中文字幕| 日韩成人一区二区三区在线观看| 精品无人码麻豆乱码1区2区 | 奇米888四色在线精品| 国产精品一区二区久激情瑜伽| 97久久人人超碰| 日韩欧美精品在线视频| 亚洲欧洲中文日韩久久av乱码| 日韩精品视频网| av电影在线不卡| 日韩三级免费观看| 1024亚洲合集| 久久精品国产999大香线蕉| 99精品视频一区二区| 欧美va亚洲va| 亚洲已满18点击进入久久| 国产成人8x视频一区二区| 欧美剧情片在线观看| 国产精品嫩草久久久久| 喷水一区二区三区| 91久久精品一区二区三| 国产欧美精品一区| 男女性色大片免费观看一区二区 | 一二三区精品福利视频| 国产一区二区在线免费观看| 欧洲av在线精品| 国产精品久久久久aaaa| 美女脱光内衣内裤视频久久影院| 日本道色综合久久| 国产精品久久777777| 国产一区二区三区香蕉| 欧美人牲a欧美精品| 亚洲精品写真福利| 成人91在线观看| www国产精品av| 视频一区二区国产| eeuss鲁片一区二区三区在线看| 久久综合中文字幕| 日本成人在线视频网站| 91国产精品成人| 中文字幕一区二区三区蜜月| 国产大片一区二区| 精品成人免费观看| 久久精品国产免费看久久精品| 欧美猛男男办公室激情| 亚洲一区二区精品久久av| 91色九色蝌蚪| 国产精品成人网| 成人免费电影视频| 国产精品水嫩水嫩| 丁香激情综合五月| 中文无字幕一区二区三区| 国产成人精品1024| 日本一区二区视频在线观看| 国产成人精品一区二区三区四区 | 亚洲视频一区在线| 91精品国产综合久久久久久久| 亚洲在线视频一区| 在线观看精品一区| 亚洲综合激情网| 欧美又粗又大又爽| 天天做天天摸天天爽国产一区 | 欧美日韩亚洲综合在线| 亚洲福利视频三区| 欧美精品xxxxbbbb| 久久99精品视频| 亚洲精品一区二区三区精华液| 久久99久久99小草精品免视看| 日韩欧美一区在线| 国模套图日韩精品一区二区| 久久综合一区二区| 成人污污视频在线观看| 国产精品久久网站| 97se亚洲国产综合自在线观| 亚洲精品视频观看| 欧美电影一区二区三区| 精品一区二区三区欧美| 欧美激情在线一区二区三区| av综合在线播放| 一区二区三区精品| 91精品国产综合久久久蜜臀粉嫩 | 欧美一卡二卡在线观看| 久久超碰97人人做人人爱| 精品国产区一区| 成人午夜激情在线| 亚洲第一激情av| 日韩女同互慰一区二区| 丁香亚洲综合激情啪啪综合| 亚洲色图制服诱惑| 777午夜精品免费视频| 国产一区二区在线电影| 亚洲天堂精品视频| 欧美一区二区播放| 成人亚洲精品久久久久软件| 一区二区三区影院| 精品国产一区二区亚洲人成毛片| 成人性生交大片免费看在线播放| 一级女性全黄久久生活片免费| 欧美一区二区女人| av一二三不卡影片| 天使萌一区二区三区免费观看| 2023国产精品| 色先锋aa成人| 韩国女主播一区| 亚洲伊人伊色伊影伊综合网| 欧美大胆一级视频| 91蜜桃在线免费视频| 美女尤物国产一区| 日韩理论在线观看| 欧美大黄免费观看| 在线一区二区三区做爰视频网站| 麻豆成人av在线| 亚洲欧美激情在线| 久久久久亚洲综合| 69堂亚洲精品首页| av激情综合网| 精品无人区卡一卡二卡三乱码免费卡| 亚洲欧洲综合另类在线| 久久天天做天天爱综合色| 欧美羞羞免费网站| 国产成a人亚洲| 免费观看30秒视频久久| 青青草国产精品亚洲专区无| 综合婷婷亚洲小说| 久久伊99综合婷婷久久伊| 欧美色区777第一页| 成人丝袜高跟foot| 国内成人免费视频| 首页国产丝袜综合| 亚洲欧美日韩中文播放| 国产亚洲欧美中文| 91麻豆精品国产综合久久久久久| 91蝌蚪国产九色| 国产成人aaaa| 久草热8精品视频在线观看| 亚洲一卡二卡三卡四卡| 国产精品久久久久影视| 精品成人a区在线观看| 欧美一区二区在线不卡| 欧美吻胸吃奶大尺度电影| 97精品国产露脸对白| 成人免费毛片aaaaa**| 国产在线看一区| 久久精品国产一区二区| 免费视频一区二区| 天天操天天综合网| 亚洲国产精品自拍| 亚洲午夜久久久| 亚洲一级片在线观看| 亚洲一二三四在线| 一区二区久久久久久| 亚洲精品五月天|