已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高三化学金属元素及其化合物专题
- 谈儒强职业生涯规划与指导
- 【高一下】2024教学考结合考题:高一期末语文试卷含答案
- DB63T 2280-2024 草原防火阻隔带建设技术规程
- 初三学生毕业老师赠言3篇
- 初二周记500字5篇
- 40年同学聚会幽默感谢词3篇
- 几年后的家乡变化2篇
- 广东省梅州市中行中学高二数学文期末试题含解析
- 浙江省金华市澧浦中学高三数学理期末试卷含解析
- 小学二年级数学学情分析
- 燃气工程设计技术手册(第二版)
- 管理归零报告
- 部编版语文五年级下册《青山处处埋忠骨》观评课记录
- 环境监测持证上岗考核题库
- 铸铁材料特性及刀具应用金属加工材料培训资料
- 老旧小区改造脚手架专项施工方案
- J501-2钢筋溷凝土雨棚建筑构造
- 手机喇叭音腔设计要求
- 世界各国国籍代码及全称
- 通用技术说课:模型或原型的制作
评论
0/150
提交评论