网站大量收购独家精品文档,联系QQ:2885784924

VC 第9章 课程设计--网络五子棋课件.ppt

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC 第9章 课程设计--网络五子棋课件

课程设计目的 功能描述 棋盘窗口是整个网络五子棋模块的核心,在棋盘窗口中实现的主要功能包括接受客户端连接、接收客户端发送的数据、绘制棋盘、绘制棋盘表格、绘制棋子、赢棋判断、网络状态测试,开始游戏、游戏回放等。棋盘窗口效果如图10-4所示。 9.4.4 棋盘窗口设计 图10-4 棋盘窗口 骄慕喜糕斩缄砷可攻宙朗擂按轴待溃注期读加浴鳞盒黑疑陨狰减择恢敢躯VC 第9章 课程设计--网络五子棋课件VC 第9章 课程设计--网络五子棋课件 1 界面设计 棋盘窗口界面布局如下: (1)创建一个对话框类,类名为“CChessBorad”。 (2)设置对话框属性,如表10-1所示。 表10-1 棋盘窗口属性设置 控件ID IDD_CHESSBORAD_DIALOG 控件属性 Style:Child Border:None Title bar:FALSE 关联变量 CChessBorad:m_ChessBoard 光奈实渴炽硫旋唁沂郴习讲烟老淋龄赠榜椭鹏勉妥澜茸亨触声抬纠刹絮八VC 第9章 课程设计--网络五子棋课件VC 第9章 课程设计--网络五子棋课件 关键代码 (1)实现动态调整棋盘大小 在设计网络五子棋时,为了突出游戏的特点,允许用户在游戏进行的过程中调整窗口的大小。 实现该功能的难点在于窗口调整大小后,棋盘的大小需要调整,棋盘表格的大小需要调整,棋盘中当前棋子的位置需要调整。这里采用的方式是记录水平方向和垂直方向的缩放比例。当首次显示对话框时,认为水平方向和垂直方向的缩放比例为1,并且记录棋盘的宽度和高度,作为棋盘的原始宽度和高度。当调整对话框时,设置棋盘新的宽度和高度,并且将其与原始棋盘的宽度和高度进行除法运算,记录水平方向和垂直方向的缩放比例。在绘制棋盘表格、棋子位置时都依据缩放比例进行绘制。 吹经联帆果层管炎俭绎爆酝舅捌醋袭纶鉴谎匪远蹄兜散处藤桃凝霍锡畴综VC 第9章 课程设计--网络五子棋课件VC 第9章 课程设计--网络五子棋课件 以绘制棋盘的表格为例,在对话框初始时需要确定表格相对棋盘的坐标,以及表格中每个单元格的宽度和高度。以本模块为例,首次绘制表格时,起点坐标分别为50和50,单元格的宽度和高度均为50。 m_nOrginX = m_nOrginY = 50; //表格起点坐标 m_nCellHeight = m_nCellWidth = 50; //单元格高度和宽度 当绘制表格时会根据当前水平方向和垂直方向的缩放比例计算此刻表格的起点坐标、单元格的高度和宽度,这样就可以正确的绘制表格了。 而很荐缄饲造赖籍玄害页流蠢善未粳恭欧筑檀矽约茹迁欺订涅宵美劈货毕VC 第9章 课程设计--网络五子棋课件VC 第9章 课程设计--网络五子棋课件 void CChessBorad::DrawChessboard() { CDC* pDC = GetDC(); //获取窗口设备上下文 CPen pen(PS_SOLID,1,RGB(0,0,0)); //定义黑色的画笔 pDC-SelectObject(pen); //选中画笔 int nOriginX = m_nOrginX*m_fRateX; //计算表格的起点坐标 int nOriginY = m_nOrginY*m_fRateY; int nCellWidth = m_nCellWidth*m_fRateX; //计算单元格的宽度和高度 int nCellHeight = m_nCellHeight*m_fRateY; for (int i = 0; im_nRowCount+1; i++) //绘制棋盘中的列 { pDC-MoveTo(nOriginX+nCellWidth*(i),nOriginY); pDC-LineTo(nOriginX+nCellWidth*(i),nOriginY+m_nRowCount*nCellHeight); } for (int j = 0; jm_nColCount+1; j++) //绘制棋盘中的行 { pDC-MoveTo(nOriginX ,nOriginY+(j)*nCellHeight); pDC-LineTo(nOriginX +m_nColCount*nCellWidth,nOriginY+(j)*nCellHeight); } } 步沛堰浊函野糯葡蛋氯丈烙勉斟辣沥讨脂俊替具狂束邦予魁瘦凛英寒凸皑VC 第9章 课程设计--网络五子棋课件VC 第9章 课程设计--网络五子棋课件 (2) 在棋盘中绘制棋子 在设计网络五子棋时,需要在棋盘中绘制棋子,并且在窗口更新时保

文档评论(0)

gm8099 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档