五子棋系统分析

合集下载

五子棋分析

五子棋分析

一.需求分析1,序言一款游戏项目的确立是建立在各种各样的需求上面的,这种需求往往来自于玩家的实际需求或者是出于公司自身发展和实力的情况,其中玩家的实际需求也就是说市场需求最为重要.面对对游戏拥有不同知识和理解层面的玩家,项目的负责人(或者游戏制作人)对玩家需求的理解程度,在很大程度上决定了此类游戏开发项目的成败.因此如何更好地的了解,分析,明确玩家需求,并且能够达给参与项目开发的每个成员,保证开发过程按照满足玩家需求为目的正确项目开发方向进行,是每个游戏开发项目管理者需要面对的问题...2,项目背景五子棋是起源于中国古代的传统黑白棋种之一.现代五子棋日文称之为"连珠",英译为"Renju",英文称之为"Gobang"或"FIR"(Five in a Row的缩写),亦有"连五子","五子连","串珠","五目","五目碰","五格"等多种称谓.五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性.五子棋既有现代休闲的明显特征"短,平,快",又有古典哲学的高深学问"阴阳易理";它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有"场"的概念,亦有"点"的连接.它是中西文化的交流点,是古今哲理的结晶.GBA五子棋和其它五子棋类游戏最大的不同就是要发挥GBA的便携性,即在任何地方,任何时间,都能进行五子棋的对战.而由于GBA本身的机能限制有不能像在做大型机PC机游戏那样使用大量的高解析图图片,也不能使用高空间占用率,高时间占用率的人工智能算法.故在考虑用户的需求的同时要充分考虑GBA硬件的机能限制,以免在日后的开发过程中对需求产生不可行的后果.作为一个悠闲的小游戏系统,首先应该为用户提供一套方便的操作方法,在游戏模式,用户操作,反馈信息方面应该有明确的说明,能够让大多数玩家能快速上手.而游戏的界面应尽量做到古典风格,使该游戏看上去不仅是一款悠闲的精品,而把它做成是一款棋类的教学软件,随着版本的不断扩充,最终把游戏作成一"本"五子棋的百科全书.二.类图主要类三.功能介绍及主要代码1.基本功能介绍集多种功能于一体:游戏包括单人游戏和网络对战.单人游戏有包含玩家先走和电脑先走等功能;网络对战又能实现多人游戏和新建游戏等功能,实现了游戏的空间分享性.而且游戏中又可实现聊天功能,实现了游戏的交互性和互动性,另外游戏中还可以悔棋.退出,和棋,集多种功能于一身.游戏中,玩家可自由设置自己的名字,还可以统计战绩,是一款功能强大的娱乐小游戏,能满足不同人的需求.2 软件架构软件的总体架构如图2.1:图2.1 软件架构考虑到整个的下棋过程(无论对方是电脑抑或其他网络玩家)可以分为:己方落子、等待对方落子、对方落子、设置己方棋盘数据这一系列过程,因此一人游戏类、二人游戏类和棋盘类之间的关系参考了AbstractFactory(抽象工厂)模式,以实现对两个不同模块进行一般化的控制。

五子棋之人机对弈智能报告

五子棋之人机对弈智能报告

五子棋之人机对弈智能报告
五子棋是一种棋类游戏,古老而又受欢迎,被誉为“智力运动”。

目前,研究人员正在探索五子棋的人机对弈,并分析人机对弈的新技术和新
思想。

近年来,人工智能技术的发展,人工智能程序(AI)在五子棋比赛
中也占据了非常重要的地位,甚至比职业棋手更具优势。

本文将详细介绍
五子棋之人机对弈智能研究,展示人机对弈的新技术与新思想,并分析其
在策略技巧、数学模型分析和智能等技术应用方面的优势。

一、人机对弈的新技术与新思想
在五子棋中,新的技术与思想都为人机对弈带来了新的机遇和挑战。

首先,由于五子棋中的棋子数量有限,不需要考虑博弈树等极其复杂的计
算方法,因此可以采用较为简单的算法,避免过多的运算量。

其次,为了更好地模拟五子棋的复杂性,人机对弈研究者引入了多种
技术来改善AI的能力,如机器学习、数学评估模型和深度学习等。

例如,通过机器学习,人工智能程序可以从以往的游戏历史中学习更加有效的策略,以更快地获取结果。

此外,通过数学评估模型,AI可以根据实时的
棋面评估出每一步的最佳走法,并自动选择最优解,从而使游戏更加有趣。

五子棋游戏总体设计与实现

五子棋游戏总体设计与实现

五子棋游戏总体设计与实现4、系统总体设计与实现4、1 总体设计分析总体设计就是软件开发过程中的另一个重要阶段,在这一阶段中将根据需求分析中提出的逻辑模型,科学合理地进行物理模型的设计。

这个阶段的主要目标就是将反映用户信息需求的逻辑方案转换成物理方案,并为下一阶段提供必要的技术资料。

4、1、1 总体设计原则(1)整体性:软件就是作为统一整体而存在的。

因此,在总体设计中要从整个软件的角度进行考虑。

(2)灵活性:为保持软件长久的生命力,要求该手机游戏软件具有很强的环境适应性。

为此,游戏软件应具有较好的开放性与结构的可变性。

(3)可靠性:可靠性就是指软件抵御外界干扰的能力及受外界干扰时的恢复能力。

(4)经济性:经济性就是指在满足游戏软件需求的前提下,尽可能地减小游戏软件的开销。

4、1、2 软件模块总体设计软件中各模块之间的关系通常利用层次图来表示。

它就是一种一系列多层次的用树形结构的矩形框描绘数据的层次结构框图。

一个单独的矩形框作为树形结构的顶层,各个数据的子集由下面的各层矩形框代表,最底层的各个矩形框代表组成这个数据的实际数据元素(不能再分割的元素),它代表完整的数据结构。

这模式非常适合于需求分析阶段的需要,层次方框图对数据结构描绘随着结构精细化也越来越详细。

反复细化沿着图中每条路径,从对顶层信息的分类开始,直到确定了数据结构的全部细节为止。

图4-1 游戏功能结构本研究中将游戏软件分为三大模块,如图4-1所示,包括:游戏选项、游戏设置与帮助。

按照在调研中搜集的资料对每个模块的功能进行编排制作。

依据上述功能的分析,本研究中,将游戏软件在三大模块的基础上又对每一大模块又分为几个子模块:游戏选项包括六个模块:开始游戏、重新游戏、悔棋、认输、背景音乐与退出游戏。

游戏设置包括三个模块:先后手设置、棋盘底纹颜色设置与棋盘大小设置。

帮助包括两个模块:游戏帮助与关于。

4、2 游戏设计4、2、1 游戏前的准备本游戏在开发之前需要做一些前期准备工作,尤其就是对于精通五子棋游戏的Java 游戏开发者来说。

C语言图形五子棋课程设计分析报告

C语言图形五子棋课程设计分析报告

C语言图形五子棋课程设计分析报告Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998C语言课程设计报告五子棋院系:软件学院专业:软件工程摘要五子棋是一种两人对弈的纯策略型棋类游戏,应用C语言编写程序可以在计算机上实现二人对弈五子棋功能。

二人对弈五子棋程序由图像生成、光标移动与落子、判断胜负和系统帮助等子程序构成;程序中应用了结构体、数组、全局变量、按键处理和图形编程等元素和语句。

程序通过棋盘和棋子图像生成、二人移子与落子和判断胜负等功能的实现,在计算机上实现了二人五子棋对弈。

Abstract目录第1章:需求分析五子棋背景传统五子棋的与围棋相同,分为黑白两色,棋盘为15×15,棋子放置于棋盘线上。

两人对局,各执一色,轮流下一子,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。

因为传统五子棋在落子后不能移动或拿掉,所以也可以用纸和笔来进行游戏。

程序设计本程序设计为人与人对弈,一方执黑棋,一方执白棋,轮流走棋,每方都试图在游戏结束前让自己的棋子五子相连,首先实现五子相连的一方获胜。

程序执行过程中,要求棋盘、棋子时时可见,并且人可以通过按键盘按键移动光标,摆放棋子。

程序需求分析根据功能需求,将程序分为图形显示、玩家控制、胜负判断和玩家计分四个模块,以下分析各模块的需求。

图形显示模块:程序开始运行时,给出欢迎及帮助界面;游戏开始后要求生成19×19的棋盘图像,并在棋盘上方提示当前落子方棋子颜色,游戏进行过程中,要求实时显示棋盘上已落下的棋子;分出胜负后,要求给出游戏结束画面。

玩家控制模块:程序开始时,需玩家确定而后开始游戏;游戏过程中,两个玩家通过不同的按键移动光标,选择落子;游戏结束时,有玩家选择是否开始新棋局。

胜负判断模块:实时监测棋盘上棋子,一旦某一色棋子出现五子连线,终止游戏程序,并着色连成一线的五子,弹出该色玩家胜出界面。

五子棋需求分析

五子棋需求分析

文档编号:GG-0001快乐五子棋系统需求分析二○一二年三月修改记录目录1 引言 (5)1.1 编写目的 (5)1.2 项目背景 (5)1.3 定义 (5)1.4 参考资料 (5)2 任务概述 (5)2.1 系统目标 (5)2.2 运行构架 (6)2.2.1 系统软件/硬件平台 (6)2.2.2 运行环境 (7)3 功能需求 (7)3.1功能划分 (7)3.2需求分配 (8)3.2.1需求分配表 (8)3.3功能描述 (8)3.3.1用户管理 (8)3.3.2网络对战 (10)3.3.3人机对战 (11)3.3.4用户帮助 (12)3.3.5电脑下棋 (13)3.3.6落子合理判断 (13)3.3.7胜负判断 (13)3.3.8悔棋 (13)4 数据描述 (14)4.1数据词典 (14)4.2数据库描述 (15)5 性能需求 (15)5.1 数据精确度 (15)5.2 时间特性 (15)5.3 适应性 (15)6 运行需求(接口需求规格) (16)6.1 数据流图 (16)7 产品质量需求 (16)7.1 故障分析 (16)7.2 可靠性 (16)8 其他需求 (17)8.1扩充性 (17)8.2安全性 (17)8.3可维护性 (17)1 引言1.1 编写目的本款软件主要面向于青少年学生、儿童以及老人,用于他们开发智力,消遣娱乐。

因此,我们追求的是规则简单,容易上手,速战速决的效果。

同时该游戏兼容性应该很强,可以在一些简单的电子产品上运行,满足更广大群众的需求。

1.2 项目背景●开发背景:当前网络上流传的五子棋游戏功能并不尽善尽美,其中最主要的问题就是人机对战和网络对战不能够一起实现,所以我决定开发一个既能够人机对战,又能够进行双人对战的五子棋系统。

1.3 定义落子违规:落子超出边界或落子到已有子的地方。

获胜:有一方横竖斜任意方向先达到五子1.4 参考资料[1]唐彬, 刘超编著.Visual C++案例开发集锦.北京:电子工业出版社.2005[2]莫建文.机器自学习博弈策略研究与实现.广西师范大学硕士学位论文.2002年3月[3]董红安.计算机五子棋博弈系统的研究与实现.山东师范大学硕士学位论文.2005年4月[4]王志新.五子棋实战技巧.江苏科学技术出版社, 2002[5]中国五子棋网:2 任务概述2.1 系统目标●系统总体功能:本软件是一个五子棋游戏程序,主要功能是可以实现人机对战,人与人之间对战;电脑的AI较高,通过游戏,玩家能深刻体会到五子棋游戏的乐趣。

五子棋的设计思路

五子棋的设计思路

五子棋的设计思路
五子棋设计思路
一、实现思路
1、游戏地图
五子棋的游戏地图是一个15行15列的空格矩阵,由用户选择的棋子根据不同逻辑填充,将地图显示出来,也就是实现界面。

2、游戏规则
(1)规定一方执黑(黑子),一方执白(白子);
(2)游戏双方轮流下棋,黑方先行;
(3)同一方棋子不能相互提子;
(4)一方连续排出5颗棋子就算胜利。

3、游戏主要流程
(1)进入主界面,用户可以选择人机对战,人人对战等游戏模式;
(2)进入游戏,显示空白棋盘;
(3)玩家轮流下棋,棋子黑白交替放置,判断下棋者是否获胜,若无获胜者则继续下棋;
(4)游戏结束,根据判断结果显示获胜者信息;
(5)显示平局或者获胜者信息,选择是否继续游戏,一旦选择则返回游戏主界面。

二、程序实现
1、设计UI界面
UI的实现可以借助当前常用的可视化开发框架,如Qt、GTK+等,通过程序设计语言实现游戏界面,以显示地图,双方棋子的黑白交替放置,以及提示信息等功能。

2、数据结构的设计
(1)定义棋盘数据结构:使用二维数组,存储棋盘上的每一步落子情况,可以将棋盘当成一个15×15的二维数组。

五子棋程序实习报告

一、实习背景随着计算机技术的不断发展,编程已成为现代生活的重要组成部分。

为了提高自己的编程技能,培养自己的实际动手能力,我选择了五子棋程序设计作为实习项目。

五子棋是一种古老的中国传统棋类游戏,具有极高的趣味性和挑战性。

通过本次实习,我学习了Java编程语言,掌握了五子棋游戏的算法和实现方法,提高了自己的编程水平。

二、实习目标1. 熟练掌握Java编程语言的基本语法和常用类库;2. 掌握五子棋游戏的设计和实现方法;3. 学会使用面向对象编程思想进行程序设计;4. 培养自己的团队协作和沟通能力。

三、实习内容1. 系统设计在系统设计阶段,我首先分析了五子棋游戏的规则和特点,明确了游戏的基本功能,包括:棋盘显示、落子、判断胜负、悔棋等。

然后,我设计了五子棋游戏的基本架构,包括以下几个模块:(1)棋盘模块:负责棋盘的显示和落子操作;(2)落子模块:负责实现玩家的落子操作;(3)判断胜负模块:负责判断游戏是否结束,以及判断胜负;(4)悔棋模块:负责实现玩家的悔棋操作。

2. 算法设计五子棋游戏的算法主要包括以下几个部分:(1)棋盘表示:使用二维数组表示棋盘,每个元素代表一个棋子,其中0表示空位,1表示玩家1的棋子,2表示玩家2的棋子;(2)落子算法:根据玩家的落子位置,在棋盘上放置对应的棋子;(3)判断胜负算法:从落子位置开始,向四个方向(上、下、左、右)查找连续的五个相同的棋子,如果找到,则判断为胜利;(4)悔棋算法:撤销上一步的落子操作,将棋盘恢复到上一步的状态。

3. 编码实现在编码实现阶段,我按照设计文档和算法要求,使用Java编程语言完成了五子棋游戏的基本功能。

具体实现如下:(1)棋盘模块:使用JFrame创建一个窗口,使用JPanel绘制棋盘,使用鼠标监听器实现落子操作;(2)落子模块:在棋盘模块的基础上,增加一个方法,用于处理玩家的落子操作;(3)判断胜负模块:编写一个方法,用于判断游戏是否结束,以及判断胜负;(4)悔棋模块:编写一个方法,用于撤销上一步的落子操作。

基于JAVA的五子棋游戏系统设计与实现

基于JAVA的五子棋游戏系统设计与实现五子棋是一种非常有趣的棋类游戏,本文将基于JAVA语言对五子棋游戏系统进行设计与实现。

1.系统需求分析首先,我们需要对五子棋游戏系统的需求进行分析。

五子棋游戏的基本规则是:两名玩家轮流落子,先连成五子的一方获胜。

游戏棋盘是一个15*15的方格,玩家可以在空白的方格上落子,每次只能落一个子。

2.系统设计基于需求分析,我们将五子棋游戏系统分为四个模块:游戏界面、游戏规则、游戏控制和游戏存储。

游戏界面模块:该模块负责游戏的显示和用户交互。

我们可以使用图形用户界面(GUI)来实现游戏界面,可以使用JAVA的Swing或JavaFX来进行界面设计。

游戏规则模块:该模块负责规定游戏的规则和判断胜负。

该模块主要包括判断是否有玩家连成五子和判断当前位置是否可以落子等方法。

游戏控制模块:该模块负责控制游戏的流程,包括轮流落子、判断胜负、判断平局等。

该模块需要和游戏规则模块进行交互。

游戏存储模块:该模块负责保存游戏的进度和记录,可以使用文件系统或数据库来进行存储。

3.系统实现接下来,我们开始实现五子棋游戏系统。

1)游戏界面模块:可以使用JavaFX实现游戏界面,包括棋盘的绘制、玩家落子的交互等。

2)游戏规则模块:实现判断是否有玩家连成五子的方法,以及判断当前位置是否可以落子的方法。

3)游戏控制模块:实现游戏的流程控制,包括轮流落子、判断胜负、判断平局等。

4)游戏存储模块:实现游戏进度和记录的保存,可以使用文件系统或数据库进行存储。

4.系统测试与优化完成系统实现后,我们需要对系统进行测试和优化。

可以通过对游戏进行多次测试,检查游戏的各个模块是否正常工作,并根据测试结果对系统进行优化。

5.系统部署与使用完成测试和优化后,我们可以将游戏系统进行部署,供用户使用。

总结:通过以上设计与实现,我们成功地基于Java语言实现了一个五子棋游戏系统。

该系统不仅具备了基本的游戏功能,还具备了用户友好的界面和存储功能。

五子棋需求分析报告

中国矿业大学应用系统开发实践设计题目:基于VC的五子棋游戏软件的设计与开发指导教师:学生:专业: 计算机科学与技术09-1班2012年5月目录1 引言 (2)2 系统需求分析 (2)2.1系统需求 (2)2.2功能需求 (2)2.3系统运行环境 (2)3 五子棋算法分析 (3)3.1五子棋的发展 (3)3.2五子棋的规则 (3)3.3具体算法分析 (4)3.3.1 棋盘局势状态表示 (4)3.3.2棋盘中下棋的顺序表示 (5)3.3.3具体算法 (5)4 系统流程 (7)5 系统功能实现 (8)5.1窗口设计 (9)5.2棋盘设计 (9)5.3按钮功能的实现 (10)5.4胜负判断 (11)6 系统测试与分析 (13)7 结论 (17)1.引言目前网络上有很多五子棋子游戏,玩法简单,娱乐性也很高。

五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。

通过对五子棋的设计与开发,了解和掌握游戏开发的原理与方法。

让电脑像人脑一样思考,一直是人工智能发展的最终目标。

作为一门边缘学科,它有诸多的研究领域,博弈即为其中之一。

博弈的参加者可以是个人、集体、某种生物或机器,他们都力图用自己的“智力”去击败对手。

博弈为人工智能提供了一个极好的试验场所,人工智能中的许多概念和方法都是从博弈程序中提炼出来的,人工智能中大多以下棋为例来研究博弈规律。

本文以五子棋为入口,设计了一个五子棋双人对战和人机对弈系统,以实现人和人,人和计算机的博弈,最终的目的是为了建立一个有具体规则的五子棋平台。

2.需求分析目前网络上有很多五子棋子游戏,玩法简单,娱乐性也很高。

五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。

通过对五子棋的设计与开发,了解和掌握游戏开发的原理与方法。

让电脑像人脑一样思考,一直是人工智能发展的最终目标。

作为一门边缘学科,它有诸多的研究领域,博弈即为其中之一。

博弈的参加者可以是个人、集体、某种生物或机器,他们都力图用自己的“智力”去击败对手。

五子棋实验报告

五子棋实验报告一、实验目的和要求1、能够用编程语言实现一个简单的五子棋程序2、在实际系统中使用、实现人工智能的相关算法3、进一步加深对人工智能算法的理解二、五子棋的基本常识与原理1、五子棋的起源五子棋,是一种两人对弈的纯策略型棋类游戏,亦称“串珠”、“连五子”;是中国民间非常熟知的一个古老棋种。

相传,它起源于四千多年前的尧帝时期,比围棋的历史还要悠久。

亦有传说,五子棋最初流行于少数民族地区,以后渐渐演变成围棋并在炎黄子孙后代中遍及开来。

五子棋发展于日本,流行于欧美。

容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。

传统五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为19X19,棋子放置于棋盘线交叉点上。

两人对局,各执一色,轮流下一子,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。

因为传统五子棋在落子后不能移动或拿掉,所以也可以用纸和笔来进行游戏。

2、五子棋的基本常识与任何一种竞技棋一样,五子棋的每一局棋也分为三个阶段:开局,中局和残局。

五子棋的开始阶段称为开局,或称布局。

其开局阶段是十分短暂的,大约在七着与十几着之间。

在这一阶段的争夺中,双方的布局,应对将对以后的胜负起着极为关键的作用。

在开局阶段取得的形势好坏,主动与被动,先手与后手的优劣程度,往往直接影响中局的战斗。

因此积极处理好开局和开局向中局的过渡十分重要。

五子棋是从一至五,逐渐布子,发展连系,同时运用限制和反限制的智慧,在连子的过程中为自己的棋子争得相对的主动权和优势,逐步扩展优势,或者从劣势转化为优势,击溃对方的防线,最后连五取胜或抓禁手取胜或迫使对方投子认负。

3、五子棋比赛的相关规定(1) 职业连珠规则a. 黑方先下子,白后下,从天元开始相互顺序落子。

b. 最先在棋盘横向、竖向、斜向形成连续的相同色五个棋子的一方为胜。

c. 黑棋禁手判负,白棋无禁手。

黑棋禁手包括“三三”(包括“四三三”)、“四四”(包括“四四三”)、“长连”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 系统分析
1.1系统功能
本次设计的是一款基于HTML5、Node.js、Mongodb的一款多人在线五子棋游戏。

由于HTTP协议的无状态性,所以不利于建立客户端和服务器之间的通信,所以传统的网页游戏都是基于flash技术。

本系统利用HTML5提供的Web Socket功能可以方便的实现游戏数据的事实传输功能,服务端采用Node.js开发,Node.js是一个javascript运行环境,使得Javascript能够在服务器端运行。

Node.js的非阻塞特性,使得它非常利于大量数据的高并发处理,目前已在很多网页游戏和手机端游戏的服务器有所应用。

用户游戏过程中的数据采用MongoDB进行存储,MongoDB是一款性能优越的NoSQL 数据库,它以一种二进制JSON(BSON)进行存储,而本系统的客户端和服务器端都是使用javascript作为开发语言,javascript对于JSON的支持非常好,能方便的在JSON数据类型和Javascript对象之间进行灵活转换。

1.2系统总体结构
该系统分为服务器端程序和客户端程序、服务器端主要由消息转发处理模块组成,客户端主要由通信模块、五子棋游戏逻辑与绘制模块和用户消息处理模块组成。

系统结构如图所示。

1.3系统功能模块分析
1.3.1消息转发处理模块
消息转发处理模块是服务器端的核心模块,游戏服务器端程序通常只进行对用户消息的接受转发,数据存储等核心功能,其他功能交由客户端处理,这样可以减轻多人同时在线时的服务器压力,消息转发处理模块接受客户端通过HTML5 Web Socket建立的链接,处理客户端发送的消息,并向客户端发送消息进行通讯。

1.3.2 通讯模块
通信模块包括了HTML5 Web Socket对象初始化、消息接收、消息发送、界面显示等子功能模块。

HTML5 Web Socket对象初始化模块:WebSocket protocol 是HTML5一种新的协议(protocol)。

它是实现了浏览器与伺服器全双工通信。

虽然WebSocket API已成为HTML的标准之一,但是实现websocket的协议,浏览器扮演者一个很重要的
角色。

但因为websocket还未最终版本,草拟不断更新,所以不同的版本会支持不同的draft,初始化模块主要功能是对浏览器版本进行判断,然后创建不同浏览器所支持的Web Socket对象,进行同一封装。

消息接收模块:消息接受模块先与服务器建立连接。

以消息监听的方式与服务器端进行通讯,通过为已建立连接的Web Socket对象注册监听函数。

当指定事件发生会触发对应的已注册监听函数,如连接成功,连接失败,消息接收等事件,在接收到消息后会调用消息处理模块。

消息发送模块:消息发送模块主要用于发送,建立链接时的用户信息,用户聊天信息,与指定用户进行游戏的请求信息。

和游戏逻辑相关的信息会转交给游戏逻辑模块处理。

通过是通过WebSocket对象的send方法进行发送。

界面显示模块:界面显示模块主要接受消息并调用消息处理模块后,对处理结果的反馈显示,如接受到的聊天信息显示,连接的建立成功提示,在线用户显示,和五子棋游戏相关的游戏界面的显示会由游戏逻辑与绘制模块处理。

1.3.3消息处理模块
消息处理模块包括了加入游戏消息处理、用户登录消息处理、用户注销消息、用户离开游戏消息处理、用户状态更新消息处理、显示全部用户消息处理等子功能模块
加入游戏消息处理:当收到其他用户请求加入游戏消息时,提示用户进行选择是否同意进行游戏,将用户选择结果发送至服务器。

用户登录消息处理:当收到新用户登录消息时,对新加入用户的名称和状态进行显示。

用户注销信息处理:收到用户注销信息时,更新户列表删除指定用户。

用户离开游戏消息处理:游戏进行中,另一方用户退出游戏时,会发送此消息。

收到消息后会提示用户,对方掉线,并调用游戏逻辑和绘制模块结束游戏。

用户状态更新消息处理:根据收到的消息对用户当前状态进行设置,游戏状态分为等待中、游戏中、准备中。

显示全部用户消息处理:对接受到的服务器端用户列表信息进行处理,更新用户列表。

1.3.4 游戏逻辑与绘制模块
游戏逻辑与绘制模块包括了设置当前行棋方、设置按钮状态、下子事件处理、游戏界面绘制、游戏信息处理、游戏流程处理等子功能模块。

设置当前行棋方模块:设置当前下子的游戏用户,黑子方或白子方,用于其他模块进行判断。

设置按钮状态模块:设置按钮状态模块会根据当前行棋方和游戏状态等信息设置刷新按钮、连接用户按钮、注销按钮、开始按钮、和棋、悔棋、认输等按钮是否可用。

下子事件处理:对用户点击鼠标落子事件进行处理,落子成功后进行界面的重绘,更新棋盘canvas,并进行胜负判定。

游戏界面绘制:包括棋盘界面绘制,棋子绘制以及显示的时间、用户等文字信息的canvas绘制。

游戏信息处理:对和棋、悔棋、认输、开始游戏等信息进行处理,向服务器发送相应数据,并调用游戏界面绘制模块对游戏界面进行更新。

游戏流程处理:游戏逻辑的核心模块,存储游戏的当前状态并调用其他模块进行游戏。

2.详细设计
2.1系统结构设计
根据本文的需求分析决定采用基于浏览器的作为客户端的B/S模式。

B/S模式是一种以Web为基础的系统体系结构。

B/S模式采取请求和响应模式,首先浏览器发起请求,以URI的方式向服务器申请资源。

Web服务器直接向浏览器返回请求结果。

B/S模式简化了客户端,它无需像C/S模式那样在不同的客户端安装不同的客户应用程序,而只需安装通用的浏览器软件。

这样不但可以节省客户机的硬盘与内存,而且使安装过程更加简便、网络结构更加灵活。

相对于C/S模式,B/S模式的维护具有更大的灵活性,当应用逻辑发生变化时,它不需再为每一个客户应用程序升级,而只需对Web服务器上的服务处理程序进行修改升级。

服务器端采用Node.js架构,近年来服务器端架构有了显著的变化,从CGI 到Java、J2EE,再到LAMP和Ruby On Rails。

而本次选用的Node.js是一个较为有前景的全新架构。

Node.js是一个JavaScript运行环境,它实际是对Google V8引擎进行了封装。

Google V8引擎执行非常快,性能非常好。

Node.js对一些特殊用例进行了优化,使得V8在非浏览器环境运行的更好。

由于Javascript的函数式编
程等特性,基于非阻塞式编程更有优势。

采用Node.js 来实现网络游戏服务器的开发,除了能利用JavaScript的动态语言的优势特性、强大的开源社区和V8引擎的优越性能外,在网络数据传输的异步化方面具有快速、实时等事件编程模型;特别在HTML5的应用开发中,还具有前后端代码共享、DSL灵活定义等特点。

数据存储方面采用了非关系型数据库MongoDB,MongoDB是一个基于分布式文件存储的数据库。

由C++语言编写。

旨在为WEB应用提供可扩展的高性能数据存储解决方案,有着高性能、易部署、易使用,存储数据非常方便等特点。

因为MongoDB数据存储以BSON/JSON文档,这对于Web应用程序有很大的意义,尤其是Javascript程序。

Javascript程序喜欢以JSON形式传输,这使得整个项目的数据表示可采用统一的模型。

所有这一切都无需任何前期架构设计。

用户客户端使用了HTML5技术,而非传统的flash技术。

HTML5允许Web 页面运行应用,就像一般的应用那样独立运行。

HTML5具有很多功能强大的新特性,而此系统主要应用WebSocket和Canvas功能。

HTML5中内置了基于Web sockets的即时通讯功能,WebSockets将允许任何Web页面设计人员轻松地添加实时数据流。

WebSocket提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术。

这个新的API提供了一个方法,从客户端使用简单的语法有效地推动消息到服务器。

Canvas使得我们可以在web中绘制各种图形。

给人感觉单在这点上有点模糊我们web和桌面程序的感觉。

在html5外web中也有基于xml的绘图如:VML、SVG。

而Canvas为基于像素的绘图。

Canvas是一个相当于画板的html节点,我们能以javascript操作绘图。

2.2模块设计。

相关文档
最新文档