发布网友 发布时间:2022-04-22 09:03
共1个回答
热心网友 时间:2024-02-03 03:55
利用已有的C++基础,结合对MFC的学习,进行窗口化设计。由于MFC提供了MFCppWizard自动生成框架。使得简单的编程更加简单,界面简洁。
这次用MFC设计了一个简单的五子棋游戏。可以进行简单的双人对战。目的在于更加熟悉MFC的使用来完成游戏的制作。再此期间,搜集大量信息,以及函数的源代码。不断进行整合,进行函数构造。
2主要功能
MFC的窗口更适合小型游戏的界面。五子棋可以说是再简单不过的小游戏了,不过其中确包含了大量的函数实现游戏的正常运转。
若要是游戏顺利进行,必须要有程序约束游戏规则。因此本游戏要解决,棋子所放位置的判断,棋子颜色的区分,以及玩家的输赢。解决这些问题,玩家便可以进行一场二*战了。
3. 设计过程中的经验与教训
本次游戏设计,所遇到的阻力比较大。经过多次返工。多次函数未能定义或实现。整个设计过程所学的东西也很多。以五子棋游戏为例。首先要知道其基本规则,并设法用不同的函数来解决规则的限定。设计过程中常常会出现函数已经构造,却未加定义的情况。做本游戏时,查看了大量资料。在棋盘的画法上有所纠结。是直接将棋盘背景图直接加入还是调用函数进行棋盘绘制都是要考虑的。
经过多次尝试,不断进行函数的调试和界面图标的设计。最终完成此次实验。虽然多次返工,虽然有一天从早上做到第二天凌晨5点,但最终的成功,使这些都变成浮云。不断尝试,永不放弃,最终一定成功。
4. 自己收获与不足
此次实验初期,本计划完成一个比较优秀的作品,但最终多种原因没有达到预期理想的界面。首先谈谈收获,个人认为此次MFC课程设计更适合简单游戏的设计。五子棋的界面简单,相对规则也不多。设计过程中,最大的收获要算程序的扩充,函数的调试。其实MFC已给出框架,所要做的便是填充内容。懂得了以位图的形式表示棋子,以cusor替换当前鼠标。还有鼠标热点的设置。在BOOL CMainFrame下构造函数以坐标的形式以改变棋盘大小。同时构造出一系列画棋盘,判断鼠标,判断输赢等函数。为函数添加数据成员并使其一一实现。对相应菜单进行属性更改并进行消息映射,建立响应函数。整个过程都得到了了解及应用。
同时,不足也很多,本游戏调用函数进行了棋盘绘制,使得界面过于简单。由于时间,能力等问题,未能加入人工智能实现人机对战。而且对于老师所给出的对话框的设计及应用也未能加入。棋子的位图都是自己绘制,并不十分美观。