logo资料库

五子棋的实现(UML建模图).doc

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
2.1 棋盘类
2.2 模式类
摘要:这是一个利用 Visual C++开发出来的五子棋游戏软件,实现了人机对战 和网络上的人人对战。分别了采用人机对战模式和网络对弈模式,其中网络对弈 模式的设计采用了 C/S 模式, 下棋过程中双方可以悔棋、求和、认输,但须得 到对方的同意,另外还可以通过聊天进行信息交流;人机对战模式采用人机对弈 算法让电脑具有了人工智能,能与人 一决高下。本论文首先对 C++、MFC 和它的 运行机制、面向对象程序设计以及网络编程进行了简单介绍,然后对用 VC 开发 五子棋的整个过程作详细阐述,包括 程序的架构,类的构造,成员变量的说明 和成员函数的使用, 尤其对消息机制和消息说明做了重点介绍,最后对五子棋 游戏涉及的算法进行概述。 关键词:五子棋;C/S;VC;MFC 软件的总体架构如图 3 所示: 图 3 软件架构 考虑到整个的下棋过程(无论对方是电脑抑或其他网络玩家)可以分为:己方落 子、等待对方落子、对方落子、设置己方棋盘数据这一系列过程,因此一人游戏 类、 二人游戏类和棋盘类之间的关系参考了 AbstractFactory(抽象工厂)模 式,以实现对两个不同模块进行一般化的控制。[4] 2.1 棋盘类 整个架构的核心部分,类名为 CTable。封装了棋盘的各种可能用到的功能,如 保存棋盘数据、初始化、判断胜负等。用户操作主界面,主界面与 CTable 进行 交互来完成对游戏的操作。 2.2 模式类
用来管理人机对弈/网络对弈两种游戏模式,类名为 CGame。CGame 是一个抽象类, 经由它派生出一人游戏类 COneGame 和网络游戏类 CTwoGame,如图 4 所示。 图 4 CGame 类派生关系 这样,CTable 类就可以通过一个 CGame 类的指针,在游戏初始化的时候根据具 体游戏模式的要求实例化 COneGame 或 CTwoGame 类的对象;然后利用多态性[5], 使用 CGame 类提供的公有接口就可以完成不同游戏模式下的不同功能了。其中网
络对弈模式可实现悔棋、求和、认输等功能。流程图如 图 5 所示。
分享到:
收藏