五子棋MFC源码及注释

五子棋MFC源码及注释

ID:37327031

大小:493.71 KB

页数:32页

时间:2019-05-21

五子棋MFC源码及注释_第1页
五子棋MFC源码及注释_第2页
五子棋MFC源码及注释_第3页
五子棋MFC源码及注释_第4页
五子棋MFC源码及注释_第5页
资源描述:

《五子棋MFC源码及注释》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、五子棋五子棋是一种很受人们喜爱的游戏,它的规则简单,但玩法变化多端,富有趣味性,适合人们消遣。这里我们就来设计一个五子棋游戏。(一)(一)人对人游戏1.1.游戏实现人对人游戏,其实只是对游戏规则的实现,我们只是利用五子棋游戏的规则来编程,至于真正的游戏实现——计算机的“智能”算法,我们将在后面讲述。五子棋的规则很简单:1,判断是否能放下棋子(是否已经有了棋子);2,判断是哪种颜色下棋;3,判断是否已经结束(是谁赢?)。这些规则,我们将用相应的函数来实现。其它,我们还将介绍其它一些功能的实现。如鼠标的更换,工具栏和状态栏的编辑,类与类

2、之间的相互调用。新建工程3_1,选择单文档,在Step4of6中先中WindowsSockets复选框。如下图:图3-1-12.2.资源编辑由于我们这个程序出现的关于资源编辑的内容太多,我们具体介绍如下:见下图3-1-2,我们需要添加的有:图3-1-2黑白位图Bitmap以表示棋盘上面的棋子:IDB_BLACKIDB_WHITE黑白鼠标Cursor以替换当前鼠标:IDC_CURSOR1黑棋子IDC_CURSOR2白棋子说明:由于下棋时我们必须把鼠标热点设置在中间,点击下图(图3-1-3)最右边按扭,然后把鼠标移动到图像中你想设置为热

3、点的地方,按下鼠标左键。图3-1-3黑白图标Icon以显示在状态栏供以提示:IDI_BLACKIDI_WHITE说明:由于我们的图标支持256色,按下下图(图3-1-4)最右边按扭,选择Device里面显示的选项。图3-1-4菜单以供操作:开始:ID_START保存:ID_SAVE打开:ID_OPEN工具栏:如上图所示。说明:工具栏一般都是根据菜单选项而产生的,它的ID一般都能从菜单的ID中找到。3.3.变量函数首先,为了实现状态栏的应用,我们必须更改它的变量:在MainFrm.h文件里面,把CStatusBarm_wndStatu

4、sBar为public接着是在3_1View.h文件里面添加变量函数://两个鼠标HCURSORhcursorwhite;HCURSORhcursorblack;//棋盘数组intwzq[19][19];//colorwhiteTRUE时白棋下,否则黑棋下boolcolorwhite;//棋子位图CBitmapm_bmblack;CBitmapm_bmwhite;//保存文件voidSave();//检查是否结束voidover(CPointpoint);//鼠标操作afx_msgvoidOnLButtonUp(UINTnFlags

5、,CPointpoint);//鼠标图形更换afx_msgBOOLOnSetCursor(CWnd*pWnd,UINTnHitTest,UINTmessage);//菜单的开始afx_msgvoidOnStart();//菜单的保存afx_msgvoidOnSave();//菜单的打开afx_msgvoidOnOpen();4.4.具体实现棋盘大小设置:由于我们的游戏的棋盘大小是一定的,不能改变大小的,是应该符合要求的。在如下函数添加设置窗口大小的语句:BOOLCMainFrame::PreCreateWindow(CREATEST

6、RUCT&cs){if(!CFrameWnd::PreCreateWindow(cs))returnFALSE;//TODO:ModifytheWindowclassorstylesherebymodifying//theCREATESTRUCTcscs.dwExStyle=cs.dwExStyle

7、WS_EX_TOPMOST;//cs.style=WS_SYSMENU

8、WS_OVERLAPPED

9、WS_MINIMIZEBOX;//;//设置窗口大小:400*340cs.cx=450;cs.cy=500;returnTRUE;}初始

10、化变量:在构造函数里添加初始代码:CMy3_1View::CMy3_1View(){//TODO:addconstructioncodehere//Load鼠标图像和棋子位图hcursorblack=AfxGetApp()->LoadCursor(IDC_CURSOR1);hcursorwhite=AfxGetApp()->LoadCursor(IDC_CURSOR2);m_bmwhite.LoadBitmap(IDB_WHITE);m_bmblack.LoadBitmap(IDB_BLACK);//清理棋盘//数组值为0表示没有棋

11、子for(inti=0;i<19;i++)for(intj=0;j<19;j++)wzq[i][j]=0;//白棋先下colorwhite=true;}画棋盘:在OnDraw(CDC*pDC)函数中画棋盘,由于在游戏过程中有可能重画棋

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。