c++做的象棋源代码_第1页
c++做的象棋源代码_第2页
c++做的象棋源代码_第3页
c++做的象棋源代码_第4页
c++做的象棋源代码_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/ / #include / class CPlate int m_ndx; / int m_ndy; / int m_nLeft; / int m_nTop; int m_nRight; int m_nBottom; public: CPlate(); void ShowPlate(CDC *pDC); void DrawConer(CDC *pDC, int row, int col, int type); CPoint GetPosition(int col, int row); ; / / : CPlate:CPlate() m_ndx = 50; m_ndy = 45; m_nLeft = 198; m_nTop = 30; m_nRight = m_nLeft+m_ndx*8; m_nBottom = m_nTop+m_ndy*9; / void CPlate:ShowPlate(CDC *pDC) / CPen penRed2(PS_SOLID,2,RGB(255,0,0); CPen *pOldPen = pDC-SelectObject( for(int i=0; iMoveTo(m_nLeft, m_nTop+i*m_ndy); pDC-LineTo(m_nRight, m_nTop+i*m_ndy); for(i=0; iMoveTo(m_nLeft+i*m_ndx, m_nTop); pDC-LineTo(m_nLeft+i*m_ndx, m_nBottom); else pDC-MoveTo(m_nLeft+i*m_ndx, m_nTop); pDC-LineTo(m_nLeft+i*m_ndx, m_nTop+4*m_ndy); pDC-MoveTo(m_nLeft+i*m_ndx, m_nTop+5*m_ndy); pDC-LineTo(m_nLeft+i*m_ndx, m_nBottom); / pDC-SelectObject(pOldPen); CPen penRed1(PS_SOLID,1,RGB(255,0,0); pOldPen = pDC-SelectObject( pDC-MoveTo(m_nLeft+3*m_ndx, m_nTop); pDC-LineTo(m_nLeft+5*m_ndx, m_nTop+2*m_ndy); pDC-MoveTo(m_nLeft+3*m_ndx, m_nTop+2*m_ndy); pDC-LineTo(m_nLeft+5*m_ndx, m_nTop); pDC-MoveTo(m_nLeft+3*m_ndx, m_nBottom); pDC-LineTo(m_nLeft+5*m_ndx, m_nBottom-2*m_ndy); pDC-MoveTo(m_nLeft+3*m_ndx, m_nBottom-2*m_ndy); pDC-LineTo(m_nLeft+5*m_ndx, m_nBottom); pDC-SelectObject(pOldPen); / , DrawConer(pDC, 2, 1, 0); DrawConer(pDC, 2, 7, 0); DrawConer(pDC, 3, 0, 1); DrawConer(pDC, 3, 2, 0); DrawConer(pDC, 3, 4, 0); DrawConer(pDC, 3, 6, 0); DrawConer(pDC, 3, 8, 2); DrawConer(pDC, 7, 1, 0); DrawConer(pDC, 7, 7, 0); DrawConer(pDC, 6, 0, 1); DrawConer(pDC, 6, 2, 0); DrawConer(pDC, 6, 4, 0); DrawConer(pDC, 6, 6, 0); DrawConer(pDC, 6, 8, 2); / , void CPlate:DrawConer(CDC *pDC, int row, int col, int type) CPen penRed1(PS_SOLID,1,RGB(255,0,0); CPen *pOldPen = pDC-SelectObject( if(type = 0 | type = 1) pDC-MoveTo(m_nLeft+col*m_ndx+ 3, m_nTop+row*m_ndy-10); pDC-LineTo(m_nLeft+col*m_ndx+ 3, m_nTop+row*m_ndy-3); pDC-LineTo(m_nLeft+col*m_ndx+10, m_nTop+row*m_ndy-3); pDC-MoveTo(m_nLeft+col*m_ndx+ 3, m_nTop+row*m_ndy+10); pDC-LineTo(m_nLeft+col*m_ndx+ 3, m_nTop+row*m_ndy+3); pDC-LineTo(m_nLeft+col*m_ndx+10, m_nTop+row*m_ndy+3); if(type = 0 | type = 2) pDC-MoveTo(m_nLeft+col*m_ndx- 3, m_nTop+row*m_ndy-10); pDC-LineTo(m_nLeft+col*m_ndx- 3, m_nTop+row*m_ndy-3); pDC-LineTo(m_nLeft+col*m_ndx-10, m_nTop+row*m_ndy-3); pDC-MoveTo(m_nLeft+col*m_ndx- 3, m_nTop+row*m_ndy+10); pDC-LineTo(m_nLeft+col*m_ndx- 3, m_nTop+row*m_ndy+3); pDC-LineTo(m_nLeft+col*m_ndx-10, m_nTop+row*m_ndy+3); pDC-SelectObject(pOldPen); / CPoint CPlate:GetPosition(int col, int row) CPoint point; point.x = m_nLeft+col*m_ndx; point.y = m_nTop+row*m_ndy; return point; / / #define BING 1 #define PAO 2 #define JU 3 #define MA 4 #define XIANG 5 #define SHI 6 #define JIANG 7 class CStone BOOL m_bRed; / BOOL m_bSelected; / int m_nCol; / int m_nRow; / CRect m_rectStone; / BOOL m_bShow; / CString m_sName; / int m_nR; / int m_nType; / public: CStone () CStone (BOOL red, int col, int row, LPCSTR name, int type, CPlate void ShowStone(CDC *pDC); void MoveTo(int col, int row, CPlate CRect GetRect()return m_rectStone; int GetType()return m_nType; BOOL BeKilled(int col, int row) return m_bShow BOOL MouseOnStone(CPoint point) return m_rectStone.PtInRect(point) void KillIt()m_bShow = FALSE; void SelectStone()m_bSelected = !m_bSelected; ; / / CStone:CStone(BOOL red, int col, int row, LPCSTR name, int type, CPlate m_bSelected = FALSE; m_bRed = red; m_nCol = col; m_nRow = row; m_sName = name; m_nType = type; m_nR = 23; CPoint pos = plate.GetPosition(col, row); m_rectStone = CRect(pos.x-m_nR, pos.y-m_nR, pos.x+m_nR, pos.y+m_nR); / void CStone:ShowStone(CDC *pDC) if(m_bShow) / / CPen *pOldPen, penNormal(PS_SOLID, 3, RGB(120, 120, 120); CBrush *pOldBrush, brushNormal, brushSelected; brushNormal.CreateSolidBrush(RGB(255, 255, 0); brushSelected.CreateSolidBrush(RGB(127, 127, 0); pOldPen = pDC-SelectObject( / if(m_bSelected) pOldBrush = pDC-SelectObject( else pOldBrush = pDC-SelectObject( / CRect r(m_rectStone); r.left +; r.top +; r.right -; r.bottom-; pDC-Ellipse(r); pDC-SelectObject(pOldPen); pDC-SelectObject(pOldBrush); / CFont *pOldFont, fontStone; fontStone.CreateFont(40, 0, 0, 0, 400, FALSE, FALSE, 0, OEM_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, “); pOldFont = pDC-SelectObject( int tx = m_rectStone.left+6; int ty = m_rectStone.top+6; pDC-SetBkMode(TRANSPARENT); / pDC-SetTextColor(RGB(m_bRed?255:0, 0, 0); pDC-TextOut(tx, ty, m_sName); pDC-SelectObject(pOldFont); / void CStone:MoveTo(int col, int row, CPlate m_nCol = col; m_nRow = row; CPoint pos = plate.GetPosition(col, row); m_rectStone = CRect(pos.x-m_nR, pos.y-m_nR, pos.x+m_nR, pos.y+m_nR); / class CMyWnd: public CFrameWnd CPlate m_Plate; / CStone m_StoneList32; / BOOL m_bRedTurn; / BOOL m_bSelectOne; / int m_nWhichStone; / CRect m_rectInfo; / public: CMyWnd()InitGame(); void InitGame(); void ShowInfo(CDC *pDC); BOOL KillSelfStone(int col, int row, BOOL red); int KillEnemy(int col, int row, BOOL red); void MoveStone(CPoint point); void SelectStone(CPoint point); void Go(CPoint); BOOL MoveTo(int, int); protected: afx_msg void OnPaint(); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); DECLARE_MESSAGE_MAP() ; / BEGIN_MESSAGE_MAP(CMyWnd,CFrameWnd) ON_WM_PAINT() ON_WM_LBUTTONDOWN() END_MESSAGE_MAP() / / void CMyWnd:InitGame() m_bRedTurn = TRUE; m_bSelectOne = FALSE; m_rectInfo = CRect(315, 480, 515, 550); m_StoneList 0 = CStone(TRUE, 0, 0, “, 3, m_Plate); m_StoneList 1 = CStone(TRUE, 1, 0, “, 4, m_Plate); m_StoneList 2 = CStone(TRUE, 2, 0, “, 5, m_Plate); m_StoneList 3 = CStone(TRUE, 3, 0, “, 6, m_Plate); m_StoneList 4 = CStone(TRUE, 4, 0, “, 7, m_Plate); m_StoneList 5 = CStone(TRUE, 5, 0, “, 6, m_Plate); m_StoneList 6 = CStone(TRUE, 6, 0, “, 5, m_Plate); m_StoneList 7 = CStone(TRUE, 7, 0, “, 4, m_Plate); m_StoneList 8 = CStone(TRUE, 8, 0, “, 3, m_Plate); m_StoneList 9 = CStone(TRUE, 1, 2, “, 2, m_Plate); m_StoneList10 = CStone(TRUE, 7, 2, “, 2, m_Plate); m_StoneList11 = CStone(TRUE, 0, 3, “, 1, m_Plate); m_StoneList12 = CStone(TRUE, 2, 3, “, 1, m_Plate); m_StoneList13 = CStone(TRUE, 4, 3, “, 1, m_Plate); m_StoneList14 = CStone(TRUE, 6, 3, “, 1, m_Plate); m_StoneList15 = CStone(TRUE, 8, 3, “, 1, m_Plate); m_StoneList16 = CStone(FALSE, 0, 9, “, 3, m_Plate); m_StoneList17 = CStone(FALSE, 1, 9, “, 4, m_Plate); m_StoneList18 = CStone(FALSE, 2, 9, “, 5, m_Plate); m_StoneList19 = CStone(FALSE, 3, 9, “, 6, m_Plate); m_StoneList20 = CStone(FALSE, 4, 9, “, 7, m_Plate); m_StoneList21 = CStone(FALSE, 5, 9, “, 6, m_Plate); m_StoneList22 = CStone(FALSE, 6, 9, “, 5, m_Plate); m_StoneList23 = CStone(FALSE, 7, 9, “, 4, m_Plate); m_StoneList24 = CStone(FALSE, 8, 9, “, 3, m_Plate); m_StoneList25 = CStone(FALSE, 1, 7, “, 2, m_Plate); m_StoneList26 = CStone(FALSE, 7, 7, “, 2, m_Plate); m_StoneList27 = CStone(FALSE, 0, 6, “, 1, m_Plate); m_StoneList28 = CStone(FALSE, 2, 6, “, 1, m_Plate); m_StoneList29 = CStone(FALSE, 4, 6, “, 1, m_Plate); m_StoneList30 = CStone(FALSE, 6, 6, “, 1, m_Plate); m_StoneList31 = CStone(FALSE, 8, 6, “,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论