7五子棋游戏的核心算法设计与实现(毕业论文).docxVIP

7五子棋游戏的核心算法设计与实现(毕业论文).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1-1棋盘窗口类的设计思想通过分析用户的需求后,可以得到棋盘窗口类应支持如下几个功能:能够显示棋盘和棋子图片;能够接收用户鼠标输入,并把相应的坐标转化成为行列数据填充到棋子数组中;能够处理来自网络通信的各种数据;能够调用规则类对象来判断胜负;能够支持清空游戏棋盘上的棋子显示。棋盘棋盘和棋子的显示要把棋盘和棋子显示出来,分为如下几步过程:得到当前绘图DC句柄,并保存当前绘图环境到内存DC中;载入一张棋盘BMP图片,并在主界面对话框的客户区绘画出来;遍历棋子数组,根据数组中的数据,把响应颜色的棋子图片会出来;更新内存DC到当前绘图DC中。这样就可以把棋盘和棋子图片显示出来。鼠标输入数据的处理要实现鼠标输入数据的处理,可以分为如下几步:得到鼠标在当前窗口中点击的左键鼠标;根据棋盘每格的大小得到当前坐标在棋子二维数组中的相应行和列数据。判断数组中对应的行和列的数据是否是有效数据。如果是有效数据,说明有棋子已经在当前位置落下,这里就不能再落子,提示并等待用户下一次点击。如果是无效数据,就把这个数据填写为相应的颜色数据;把对应的行列和颜色数据发送出去;调用规则类判断当前胜负状态,如果获胜直接提示网络数据的处理当接收的网上来的数据时,要实现数据处理功能,可分为如下几步:把接收到的数据包进行分解;判断收到的数据类型,并转到相应的执行流程;根据流程结果进行处理。棋盘上棋子显示数据的清空要清空棋子显示数据,只需要把棋子数组全部清空即可。1-2棋盘类的实现有了支持的功能列表,就需要声明一个棋盘类,代码如下:棋盘类的声明#ifndef __BOARD_H__#define __BOARD_H__#includestdafx.hclass CBoard : public CWnd//éù?÷???ìàà2¢1?óD?ì3Dó?CWndàà {private:CImageListm_iml;//??×óí???intm_color;//í??ò??é?±íBOOL m_bWait;//μè′y±ê??BOOL m_bOldWait;//?-μè′y×′ì?public:CBoard();virtual ~CBoard();void RestoreWait();//???′μè′y×′ì?void Clear(BOOL bWait);//???????ìvoid SetColor(int color);//éè??μ±?°??×ó??é?intGetColot()const;//μ?μ?μ±?°??×ó??é?void SetWait(BOOL bWait);//éè??μè′y×′ì?void SetData(intx,inty,int color);//éè????×óêy?Yvoid DrawGame();//oí??void Draw(intx,inty,int color);//?-??×óvoid Receive();//?óê?′|àíoˉêyvoid Over();//?D????·?ê¤?o?á1?oˉêyprotected:afx_msg void Onpaint();//??è???í?oˉêyafx_msg void OnLButtonUp(UINT nFlags,CPoint point);//×ó?ü?ìó|oˉêyDECLARE_MESSAGE_MAP()};#endif从上面的代码中可以看到,这个棋盘类已经包含了前面设计的内容,每一个功能都由一个成员函数来实现。例如棋盘和棋子的显示函数、鼠标左键接收的处理函数等。声明完类的结构和成员后,现在就来看这个类的基础函数实现,代码如下:#include FiveChessDlg.h#include Board.h#include Resource.h#include ConectData.h#include Rule.h#define MAX_LEN 256//定义最大长度//////////////////////////////////////////////////////////////////////// Construction/Destruction//////////////////////////////////////////////////////////////////////CBoard::CBoard(){//初始化图像列表m_iml.Create(24,24,ILC_COLOR24 | ILC_MASK,0,2);//载入黑白棋子掩码位图CBitmapbmpBlack,bmpWhite;bmpBlack.LoadBitmap(IDB_BMP_BLACK);m_iml.Add(bmpBlack,0xff00ff);bmpWhite.LoadBitmap(

文档评论(0)

考试资料文库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档