如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
2005届本科毕业设计说明书第页共NUMPAGES29页(361)五子棋设计【摘要】本论文主要阐述以面向对象的程序开发语言VC++为开发工具,设计一个五子棋游戏。本系统是个小型游戏,可以单机使用,也可以网络两个人游戏,也可以和电脑进行游戏。论文首先介绍了开发背景及开发语言的介绍。然后介绍设计该游戏的框架结构,然后介绍了程序的设计过程,以及程序的相关算法。(HYPERLINK"http://www.jlunwen.com/index13.htm"\t"_blank"→返回上级目录)关键词:游戏,系统,图片,VISUALC++目录1引言11.1五子棋介绍11.2开发背景11.3开发环境及运行环境11.3.1开发环境11.3.2运行环境12软件架构22.1棋盘类22.2游戏模式类33棋盘类——CTable43.1主要成员变量说明43.1.1网络连接标志43.1.2棋盘等待标志43.1.3网络套接字43.1.4棋盘数据43.1.5游戏模式指针53.2主要成员函数说明53.2.1套接字的回调处理53.2.2清空棋盘53.2.3绘制棋子53.2.4左键消息63.2.5绘制棋盘63.2.6对方落子完毕63.2.7设置游戏模式63.2.8胜负的判断74游戏模式类84.1主要成员变量说明94.1.1棋盘指针94.1.2落子步骤94.2主要成员函数说明94.2.1悔棋操作94.2.2初始化操作94.2.3接收来自对方的消息104.2.4发送落子消息104.2.5胜利后的处理105消息机制115.1消息机制的架构115.2各种消息说明115.2.1落子消息125.2.2悔棋消息125.2.3同意悔棋消息135.2.4拒绝悔棋消息135.2.5和棋消息135.2.6同意和棋消息135.2.7拒绝和棋消息145.2.8认输消息145.2.9聊天消息145.2.10对方信息消息155.2.11再次开局消息155.2.12同意再次开局消息156主要算法166.1判断胜负166.2人机对弈算法186.2.1获胜组合196.2.2落子后处理196.2.5防守策略236.2.6选取最佳落子247几点补充说明258心得体会26参考文献27致谢281引言1.1五子棋介绍五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“連珠”,英译为“Renju”,英文称之为“Gobang”或“FIR”(FiveinaRow的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。1.2开发背景当前网络上流传的五子棋游戏功能并不尽善尽美,其中最主要的问题就是人机对战和网络对战不能够一起实现,所以我决定开发[1]一个既能够人机对战,又能够进行网络对战的五子棋系统。1.3开发环境及运行环境1.3.1开发环境Intel®Pentium®42.0GHz,512M内存,80G硬盘Microsoft®Windows™2000ProfessionalMicrosoft®VisualC++6.0Microsoft®DeveloperNetworkforVisualStudio.NET2003VisualAssistX10.1.1301.01.3.2运行环境Intel®Pentium®2及以上处理器,32M以上内存,4G以上硬盘Microsoft®Windows™9X/NT操作系统800*600或以上的屏幕分辨率2软件架构软件的总体架构如图2.1:二人游戏类一人游戏类游戏类指针棋盘类主界面用户图2.1软件架构考虑到整个的下棋过程(无论对方是电脑抑或其他网络玩家)可以分为:己方落子、等待对方落子、对方落子、设置己方棋盘数据这一系列过程,因此一人游戏类、二人游戏类和棋盘类之间的关系参考了AbstractFactory(抽象工厂)模式,以实现对两个不同模块进行一般化的控制。[2]2.1棋盘类整个架构的核心部分,类名为CTable。封装了棋盘的各种可能用到的功能[3],如保存棋盘数据、初始化、判断胜负等。用户操作主界面,主界面与CTable进行交互来完成对游戏的操作。2.2游戏模式类用来管理人机对弈/网络对弈两种游戏模式,类名为CGame。CGame是一个抽象类,经由它派生出一人游戏类COn