- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
mfc五子棋课程实践报告解读
课程实践报告
作品名称:基于MFC的五子棋小游戏
一、设计目的
掌握利用Visual C++进行程序设计的能力,学会调试一个较长程序的基本方法。通过设计用户图形界面,用户通过鼠标就可以操作游戏。
二、程序思路介绍:
1.建立一个MFC基本对话框,添加内容如下:
Bitmap的IDB_BITMAP1、IDB_BITMAP2分别表示棋盘上的黑棋和白棋,IDB_BITMAP3表棋盘背景图。
2.主要功能实现
主要功能为两部分:画棋盘,棋子落在棋盘上;判断游戏结束规则。
a.画棋盘通过添加函数void CChessDlg::OnPaint(),由于游戏中可能重画棋盘,而那时棋盘上有棋子,所以函数也要有画棋子的语句。
b.鼠标按下时,棋子落在棋盘上,同时若棋子落下符合结束要求时,再次点击鼠标时会弹出提示窗口。实现功能程序如下:
c.若棋盘已被棋子下满,则提示平局,用full()函数实现;五个同色棋子连在一起,则游戏结束,用isover()函数实现。在oldchess.cpp中编写这两个函数。
d.添加棋盘背景图片,将IDB_BITMAP3设为棋盘的背景,实现功能在OnEraseBkgnd()函数中。
d.添加按钮“开始游戏”,“结束游戏”。实现函数如下:
四、作品界面介绍:
打开程序,棋盘界面显示如下:
点击开始游戏,弹出提示窗口,如下图:
点击“确定”,点击棋盘,即可开始下棋:
当棋盘下满,而双方都没有结束下棋,则平局。
五、设计感想及问题
1、存在问题
棋盘利用lineto,moveto语句画出,但是棋盘边界线却只有一边可以完全下棋,调试程序与语句未能改变。判断下棋结束要有四个五子棋排列方式,开始时循环语句返回值设置不对,导致程序始终无法正常运行,后来通过调试程序完成了下棋结束判断功能。目前程序只是人与人单次下棋,还未能实现人机下棋,该算法后续学习后会继续改进。
2、设计体会
通过本次设计作业我们学习到很多关于c语言程序的实践只是,对程序设计这一课程与相关技术有了更深的理解。在程序设计编写中我们将这学期理论学习的知识与实践联系起来了,在设计程序过程中融汇贯通,目前我们对于c语言的应用的还不是十分的熟练,但我们会在现在和今后的学习中的到更深的掌握与理解。本次程序设计虽然知识设计一个五子棋小游戏,我们学会了利用程序语句画线,掌握了开发一个简单游戏的基本方法,学会了调试较长程序的基本方法。
总而言之,在本次程序实践中我们学到了很多,增强了程序编写实践能力,在程序设计过程中一边设计一边思索,也明白了编程是在实践中才能融汇贯通学会的,理论要明白,但更要学会实际编程方法。感谢老师给了我们这个机会,在今后的学习中我们会更加努力。
六、参考资料
[Visual.C++.范例开发大全].陈国建???扫描版???
Visual??C++MFC棋牌游戏编程实例???人民邮电出版社
文档评论(0)