关键词不能为空

当前您在: 主页 > 英语 >

软件系统设计报告

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-11 12:27
tags:

-

2021年2月11日发(作者:经济解释)






















齐天大圣之中国象棋



































:


计算机科学与技术




班级


:





04-6




小组成员:












周川祥


















































指导教师:




张博、徐慧












称:



















2007



6


月< /p>





徐州




目录



一、



概述



.............. .................................................. .................................................. ........... - 1 -


1


引言



.............. .................................................. .................................................. ....... - 1 -


2


项目开发计划


..................... .................................................. .................................. - 1 -


2.1


开发周期


........ .................................................. ............................................ - 1 -


2.2


详细计划


........ .................................................. ............................................ - 1 -


二、概要设计


..................... .................................................. .................................................. .... - 2 -


1


网络对战平台


..................... .................................................. .................................. - 2 -


2


人机对弈



................................................. .................................................. .............. - 2 -


3



游戏流程


....................... .................................................. ...................................... - 2 -


三、详细设计


..................... .................................................. .................................................. .... - 4 -


1


、基本数据结构定义


...... .................................................. ....................................... - 4 -


1.1


棋子与棋子坐标


...... .................................................. ................................... - 4 -


2.2


棋子移动于悔棋


...... .................................................. ................................... - 4 -


2


、基本走法判断和走法产生


... .................................................. .............................. - 5 -


2.1


走法判断


......... .................................................. ............................................ - 5 -


2.2


走法产生与搜索


...... .................................................. ................................... - 5 -


3


、网络版



.................................................. .................................................. ............... - 5 -


3.1


网络消息定义


..................... .................................................. ....................... - 5 -


3.2


网络套接字设计


.................... .................................................. .................... - 6 -


3.3


网络消息处理


..................... .................................................. ....................... - 6 -


4


、单机版



.................................................. .................................................. ............... - 6 -


4.1


估值函数


....................... .................................................. ............................. - 6 -


4.1.1


棋子的基本值与附加值


. .................................................. ................. - 6 -


4.1.2



棋子的灵活性与棋盘控制


..... .................................................. ............ 7


4.1.3



棋子关系的评估


.................... .................................................. ............ 7


4.1.4



返回给搜索接口


.................... .................................................. ............ 8


4.2


搜索函数


....................... .................................................. .................................. 8


4.2.1



博弈树


........................ .................................................. ........................ 8


4.2.2



alpha- beta


搜索



.

................................................ .................................... 8


5


、其他功能


.......... .................................................. .................................................. .... 10


5.1


悔棋与还原


.................................................. ............................................ 10


5.2


保存残局


......... .................................................. ....................................... 10


5.3


动态显示


CPU


和内存使用情况



.


... .................................................. ...... 10


6


、界面



......................................... .................................................. ............................... 10


6.1


绘制棋子


....................... .................................................. ........................ 10


6.2


皮肤


......................... .................................................. .............................. 11


四、项目测试


..................... .................................................. .................................................. ....... 11


1


、网络版



....................................... .................................................. ............................. 11


2


、单机版



.................................................. .................................................. .................. 11


五、用户使用说明


................... .................................................. .................................................. . 11


六、问题分析


................ .................................................. .................................................. ............ 11


1


、程序执行效率


........ .................................................. ................................................ 11


2


、内存管理的时间开销


.. .................................................. .......................................... 12


3


、程序智商


.......... .................................................. .................................................. .... 12



2



七、小结与体会


.................... .................................................. .................................................. .... 13



3



齐天大圣之中国象棋



-------


软件系统设计



一、






1


引言



前几学期,

我们学习了计算机专业的几门核心课程,


如数据结构、


操作 系统


等。


但是所学的仅仅停留在理论层次,

没有系统的将理论于实践结合起来,


缺乏


动手能力。



针对以上问题,本项目主要是运用数据结构与算法、计算机网络及< /p>


TCP/IP


与编程等基础知识,结合人工智能、博弈论相关理论 ,用


Visual C++ 6.0


开发平

台来开发“齐天大圣之中国象棋”


,本项目融合人机对弈和网络版于一体,用户


可以随心所欲的在单机版与网络版中切换,还可以登录游戏大厅(简易版)

< br>,选


择好友对战。



2


项目开发计划



2.1


开发周期



8


周(


2007



5

月~


2007



7


月)



2.2


详细计划



11



13






复习有关数据结构与算法和网络编程基本方法,学习博弈论相


关理论



14



15






编制象棋中各个棋子的走法和攻防判断,

初步开发出网络版雏


形,给出评估函数。



16











完善网络版,运用前期学习的博弈 树和人工智能方法,给出


简易搜索函数



17







优化搜索函数,进一步做好细节部分,进行项目测试



18











整体把握,进一步完善




- 1 -



二、概要设计



1


网络对战平台



网络版主要功能如下:



1


、聊天功能



2


、判断走棋是否正确,程序自动恢复用户走错的棋位。


< /p>


3


、如果一方走棋超时,给出提示后程序自动走一步。

< p>


4


、任意一方可以提出悔棋请求,待对方同意后 即可悔棋



5


、任意一方可以提出还原 悔棋请求,待对方同意后即可还原



6


、根据用户需要更改皮肤(包括整体颜色和背景图片)



2


人机对弈



人机对弈主要功能如下:



1


、对当前的棋局进行估值,判断双方的势力优劣



2


、根据当前棋局估值结果,寻找一步最优的走法



3


、调用搜索线程,根据当前的搜索结果走一步棋



4


、具有悔棋和还原功能



5


、动态显示当前搜索使用


CPU

< p>
和内存情况,评价搜索的效率



6


、根据用户要求改变下棋的难度


< /p>


7


、根据用户需要更改皮肤(包括整体颜色和背景图片)



3



游戏流程



以下是本游戏的流程图:




- 2 -



中国象棋游戏总流程图



开始游戏



网络对战



人机对弈



初始化棋盘



创建游戏



加入游戏



用户走一步


连接服务器



连接服务器



一方输掉



创建本地服务器


并等待玩家加入



玩家加入



建立初始连接











入< /p>


悔一步



Y/N


悔棋



N


继续走棋



Y


再来一局



Y


开始对战



一方输掉



N


继续走棋



Y


再来一局



Y


N


N


悔棋



Y


N


对方同意



悔一步棋



Y


游戏结束






- 3 -



三、详细设计



1


、基本数据结构定义



1.1


棋子与棋子坐标



typedef enum //


棋子定义



{



NoChessMan=0,//


没 有棋子



//






























Bla ckKing,BlackRook,BlackHouse,BlackGunner,BlackAssis t,BlackBishop,


BlackSoldier,



//





























Red King,RedRook,RedHouse,RedGunner,RedAssist,RedBisho p,RedSoldier,




}ChessMan;


//


棋子坐标 ,由于考虑到搜索时内存可能会占用很多,为了尽量节省内存,


采用了

< br>byte


类型,


byte


类型的 定义为:


typedef BYTE



unsigned char



struct ChessPos


{




BYTE x;



BYTE y;


}



2.2


棋子移动于悔棋



//


棋子的移动



struct ChessMove


{



int ChessID;



ChessPos pFrom;



ChessPos pTo;


};


//


正在移动的棋子



struct MovingChess


{



BYTE nChessID;



POINT ptMovePoint;



- 4 -



};



//


悔棋时需要的数据结构




struct UnDoMove


{



ChessMove cmChessMove;



short nChessID;//


被吃掉的棋子



};


//


棋子类型定义



typedef enum{BLACKCHESS,REDCHESS};




2


、基本走法判断和走法产生



2.1


走法判断


主要工作在


CMoveGenerator


类的成员函数< /p>


IsValided()


函数中实现,分别对

每个棋子进行判断。此处省略。



2.2


走法产生与搜索



在进行走法产生的时候,


往往伴随着搜索进行。


对于 一个局面的所有直接后


继,


有两种选择:


一次产生一种走法然后搜索之;


或者一次产生其所有走法然后


搜索之。


由于存在着剪枝算法,


对一个局面的某一走法搜索之后 往往可能不再需


要搜索其他后继,


也就是说:

< br>可能不用产生全部走法就能够完成搜索。


一次产生


一种走 法看起来似乎更有效率。


但是,


由于剪枝算法的剪枝效率很大程 度上依赖


于节点的排列顺序,


往往一次产生所有节点,


然后以某种方法调整其排列顺序会


使搜索效率大大提高。所以,在实际使 用中,先一次产生一个局面的全部走法,


然后调整其搜索顺序。



实际上,


为了减少运算量,


事先建立的 小型数据库,


将所有的走法都保存在


数据库中,然后检索数据库 ,这样会效率高一些。



3


、网络版



3.1


网络消息定义



定义在


CMyMessage


类中。在


CMyMessage


中,成员函数




virtual void Serialize(CArchive& ar);


来将网络消息先序列化后再进行 传输,接受方受到消息在调用


Serialize


()函




- 5 -

-


-


-


-


-


-


-


-



本文更新与2021-02-11 12:27,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/636358.html

软件系统设计报告的相关文章