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

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

?? mychessview.cpp

?? 一個用MFC做的象棋游戲,可以聯網雙人對下,
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
// MyChessView.cpp : implementation of the CMyChessView class
//

#include "stdafx.h"
#include "MyChess.h"
#include "Array.h"

//加載DLL
#pragma comment(lib,"ArrayDll")
#include "MyChessDoc.h"
#include "MyChessView.h"
#include "CClientSOcket.h"
#include "CServerSocket.h"
#include "afxsock.h"
#include "talkDiag.h"
#include "MainFrm.h"
#include<windows.h>
#include<mmsystem.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
#define  BUFFERSIZE 1024
#pragma  comment(lib,"winmm.lib")
// CMyChessView
extern CMyArr theArr;
TCHAR FilePath[256];
int  ReviewSteps;
int LastId;
bool IsOpen=false;
bool IsEnd=true;



IMPLEMENT_DYNCREATE(CMyChessView, CView)

BEGIN_MESSAGE_MAP(CMyChessView, CView)
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView::OnFilePrintPreview)
	ON_BN_CLICKED(IDC_START_BUTTON,OnStartButtonClicked)
	ON_WM_LBUTTONDOWN()
	ON_COMMAND(ID_HELP_CONECT, &CMyChessView::OnHelpConect)
	ON_COMMAND(ID_OPERATING_TALK, &CMyChessView::OnOperatingTalk)
	ON_COMMAND(ID_FILE_NEW, &CMyChessView::OnFileNew)
	ON_COMMAND(ID_OPERATING_REGRET, &CMyChessView::OnOperatingRegret)

 	ON_BN_CLICKED(ID_BtReview,OnBtReview)
    ON_BN_CLICKED(ID_BtNext,OnBtNext)
    ON_BN_CLICKED(ID_BtPrev,OnBtPrev)

//	ON_COMMAND(ID_FILE_SAVE_AS, &CMyChessView::OnFileSaveAs)
ON_COMMAND(ID_FILE_SAVEAS, &CMyChessView::OnFileSaveas)
ON_COMMAND(ID_FILE_OPEN32776, &CMyChessView::OnFileOpen32776)
//ON_COMMAND(ID_OPERATING_NEXT, &CMyChessView::OnOperatingNext)
//ON_COMMAND(ID_OPERATING_PREV, &CMyChessView::OnOperatingPrev)
ON_WM_CREATE()
END_MESSAGE_MAP()

// CMyChessView construction/destruction

CMyChessView::CMyChessView()
{
	// TODO: add construction code here
	m_pServerSocket=NULL;
	m_pClientSocket=NULL;
   m_bIfLButtonDownMe=true;//默認表示是自己的單擊
 //  m_bIfAFinished=false;
 //  m_bIfBFinished=false;
   m_bIfACanGo=true;
   m_TalkDlg=false;
   m_bRegretFrom=false;
   m_bIfStart=false;
   m_bHeStart=false;
   m_bAgreeRegret=false;//初始化為不允許回棋 
   m_bMessFrom=false;//表示一開始信息不是從外面發過來的
   setJISHIToZero=true;
}

CMyChessView::~CMyChessView()
{
}
void CMyChessView::OnStartButtonClicked()
{

	if (!m_pClientSocket)
	{
		AfxMessageBox("請先連接");
		return;
	}
	if (m_bIfStart)
	{
		return;
	}
	//AfxMessageBox("sds");
	m_bIfStart=true;
	userMSG lButtonDownMsg;
	lButtonDownMsg.msgType=6;//表示請求開始游戲
	//m_pClientSocket->Send(&point, sizeof(CPoint));
	m_pClientSocket->Send((char *)&lButtonDownMsg,sizeof(lButtonDownMsg));
}
BOOL CMyChessView::PreCreateWindow(CREATESTRUCT& cs)
{
	return CView::PreCreateWindow(cs);
}

void CMyChessView::AcceptConnect()
{
	CClientSocket* socket = new CClientSocket(this);
	//接受客戶端的連接
	if (m_pServerSocket->Accept(*socket))
	{
		m_pClientSocket=socket;
		AfxMessageBox("connect");
	}
		//////////////////////////////////////////////////////////////////////////

		///以后準備在這里加東西
}
void CMyChessView::ReceiveData(CClientSocket* socket)
{

    userMSG recvMSG;
	  CPoint *point=new CPoint;
	  int result=socket->Receive((char *)&recvMSG,sizeof(recvMSG));
	
	 UINT uRegret;
	 UINT uStart;
	 jishi=false;
	switch(recvMSG.msgType)
		{
		case 1://單擊消息
			m_bIfLButtonDownMe=false;
			m_bIfACanGo=true;
			m_bMessFrom=true;//表示這個消息是對方發過來的
			memcpy(point,recvMSG.msgContent,sizeof(CPoint));
			OnLButtonDown(MK_SHIFT,*point);
			break;
		case 2://聊天消息
			if (!m_TalkDlg)
			{
				m_myTalk=new talkDiag(this);
				m_myTalk->Create(IDD_TALK);
				m_myTalk->ShowWindow(SW_SHOW);
				m_TalkDlg=true;
				CString talkContent;
				//recvMSG.msgContent[result-4]='\0';
				talkContent.Format("%s",recvMSG.msgContent);
				talkContent="對方說:"+talkContent;
				int i=m_myTalk->m_content.GetCount();
			    m_myTalk->m_content.InsertString(i,talkContent);

			}
			else
			{
				CString talkContent;
				//recvMSG.msgContent[result-4]='\0';
				talkContent.Format("%s",recvMSG.msgContent);
				talkContent="對方說:"+talkContent;
				int i=m_myTalk->m_content.GetCount();
				m_myTalk->m_content.InsertString(i,talkContent);
			}
			break;
		case 3://悔棋消息
		    uRegret =MessageBox("Do you agree?","Regret",MB_YESNO);
			if (uRegret==IDYES)
			{
				/*
				m_bRegretFrom=true;
								m_bAgreeRegret=true;*/
				
				Regret();
				userMSG agreeRegret;
				agreeRegret.msgType=4;//表示答應悔棋
                m_pClientSocket->Send((char *)&agreeRegret,sizeof(agreeRegret));
			}
			else if (uRegret==IDNO)
			{
				/*m_bAgreeRegret=false;*/
				userMSG agreeRegret;
				agreeRegret.msgType=5;//表示不答應悔棋
				m_pClientSocket->Send((char *)&agreeRegret,sizeof(agreeRegret));
			}
			break;
		case 4://表示對方答應悔棋
			Regret();
			break;
		case 5:
			AfxMessageBox("對方不答應悔棋");
			//表示對方不答應悔棋
			break;
		case 6://表示收到對方開始游戲的請求
			uStart=MessageBox("Do you start?","Request",MB_YESNO);
			if (uStart==IDYES)
			{
				userMSG agreeRegret;
				agreeRegret.msgType=7;//表示答應開始游戲
				//AfxMessageBox("好了游戲開始啦");
				SetTimer(1,300,NULL);
				SetTimer(2,1000,NULL);
                if (!jishi)
                {
					::AfxGetMainWnd()->SetTimer(1,1000,NULL);
					::AfxGetMainWnd()->KillTimer(2);
					jishi=true;
					setJISHIToZero=false;
                }
				m_pClientSocket->Send((char *)&agreeRegret,sizeof(agreeRegret));
				m_bHeStart=true;
				m_bIfStart=true;
			}
			else if (uStart==IDNO)
			{
				userMSG agreeRegret;
				agreeRegret.msgType=8;//表示不答應開始游戲
				m_pClientSocket->Send((char *)&agreeRegret,sizeof(agreeRegret));
				m_bHeStart=false;
			}
			break;
		case 7://表示對方答應開始游戲
			m_bHeStart=true;
			//AfxMessageBox("好了游戲開始啦,你是A方,你先下");
			SetTimer(1,300,NULL);
			SetTimer(2,1000,NULL);
			if (!jishi)
			{
				::AfxGetMainWnd()->SetTimer(1,1000,NULL);
				::AfxGetMainWnd()->KillTimer(2);
				jishi=true;
				setJISHIToZero=false;
			}
			
			break;
		case 8:
			//對方不答應開始游戲
			m_bHeStart=false;
			AfxMessageBox("等會現在對方沒開始");
			break;

		}


// CMyChessView drawing
}
void CMyChessView::OnDraw(CDC* pDC)
{

	CMyChessDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if (!pDoc)
		return;

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

    pDoc->m_cpPaper.Draw(pDC);
    pDoc->m_chessMap.Draw(pDC);

	if (setJISHIToZero)
	{
		CMainFrame *pMainFrame=(CMainFrame*)AfxGetMainWnd();
		CClientDC dc=CClientDC(this);
		pMainFrame->Timer1->SetToZero(&dc,0);
		pMainFrame->Timer2->SetToZero(&dc,300);

	}
}


// CMyChessView printing

BOOL CMyChessView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CMyChessView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CMyChessView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}


// CMyChessView diagnostics

#ifdef _DEBUG
void CMyChessView::AssertValid() const
{
	CView::AssertValid();
}

void CMyChessView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CMyChessDoc* CMyChessView::GetDocument() const // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyChessDoc)));
	return (CMyChessDoc*)m_pDocument;
}
#endif //_DEBUG


// CMyChessView message handlers

void CMyChessView::OnLButtonDown(UINT nFlags, CPoint point)
{
	
	/*
	CString he;
		he.Format("x: %d, y: %d",point.x,point.y);
		MessageBox(he);*/
	
	// TODO: Add your message handler code here and/or call default
  /*
    CString str;
  	str.Format(_T("x:%d,Y:%d"),point.x,point.y);
  	AfxMessageBox(str);*/
	CClientDC *pDC=new CClientDC(this);
	if (!m_pClientSocket)
	{
		AfxMessageBox("請先連接");
		return;
	}
	if (!m_bIfStart||!m_bHeStart)
	{
		AfxMessageBox("請先選擇開始");	
		return;
	}
  if (true==m_bIfACanGo)
  {

	if (m_pClientSocket)
	{
		
		if (true==m_bIfLButtonDownMe&&GetDocument()->m_nWhoPlayNow==1)
		{
			//char *buffer[sizeof(CPoint)];
			//memset(buffer,0,sizeof(CPoint));
			//memcpy(buffer,&point,sizeof(point));
			//m_pClientSocket->Send(&point,sizeof(CPoint));
			uOCol=(point.x-GetDocument()->m_cpPaper.m_btBeginX+(GetDocument()->m_cpPaper.bm.bmWidth/8)/2)/(GetDocument()->m_cpPaper.bm.bmWidth/8);
			uORow=(point.y-GetDocument()->m_cpPaper.m_btBeginY+(GetDocument()->m_cpPaper.bm.bmHeight/9)/2)/(GetDocument()->m_cpPaper.bm.bmHeight/9);

			Npoint.x=GetDocument()->m_cpPaper.m_btBeginX-(GetDocument()->m_cpPaper.bm.bmWidth/8)/2+(8-uOCol)*(GetDocument()->m_cpPaper.bm.bmWidth/8);
			Npoint.y=GetDocument()->m_cpPaper.m_btBeginY-(GetDocument()->m_cpPaper.bm.bmHeight/9)/2+(9-uORow)*(GetDocument()->m_cpPaper.bm.bmHeight/9);
			userMSG lButtonDownMsg;
			lButtonDownMsg.msgType=1;
			memcpy(lButtonDownMsg.msgContent,&Npoint,sizeof(Npoint));
			//m_pClientSocket->Send(&point, sizeof(CPoint));
			m_pClientSocket->Send((char *)&lButtonDownMsg,sizeof(lButtonDownMsg));
		}
	}
	CClientDC dc(this);
	int nPosX=0,nPosY=0;
	//CChessMan *pBuffer;
	//CRect rect;
   CChessMan *pCurrentChess= GetDocument()->m_chessMap.FindStatePos(point,nPosX,nPosY);
  /*
   CString str;
    
     str.Format(_T("nPosX: %d,nPosY %d"),GetDocument()->m_cpPaper.bm.bmWidth,GetDocument()->m_cpPaper.bm.bmHeight);
       AfxMessageBox(str);
    */
  
  // CSoldier tempChess;
   /*if(pCurrentChess)//鼠標當前點擊的位置有子存在
   {*/
	   if (1==GetDocument()->m_nWhoPlayNow)//表示是A方下了
	   {
		   
		   if (m_bMessFrom==true)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲美州欧州综合国| 日韩成人午夜精品| 成人午夜看片网址| 国产农村妇女精品| 日韩av不卡一区二区| 欧美一级搡bbbb搡bbbb| 毛片基地黄久久久久久天堂| 色综合色综合色综合| 2023国产一二三区日本精品2022| 亚洲卡通欧美制服中文| 欧美午夜精品一区| 蜜桃av噜噜一区二区三区小说| 色婷婷国产精品综合在线观看| www久久精品| av在线综合网| 午夜精品久久久久久久99樱桃 | 久久久777精品电影网影网| 国产精品亚洲第一区在线暖暖韩国| 欧美三级中文字| 麻豆91精品视频| 国产视频一区在线观看| 91黄色免费看| 九九**精品视频免费播放| 国产精品免费看片| 国产剧情一区二区| 亚洲天堂久久久久久久| 91精品午夜视频| 国产成人综合网| 亚洲成av人片一区二区梦乃| 91国偷自产一区二区三区观看| 国产精品久久久久影院老司| 欧美高清dvd| 岛国av在线一区| 中文字幕免费不卡在线| 欧美日韩精品三区| gogogo免费视频观看亚洲一| 国产精品无人区| 欧美老肥妇做.爰bbww视频| 国产成人精品亚洲午夜麻豆| 亚洲成av人片www| 国产精品久久久久久久久久久免费看 | 偷偷要91色婷婷| 中文字幕国产精品一区二区| 欧美猛男gaygay网站| 成人免费视频一区二区| 日本午夜精品一区二区三区电影| 欧美一区二区黄| 99久久精品免费精品国产| 日产国产欧美视频一区精品| 亚洲品质自拍视频| 国产精品午夜在线| 精品国产乱码久久久久久影片| 麻豆精品视频在线观看视频| 亚洲美女电影在线| 国产精品乱码人人做人人爱| 99re这里都是精品| 国产精品538一区二区在线| 婷婷综合另类小说色区| 一区二区三区在线免费视频| 在线观看亚洲精品视频| 丁香激情综合五月| 国产精品一品二品| 精品一区二区在线视频| 中文无字幕一区二区三区| 日韩欧美在线不卡| 欧美日韩高清一区二区| 欧美色精品天天在线观看视频| 麻豆国产精品官网| 日本不卡高清视频| 日韩极品在线观看| 亚洲成人精品在线观看| 亚洲夂夂婷婷色拍ww47 | 91黄色免费观看| 97久久精品人人澡人人爽| 粉嫩嫩av羞羞动漫久久久 | 国产丝袜在线精品| 久久综合丝袜日本网| 26uuu久久综合| 久久一区二区视频| 国产欧美日韩在线| 欧美亚洲高清一区二区三区不卡| 九九精品视频在线看| 韩国女主播成人在线观看| 一区二区三区波多野结衣在线观看 | 国产一区91精品张津瑜| 亚洲欧美日韩一区二区三区在线观看| 欧美日韩国产美女| 精品国产三级a在线观看| 日韩午夜小视频| 精品久久国产字幕高潮| 久久精品欧美一区二区三区不卡 | 精彩视频一区二区| 精品一区二区免费看| 狠狠色丁香婷婷综合久久片| 国产一区二区三区四| 一二三区精品视频| 天天免费综合色| 亚洲欧洲av在线| 依依成人综合视频| 丝袜a∨在线一区二区三区不卡| 中文字幕制服丝袜一区二区三区| 日韩精品一区二区三区视频播放| 91在线播放网址| 欧美性videosxxxxx| 91精品午夜视频| 欧美日韩一区二区三区高清| 91精品国产欧美一区二区| 97se亚洲国产综合自在线观| 91福利国产成人精品照片| 欧美一级在线免费| 国产日韩欧美a| 亚洲一区二区三区免费视频| 久久99热狠狠色一区二区| 大白屁股一区二区视频| 国产一区二区91| 色呦呦国产精品| 精品久久五月天| 自拍偷拍国产精品| 免费亚洲电影在线| 成人福利视频网站| 91精品国产91久久综合桃花| 久久久久高清精品| 性做久久久久久免费观看欧美| 一区二区日韩电影| 精品一区二区三区欧美| 久草热8精品视频在线观看| 91在线免费播放| 欧美精品一区二区三区四区| 国产精品乱人伦中文| 美女视频免费一区| 国产在线麻豆精品观看| 韩日精品视频一区| 欧美亚洲国产一区二区三区| 久久久国产精华| 日韩国产欧美三级| 人人狠狠综合久久亚洲| 色综合久久99| 欧美激情资源网| 综合欧美亚洲日本| 国产高清在线观看免费不卡| 大陆成人av片| 精品免费视频一区二区| 亚洲国产一区二区视频| 男男视频亚洲欧美| 91浏览器在线视频| 欧美日韩国产综合视频在线观看| 欧洲亚洲精品在线| 国产精品乱码一区二区三区软件| 亚洲欧美国产高清| 成人精品视频一区二区三区| 久久久精品国产免费观看同学| 亚洲视频香蕉人妖| 懂色av噜噜一区二区三区av| 久久久精品黄色| 国产一区二区福利视频| 精品国产一区二区三区不卡| 日本人妖一区二区| 8v天堂国产在线一区二区| 国产亚洲精品免费| 国产美女久久久久| 亚洲精品一区二区三区在线观看| 久久久亚洲精品一区二区三区| 一色屋精品亚洲香蕉网站| 国产成人精品亚洲777人妖 | 中文字幕精品一区二区三区精品| 2020国产精品| 国产美女视频一区| 精品久久久影院| 日韩电影在线观看网站| 日韩免费观看高清完整版| 亚洲精品中文在线影院| 不卡的电影网站| 日韩欧美在线综合网| 首页国产丝袜综合| 欧美图片一区二区三区| 亚洲视频香蕉人妖| 欧美日韩在线免费视频| 精品国产a毛片| 捆绑调教一区二区三区| 亚洲韩国精品一区| 欧美另类videos死尸| 一区二区三区免费网站| 天堂影院一区二区| 欧美午夜理伦三级在线观看| 国产欧美精品一区| 亚洲激情第一区| 在线免费观看日本欧美| 一区二区三区高清在线| 欧美一区二区三区免费在线看| 久久精品人人做| 国产高清一区日本| 欧美高清一级片在线观看| 97精品视频在线观看自产线路二 | 91浏览器在线视频| 亚洲私人黄色宅男| 国产成人在线视频免费播放| 国产免费观看久久| 免费成人深夜小野草| 精品久久久久久久久久久久久久久 | 欧美人与性动xxxx|