3。 游戏设计主体部分
3。1 总体框架
本论文设计的五子棋游戏下棋流程是玩家电脑轮流落子。
设计棋盘数据这个过程是为了电脑NPC的对弈模型形成。本论文通过在游戏中的一人游戏类别,二人游戏类别与棋盘类别的AbstractFactory模式关系,就是通过传统意义上的抽象工厂模式来实现每个版块之间的博弈控制和联系[5]。
游戏的总体框架如图1。
图1 游戏总体框架
游戏的流程图如图2。
图2 游戏流程图
3。1。1 棋盘设计
棋盘设计作为整个五子棋游戏的基础,是整个游戏最重要的部分之一,它的构成是设计本游戏的关键,CTable里面存储了那些胜负的判断数据、游戏的进行数据和实现初始化进行下一盘对弈等基本游戏功能。文献综述
3。1。2 游戏类
游戏类可分一人游戏类COneGame(人机对战)和两人游戏类CTwoGame(人人对战),这两个都是属于抽象工厂模式里面的所包含该的抽象类[6]。如图3:
图3 游戏类框架
3。2 棋盘类——Ctable
3。2。1核心函数说明
(1)网络连接标志——m_bConnected
此标记故名思议就是标识此WINDOWS是否有良好的网络连接,在游戏的人人对战模式下,五子棋游戏客户端Gobang_FiveChess1。0中来判断链接服务器的成功与否。实际上,这个标记也是另外一种区别游戏模式的直接体现。
(2)落子等待标志——m_bWait
由于落子期间都需要对手(包括电脑NPC和网络玩家)的思考时间来等待对方的下一步落子,而标志m_bWait就是为了这个功能的实现设计的。用来体现其等待状态。当其执行状态为ture时,玩家是不能落子的,实际上也落子不了。来:自[优E尔L论W文W网www.youerw.com +QQ752018766-
在人人对战模式下,有一些互动,比如说悔棋操作、和棋这一类公用的认为操作请求信息。在点击这类功能按钮后,需要一定的时间来等待对方的答复,是否同意玩家的这类请求,这期间整个棋盘是固定状态的,任何一方都落不了子。在收到对方的是否同意这些请求后,游戏响应回来的指针将恢复游戏棋盘的固定形态,即结束那种等待状态,直接执行那类晦气,和棋功能。
(3)网络套接字——m_conn
在人人对战模式中,需要有m_sock和m_conn这两个套字对象。一个是实现服务器的监听功能——m_sock,另一个是实现游戏客户端的网络传送功能——m_conn。
(4)棋盘数据——m_data
本文设计的是一个15*15 的棋盘,所以他的数据组也是15*15 的,并且是二位数组。这些数组都是存储每一步在棋盘上落子的棋盘数据。更具体的讲,对于每一步的落子,落黑子用0来标志,落白子用1来标志,无落子用-1来标志。
(5)游戏指针——m_pGame
这类指针指表示CTable在实现一个游戏功能的时候的不同对应行为的对象实体。其他性功能可以参考下文“游戏模式“内容。
VC++五子棋游戏的设计(3):http://www.youerw.com/jisuanji/lunwen_98000.html