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

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

?? mychessview.cpp

?? 一個用MFC做的象棋游戲,可以聯網雙人對下,
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
{
	
	if (m_pServerSocket)
		{
			return;
		}
	
	m_pServerSocket = new CServerSocket(this);
	//CSocket *pSocket=new CSocket;
	//BOOL A=pSocket->Create(1000);
	
	BOOL B=m_pServerSocket->Create(1000);
		if (!B)
		{
			MessageBox("套接字創建失敗");
			delete m_pServerSocket;
			m_pServerSocket = NULL;
			DWORD error=GetLastError();
			int i=error;
			return ;
		}
		
		DWORD   dwOp   =   1;   
		if(m_pServerSocket->IOCtl(FIONBIO,   &dwOp))   
			TRACE("set   nonblocking   successfully!\n"); 
		if (!m_pServerSocket->Listen())
			MessageBox("監聽失敗");
	
}

void CMyChessView::OnOperatingTalk()
{
	// TODO: Add your command handler code here
	if (!m_TalkDlg)
	{
		m_myTalk=new talkDiag(this);
		m_myTalk->Create(IDD_TALK);
		m_myTalk->ShowWindow(SW_SHOW);
		m_TalkDlg=true;
	}
}

void CMyChessView::OnFileNew()
{
	m_bIfLButtonDownMe=true;//默認表示是自己的單擊
	m_bIfACanGo=true;
	m_TalkDlg=false;
	// TODO: Add your command handler code here
	
	m_bIfACanGo=true;
	m_TalkDlg=false;
	m_bRegretFrom=false;
	m_bIfStart=false;
	m_bHeStart=false;
	m_bAgreeRegret=false;//初始化為不允許回棋 
	m_bMessFrom=false;//表示一開始信息不是從外面發過來的
	setJISHIToZero=true;
	GetDocument()->m_chessMap.Clear();
	GetDocument()->OnNewDocument();
	InvalidateRect(NULL,true);
}

void CMyChessView::OnOperatingRegret()
{
	// TODO: Add your command handler code here
	if (CChessMan::m_stcChosenID!=-1)
	{
		AfxMessageBox("you can't regret now");
		return ;
	}
	
	userMSG lButtonDownMsg;
	lButtonDownMsg.msgType=3;//表示回棋
	m_pClientSocket->Send((char *)&lButtonDownMsg,sizeof(lButtonDownMsg));
	//UINT a=MessageBox("regret","dou you agree",MB_YESNO);
}
void CMyChessView::Regret()
{
	if (!m_bIfStart||!m_bHeStart)
	{
		return;
	}
	if (GetDocument()->GoBack())
	{
		if (GetDocument()->m_nWhoPlayNow==1)
		{
			GetDocument()->m_chessMap.m_nSteps--;
			GetDocument()->m_nWhoPlayNow=2;
			::AfxGetMainWnd()->KillTimer(1);
			::AfxGetMainWnd()->SetTimer(2,1000,NULL);
			
		}
		else if (GetDocument()->m_nWhoPlayNow==2)
		{
			GetDocument()->m_chessMap.m_nSteps--;
			GetDocument()->m_nWhoPlayNow=1;
			m_bIfACanGo=true;
			::AfxGetMainWnd()->SetTimer(1,1000,NULL);
			::AfxGetMainWnd()->KillTimer(2);

			
		}
	/*
		m_bRegretFrom=false;
			m_bAgreeRegret=false;*/
	    CRect rect(0,0,500,600);
		InvalidateRect(&rect,TRUE);
	}

}




bool CMyChessView::SaveAs(HWND hWnd)
{
	bool bResult;
	OPENFILENAME ofn_SaveFile;
	ZeroMemory(FilePath,256);          //清空內存
	ZeroMemory(&ofn_SaveFile,sizeof(OPENFILENAME));
	ofn_SaveFile.lStructSize=sizeof(OPENFILENAME);
	ofn_SaveFile.hwndOwner=hWnd;
	ofn_SaveFile.hInstance=NULL;
	ofn_SaveFile.nMaxFile=256;     //指定lpstrFile 緩沖的大小
	ofn_SaveFile.nMaxFileTitle=256;
	ofn_SaveFile.lpstrFilter="Picture Files(*.CHE)\0*.CHE\0All Files\0*.*\0\0";      //文件選擇的過濾條件
	ofn_SaveFile.lpstrDefExt="che";       //默認擴展名
	ofn_SaveFile.lpstrFile=FilePath;   //指向包含初始化文件名編輯控件使用的文件名的緩沖
	ofn_SaveFile.Flags=OFN_OVERWRITEPROMPT;


	ofstream ofs_OutFile;
	bResult=GetSaveFileName(&ofn_SaveFile);
	ofs_OutFile.open(FilePath);
	int steps;
	steps=GetDocument()->m_chessMap.m_nSteps;
	ofs_OutFile<<steps<<endl;
	for (int i=0;i<steps;i++)
	{
		ofs_OutFile<<GetDocument()->m_CSave.VToFile[i];
	}

	ofs_OutFile.close();
	return bResult;
}

bool CMyChessView::Open(HWND hWnd)
{
	bool bResult;
	OPENFILENAME ofn_OpenFile;	
	ZeroMemory(FilePath,256);          //清空內存
	ZeroMemory(&ofn_OpenFile,sizeof(OPENFILENAME));
	ofn_OpenFile.lStructSize=sizeof(OPENFILENAME);
	ofn_OpenFile.hwndOwner=hWnd;
	ofn_OpenFile.hInstance=NULL;
	ofn_OpenFile.nMaxFile=256;     //指定lpstrFile 緩沖的大小
	ofn_OpenFile.nMaxFileTitle=256;
	ofn_OpenFile.lpstrFilter="Picture Files(*.CHE)\0*.CHE\0All Files\0*.*\0\0";      //文件選擇的過濾條件
	ofn_OpenFile.lpstrDefExt="che";       //默認擴展名
	ofn_OpenFile.lpstrFile=FilePath;   //指向包含初始化文件名編輯控件使用的文件名的緩沖
	ofn_OpenFile.Flags=OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST;

	bResult=GetOpenFileName(&ofn_OpenFile);



	if (bResult)
	{
		ReviewSteps=0;
		ifstream InFile;
		InFile.open(FilePath);
		int steps;
		InFile>>steps;
		ReviewSteps=steps;
		for (int i=0;i<GetDocument()->m_CSave.size();i++)
		{
			GetDocument()->m_CSave.pop();
		}
		StSaveInfo HelpOpen;
		for (int i=0;i<steps;i++)
		{
			InFile>>HelpOpen.uRoleId>>HelpOpen.uTargetId>>HelpOpen.uOldRow>>HelpOpen.uOldCol>>HelpOpen.uNewRow>>HelpOpen.uNewCol;
			GetDocument()->m_CSave.push(HelpOpen);
		}
		IsOpen=true;
		m_BtNext.EnableWindow(TRUE);
		InvalidateRect(NULL,TRUE);
	}

	return bResult;
}
//void CMyChessView::OnFileSaveAs()
//{
//	// TODO: Add your command handler code here
//}

void CMyChessView::OnFileSaveas()
{
	// TODO: Add your command handler code here
	//SaveAs((HWND)::GetForegroundWindow());
	SaveAs((HWND)((CFrameWnd*)AfxGetApp()->m_pMainWnd->m_hWnd));
}

void CMyChessView::OnFileOpen32776()
{
	// TODO: Add your command handler code here
}

//void CMyChessView::OnOperatingNext()
//{
//	// TODO: Add your command handler code here
//
//
//	
//}

//void CMyChessView::OnOperatingPrev()
//{
//	// TODO: Add your command handler code here
//	
//}

int CMyChessView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;

	CRect rect1(530,230,610,260);
	CRect rect2(530,270,610,300);
	CRect rect3(530,310,610,340);
	// TODO:  Add your specialized creation code here
	m_BtReview.Create("調入復盤",WS_CHILD|WS_VISIBLE|BS_DEFPUSHBUTTON,rect1,this,ID_BtReview);
	m_BtNext.Create("下一步",WS_CHILD|WS_VISIBLE|BS_DEFPUSHBUTTON,rect2,this,ID_BtNext);
	m_BtPrev.Create("上一步",WS_CHILD|WS_VISIBLE|BS_DEFPUSHBUTTON,rect3,this,ID_BtPrev);


	m_BtPrev.EnableWindow(FALSE);
	m_BtNext.EnableWindow(FALSE);
	return 0;
}


void CMyChessView::OnBtReview()
{
	//打開復盤
	GetDocument()->m_chessMap.m_nSteps=0;
	Open((HWND)((CFrameWnd*)AfxGetApp()->m_pMainWnd->m_hWnd));
	GetDocument()->OnNewDocument();
	CClientDC dc=CClientDC(this);

	GetDocument()->m_cpPaper.Draw(&dc);
	CChessMap *d=&GetDocument()->m_chessMap;
	GetDocument()->m_chessMap.Draw(&dc);
	m_pClientSocket=NULL;
	m_bIfLButtonDownMe=true;//默認表示是自己的單擊
}

void CMyChessView::OnBtPrev()
{
	StSaveInfo HelpBack;
	CChessMan *pOriginalChessMan;
	CChessMan* pTargetChessMan;
	//GetDocument()->m_chessMap.m_nSteps--;
	int StepNumPrev=GetDocument()->m_chessMap.m_nSteps-1;

	if (!IsEnd&&StepNumPrev>=0)
	{
		m_BtPrev.EnableWindow(TRUE);
		HelpBack=GetDocument()->m_CSave.VToFile[StepNumPrev];
		GetDocument()->m_chessMap.m_nSteps--;

		UINT uOldChessX,uOldChessY,uTargetChessX,uTargetChessY;

		if (GetDocument()->FindIndex(HelpBack.uRoleId,uOldChessX,uOldChessY))
		{
			pOriginalChessMan=GetDocument()->myChessMap[9-uOldChessX][8-uOldChessY];//找到動的棋子的指針
		}
		if (GetDocument()->FindIndex(HelpBack.uTargetId,uTargetChessX,uTargetChessY))
		{
			pTargetChessMan=GetDocument()->myChessMap[9-uTargetChessX][8-uTargetChessY];
		}
		else
		{
			pTargetChessMan=NULL;
		}
		pOriginalChessMan->ResetPos(HelpBack.uOldCol,HelpBack.uOldRow);

		if (pTargetChessMan!=NULL)
		{
			pTargetChessMan->ResetPos(HelpBack.uNewCol,HelpBack.uNewRow);
		}

		GetDocument()->m_chessMap.TheStateOfAllChess[HelpBack.uOldRow][HelpBack.uOldCol]=pOriginalChessMan;
		GetDocument()->m_chessMap.TheStateOfAllChess[HelpBack.uNewRow][HelpBack.uNewCol]=pTargetChessMan;

		//GetDocument()->m_chessMap.Show();
		CClientDC dc(this);

		CString str;
		str.Format("已走步數: %d",GetDocument()->m_chessMap.m_nSteps);
		dc.TextOut(0,0,str);

		(*pOriginalChessMan).InvalidateMyRect(&dc,HelpBack.uNewRow,HelpBack.uNewCol);
		GetDocument()->m_cpPaper.Draw(&dc);
		GetDocument()->m_chessMap.Draw(&dc);
		if(StepNumPrev==-1)
		{
			IsEnd=true;
			m_BtPrev.EnableWindow(FALSE);
		}
	} 
	else
	{
		IsEnd=true;
		InvalidateRect(NULL,TRUE);
		m_BtPrev.EnableWindow(FALSE);
	}	
}

void CMyChessView::OnBtNext()
{
	StSaveInfo HelpMove;
	int StepNum=GetDocument()->m_chessMap.m_nSteps;
	if (IsOpen==true&&StepNum<ReviewSteps)
	{
		HelpMove=GetDocument()->m_CSave.VToFile[StepNum];

		IsEnd=false;//上一步
		GetDocument()->m_chessMap.m_nSteps++;

		CChessMan *pNextChessMan= GetDocument()->m_chessMap.FindStatePos(HelpMove.uOldRow,HelpMove.uOldCol);
		pNextChessMan->ResetPos(HelpMove.uNewCol,HelpMove.uNewRow);
		GetDocument()->m_chessMap.ResetStatePos(HelpMove.uOldRow,HelpMove.uOldCol,NULL);
		CChessMan *pTargetChessMan= GetDocument()->m_chessMap.FindStatePos(HelpMove.uNewRow,HelpMove.uNewCol);
		GetDocument()->m_chessMap.ResetStatePos(HelpMove.uNewRow,HelpMove.uNewCol,pNextChessMan);
		if (!pTargetChessMan)
		{
			::PlaySound("res\\go.wav",NULL,SND_FILENAME|SND_ASYNC);
		}
		else
		{
			::PlaySound("res\\eat.wav",NULL,SND_FILENAME|SND_ASYNC);
		}

		CClientDC dc=CClientDC(this); 

		CString str;
		str.Format("已走步數: %d",GetDocument()->m_chessMap.m_nSteps);
		dc.TextOut(0,0,str);

		pNextChessMan->InvalidateMyRect(&dc,HelpMove.uOldRow,HelpMove.uOldCol);
		GetDocument()->m_cpPaper.Draw(&dc);
		CChessMap *d=&GetDocument()->m_chessMap;
		GetDocument()->m_chessMap.Draw(&dc);

		LastId=HelpMove.uTargetId;
		m_BtPrev.EnableWindow(TRUE);
	}
	else
	{

		::PlaySound("res\\gamewin.wav",NULL,SND_FILENAME|SND_ASYNC);
		if (LastId==16)
		{
			::AfxMessageBox("A wins!");
		} 
		else if (LastId==32)
		{
			::AfxMessageBox("B wins");
		}
		else
		{
			::AfxMessageBox("Tie");
		}
		m_BtNext.EnableWindow(FALSE);
		m_BtPrev.EnableWindow(TRUE);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线精品一区二区夜色| 在线日韩国产精品| 九九久久精品视频| 日韩一区欧美二区| 午夜精品一区在线观看| 亚洲成人动漫av| 亚洲五月六月丁香激情| 亚洲综合免费观看高清完整版在线 | 91在线无精精品入口| 国产成人av一区| 国产成人av影院| 成人免费观看男女羞羞视频| 国产99一区视频免费| 国产麻豆成人精品| 高清国产午夜精品久久久久久| 国产精品羞羞答答xxdd| 国产大陆精品国产| 成人av在线一区二区三区| 成人精品在线视频观看| aaa欧美大片| 91成人在线观看喷潮| 欧美日韩在线播放三区| 5858s免费视频成人| 欧美不卡123| 欧美激情一区二区在线| 亚洲欧洲另类国产综合| 亚洲午夜在线电影| 日本麻豆一区二区三区视频| 久久99日本精品| 丁香激情综合国产| 91成人在线免费观看| 日韩一区二区三区在线| 久久精品男人天堂av| 136国产福利精品导航| 亚洲国产精品影院| 久久精品99久久久| 成人动漫中文字幕| 欧美在线观看视频一区二区三区| 91精品婷婷国产综合久久| 久久久精品国产免费观看同学| 中文字幕一区二区三区在线播放| 亚洲国产一区二区视频| 99精品欧美一区二区三区小说| 欧美中文字幕亚洲一区二区va在线| 日韩一区二区三区视频在线| 国产拍欧美日韩视频二区| 亚洲国产日韩a在线播放| 免费在线观看视频一区| 成人av中文字幕| 91精品欧美一区二区三区综合在| 久久久久久久久久久黄色| 亚洲精选免费视频| 久久精工是国产品牌吗| 91网上在线视频| 欧美videossexotv100| 一区二区三区精品在线| 国产在线播放一区三区四| 91久久精品一区二区| 精品国产欧美一区二区| 亚洲影视在线播放| 国产不卡一区视频| 欧美电影影音先锋| 国产精品乱码一区二区三区软件| 日韩成人av影视| 91丝袜国产在线播放| 日韩欧美中文一区二区| 亚洲精品国产无天堂网2021| 韩国精品久久久| 欧美精品在线一区二区三区| 国产精品第13页| 久久99日本精品| 欧美调教femdomvk| 亚洲欧洲日韩av| 国内国产精品久久| 91麻豆精品91久久久久久清纯| 亚洲三级电影网站| 国产黑丝在线一区二区三区| 日韩精品自拍偷拍| 亚洲国产欧美一区二区三区丁香婷| 国产传媒一区在线| 精品人伦一区二区色婷婷| 亚洲一区二区精品久久av| 顶级嫩模精品视频在线看| 日韩欧美中文字幕制服| 国产精品国产三级国产普通话蜜臀| 九色porny丨国产精品| 欧美一二三区在线观看| 日日欢夜夜爽一区| 欧美亚洲一区三区| 亚洲欧美另类小说| av网站免费线看精品| 中文字幕 久热精品 视频在线| 国内一区二区视频| 精品国产乱码久久久久久闺蜜 | 麻豆高清免费国产一区| 在线观看三级视频欧美| 一区二区三区四区乱视频| www.激情成人| 中文字幕第一区| 国产福利一区二区三区视频在线| 精品精品国产高清一毛片一天堂| 日韩电影免费一区| 91精品国产aⅴ一区二区| 偷拍日韩校园综合在线| 制服.丝袜.亚洲.中文.综合| 性欧美疯狂xxxxbbbb| 欧美精品一二三区| 日韩专区一卡二卡| 91精品国产综合久久久久久漫画 | 亚洲免费电影在线| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国产剧情一区在线| 久久精品在线观看| 国产美女精品在线| 亚洲国产精品精华液ab| 成人久久久精品乱码一区二区三区| 国产欧美日韩另类一区| 成人午夜在线播放| 亚洲精品视频在线观看免费| 在线视频一区二区三| 亚洲风情在线资源站| 91精品国产高清一区二区三区| 另类小说一区二区三区| 久久女同性恋中文字幕| 白白色 亚洲乱淫| 亚洲激情男女视频| 欧美日韩大陆一区二区| 蜜桃久久精品一区二区| 久久综合狠狠综合久久综合88| 国产成人亚洲综合a∨猫咪| 国产精品不卡一区二区三区| 在线视频一区二区三区| 麻豆久久一区二区| 国产亚洲精久久久久久| 91麻豆精品秘密| 秋霞电影网一区二区| 久久久久久久久久看片| 日本精品视频一区二区| 美女视频黄久久| 国产精品卡一卡二| 精品污污网站免费看| 国产在线视频精品一区| 亚洲天堂中文字幕| 欧美精品久久一区二区三区| 国产一区二区免费在线| 亚洲欧美日本韩国| 日韩一区二区三区视频| 不卡的电影网站| 人人精品人人爱| 中文字幕一区视频| 91超碰这里只有精品国产| 国产成人亚洲综合色影视| 亚洲一卡二卡三卡四卡无卡久久| 日韩欧美中文字幕制服| 99精品视频在线观看免费| 日韩国产成人精品| 中文字幕一区二区三区蜜月| 欧美日韩黄视频| 成人性生交大片免费看中文| 午夜精品久久久久久久久| 日本一区二区电影| 欧美肥胖老妇做爰| av不卡免费电影| 精品影院一区二区久久久| 亚洲精品亚洲人成人网在线播放| 日韩欧美三级在线| 色www精品视频在线观看| 国产精品一区二区在线观看网站| 亚洲综合在线免费观看| 久久久久久久久久久电影| 69av一区二区三区| 91无套直看片红桃| 国产精品一区二区久久精品爱涩| 亚洲国产va精品久久久不卡综合| 国产午夜亚洲精品不卡| 欧美一区二区私人影院日本| 99国产精品国产精品毛片| 国产精品亚洲一区二区三区在线| 亚洲国产wwwccc36天堂| 亚洲人成伊人成综合网小说| 久久久久久电影| 日韩精品一区二区三区视频在线观看| 91美女片黄在线观看| 国产精品99久久久久久似苏梦涵 | 国产成人亚洲综合a∨猫咪| 午夜久久久影院| 亚洲最色的网站| 中文字幕欧美一区| 久久九九久久九九| 精品第一国产综合精品aⅴ| 91精品国产综合久久蜜臀| 欧美日韩精品高清| 欧美性猛交xxxx黑人交| 99免费精品在线观看| 成人免费av在线| 成人夜色视频网站在线观看| 国产精品18久久久久久久网站| 久久99精品久久久久久国产越南| 日本vs亚洲vs韩国一区三区二区 | 亚洲欧洲av另类|