五子棋需求分析报告08093337.doc

上传人:小** 文档编号:93146910 上传时间:2019-07-17 格式:DOC 页数:19 大小:618.78KB
返回 下载 相关 举报
五子棋需求分析报告08093337.doc_第1页
第1页 / 共19页
五子棋需求分析报告08093337.doc_第2页
第2页 / 共19页
五子棋需求分析报告08093337.doc_第3页
第3页 / 共19页
五子棋需求分析报告08093337.doc_第4页
第4页 / 共19页
五子棋需求分析报告08093337.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《五子棋需求分析报告08093337.doc》由会员分享,可在线阅读,更多相关《五子棋需求分析报告08093337.doc(19页珍藏版)》请在金锄头文库上搜索。

1、 中中国国矿矿业业大大学学 应用系统开发实践 设计题目: 基于 VC 的五子棋游戏软件的设计与开发 指导教师: 学 生: 专 业: 计算机科学与技术 09-1 班 2012 年 5 月 1 目目 录录 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.

2、1 窗口设计.9 5.2 棋盘设计.9 5.3 按钮功能的实现.10 5.4 胜负判断.11 6 系统测试与分析系统测试与分析.13 7 结论结论.17 2 1.引引 言言 目前网络上有很多五子棋子游戏,玩法简单,娱乐性也很高。五子棋不仅能增强思维能力,提高 智力,而且富含哲理,有助于修身养性。通过对五子棋的设计与开发,了解和掌握游戏开发的原理与 方法。让电脑像人脑一样思考,一直是人工智能发展的最终目标。作为一门边缘学科,它有诸多的研 究领域,博弈即为其中之一。博弈的参加者可以是个人、集体、某种生物或机器,他们都力图用自己 的“智力”去击败对手。博弈为人工智能提供了一个极好的试验场所,人工智能

3、中的许多概念和方法都 是从博弈程序中提炼出来的,人工智能中大多以下棋为例来研究博弈规律。本文以五子棋为入口,设 计了一个五子棋双人对战和人机对弈系统,以实现人和人,人和计算机的博弈,最终的目的是为了建 立一个有具体规则的五子棋平台。 2.需求分析需求分析 目前网络上有很多五子棋子游戏,玩法简单,娱乐性也很高。五子棋不仅能增强思 维能力,提高智力,而且富含哲理,有助于修身养性。通过对五子棋的设计与开发,了 解和掌握游戏开发的原理与方法。让电脑像人脑一样思考,一直是人工智能发展的最终 目标。作为一门边缘学科,它有诸多的研究领域,博弈即为其中之一。博弈的参加者可 以是个人、集体、某种生物或机器,他们

4、都力图用自己的“智力”去击败对手。人机对弈程 序的要点,至少应具备以下 4 个部分:(1) 状态表示:某种在机器中表示棋局的方法,能 够让程序知道博弈的状态。(2) 走法产生:产生合法走法的规则,以使博弈公正地进行, 并可判断对手是否乱走。(3)搜索技术:从所有合法的走法中选择最佳的走法技术。(4) 对 弈界面。 2.1 系统需求 五子棋作为一款休闲益智游戏,它最大的优点在于游戏规则家喻户晓,简单,上手 快,趣味性强,所以受广大用户青睐,在各大提供棋牌类游戏的平台都可以看到玩五子 棋游戏的人很多。休闲益智游戏中等级并不是最重要的追求目标,通过对游戏规则的熟 悉,能很快上手掌握其操作方式,也更适

5、合男女老幼全家共同娱乐,花费时间简短,速 战速决,在短时间内感受到游戏的乐趣,完全享受气氛轻松活跃的游戏过程。此种娱乐 方式既不耽误时间也能轻松调剂娱乐,充分适合现代人们的娱乐需求。更主要的是开发 了人的智力,成为年轻一代最流行的游戏,据统计,五子棋游戏的玩家中,学生占了接 近三分之一的比例,对学生的智力健康成长起一定作用,正所谓休闲娱乐两不误。 2.2 功能需求 要求系统界面简洁,操作方便,把五子棋游戏规则中最基本的规则体现出来,比如 “和棋”、“重新开局”等。五子棋还有一大特点就是速战速决,电脑应在很短时间内 就应做出判断,并能提供一定的帮助,违反游戏规则的时候应立即指出。在正规五子棋 比

6、赛中,都设置了“禁手”这一规则。 2.3 系统运行环境 Win 9X/Win ME/Win NT/Win 2000/Win XP/Win 2003/ 3 3 3 五子棋算法分析五子棋算法分析 3.1 五子棋的发展 五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“连珠”, 英译为“Renju”,英文称之为“Gobang”或“FIR”(Five in a Row 的缩写),亦有“连五 子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。 五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。它既有 简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和

7、高水平的国际性比赛;它 的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的 连接。它是中西文化的交流点,是古今哲理的结晶。 五子棋起源于古代中国,发展于日本,风靡于欧洲。对于它与围棋的关系有两种说 法,一说早于围棋,早在“尧造围棋”之前,民间就已有五子棋游戏;一说源于围棋, 是围棋发展的一个分支。在中国的文化里,倍受人们的青睐。古代的五子棋的棋具与围 棋相同,纵横各十七道。五子棋大约随围棋一起在我国南北朝时先后传入朝鲜、日本等 地。据日本史料文献介绍,中国古代的五子棋是经由高丽(朝鲜),于 1688 年至 1704 年的日本元禄时代传到日本的。到日本明治 32 年(公

8、元 1899 年),经过公开征名, “连珠”这一名称才被正式确定下来,取意于“日月如合壁,五星如连珠”。从此,连 珠活动经过了不断的改良,主要是规则的变化(即对执黑棋一方的限制),例如,1899 年规定,禁止黑白双方走“双三”;1903 年规定,只禁止黑方走“双三”;1912 年规定, 黑方被迫走“双三”亦算输;1916 年规定,黑方不许走“长连”;1918 年规定,黑方不 许走“四、三、三”;1931 年规定,黑方不许走“双四”,并规定将 1919 的围棋盘改 为 1515 的连珠专用棋盘。本世纪初五子棋传入欧洲并迅速风靡全欧。通过一系列的变 化,使五子棋这一简单的游戏复杂化、规范化,而最终

9、成为今天的职业连珠五子棋,同 时也成为一种国际比赛棋。 简单介绍一下文章中会遇到的一些关于五子棋最基本的术语 (1)先手:进攻的着法,也指对弈双方执黑棋先在棋盘上落子的一方; (2)四三:指同时具备两个先手,其中一个四,另一个是活三; (3)活三(包括连三和跳三):连三:紧紧相连的同色三子跳三:中间间隔一子 的活三 ; (4)四四:一子落下同时形成两个“四”的棋形 ; (5)三三:一子落下形成了两个活三的棋形; (6)长连:相同颜色的连续六子或六子以上; (7)禁手:对局中禁止使用的战术或被判为负的行棋手段; (8)胜局:对局的一方获胜,称为“胜局”。包括:一方首先在棋盘的直线或横 线或斜线上

10、形成连续的五子或五子以上(特指白方)。对方表示认输。对方超过比 赛规定的时限。当黑方禁手形成未能同时形成五连,白方立即指出禁手后,判定为白 方胜局。对方迟到超过容许时间。对方严重犯规而被判负; (9)和棋:不分胜负的对局或双方同意平局。 4 3.2 五子棋的规则 五子棋游戏的一个特点是先行的一方优势很大,因此在职业比赛中对黑方做了种种 限制,以利公平竞争。五子棋的比赛规则如下: (1)黑棋先手、白棋后手,从天元开始相互顺序落子; (2)最先在棋盘横向、纵向或斜向形成连续的同色五个棋子的一方为胜; (3)黑棋禁手判负、白棋无禁手。黑棋禁手有“三、三”、“四、四”和“长连”, 包括“四、三、三”和

11、“四、四、三”。黑棋只能以“四、三”取胜; (4)如分不出胜负,则到为平局; (5)五连与禁手同时形成,判胜; (6)黑方禁手形成时,白方应立即指出。若白方未发现或发现后不立即指出,反而 继续落子,则禁手失效,不再判黑方负。 五子棋是黑白双方或两个人之间的竞技活动,由于对黑白双方规则不同,黑棋必须 先行。一般采用猜先的方法来决定谁执黑先行,即双方各抓一种颜色的几枚棋子,大数 减小数,单数双方交换,偶数不换;黑方在落下关键的第五子即形成五连的同时,如又 形成禁手,此时因黑方已经成五,而“五”在五子棋中是至高无上的,故禁手失效,黑 方胜;所谓黑方形成禁手,是指黑方落下一子同时形成两个或两个以上的活

12、三、冲四及 长连等。此时白方应立即指出,自然而胜。 专业连珠五子棋虽然对黑棋采取了种种限制,但是黑棋先行的优势依然很大。因此, 在高段位的专业比赛中,又出现了三种特殊的规定: (1)“指定打法”:指比赛双方按照约定好的开局进行对弈。例如“斜月局”、 “长星局”等。 (2)“三手可交换”:指黑棋下第二手棋盘面第三手棋之后,白方如感觉黑方 棋形不利于己方,可提出交换,即执白棋一方变为执黑棋一方此方法不适用于指定开 局打法,而用于随意开局。采用此规定以后,黑棋就不会再使用诸如“浦月”、“花 月”之类的必胜开局了。 (3)“五手两打”:指黑棋在下盘面上关键的第五手棋时,必须下两步棋,让白方 在这两步棋

13、中任选一步,然后再继续下。 采用这一系列规定以后,黑棋先行就再无优势可言。 3.3 具体算法分析 3.3.1 棋盘局势状态表示 棋盘表示主要探讨的是是什么数据结构来表示棋盘上的信息。一般说来,这与具体 的棋类知识密切相关。通常,用来描述棋盘及其上棋子信息的是一个二维数组。 要让计算机知道棋盘局势状态,就是要它记住棋盘中哪个位置有黑子,哪个位置有 白子以及哪个位置是空点。因为五子棋的棋盘是 15 行,15 列,因此可以将棋盘状态的描 述用一个 1515 的二维数组表示。 本程序的数据将用如下所示的数据表示: int p1515= 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

14、,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 5 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,

15、0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; 其中,(1)棋盘状态数据由一个 1515 的二维数组表示。(2)用数字“1”和 “2”来表示不同的棋子,黑色棋子用“2”表示,白色棋子用“1”表示。(3)没有棋 子的格子用“0”表示。 3.3.2 棋盘中下棋的顺序表示 棋局中下棋的顺序也很重要,应该是黑白双方交替下棋。 本程序用 t 来判断黑白双方下棋顺序,t 为“0”时由白方下棋,t 为“1

16、”时由黑方下 棋,由于五子棋规则中黑棋先手,所以初始值 t=1,即玩家执黑先手。每次落棋后,都应 改变 t 的值,t 在整个对弈过程中都只能为 1 或者为 0,即在任意时刻,都有一方可以落 棋,也只能有一方落棋。 3.3.3 具体算法 本系统中较复杂的部分是人机对战部分。下面将简单分析人机对战,双人对战则省 略。电脑要选择有利于它的最佳下法,就要能判断哪种形势对它最有利。但往往对一个 形势的判断是很难做到准确的,特别是一盘棋刚开始的时候,棋盘的形势不明朗,即使 是专家也不能做出准确的判断。为了判断哪种下法最有利,我们往往需要向后面计算几 步,看看在走了几步棋之后,局面的形势如何。这被称为“多算胜”,也就是说,谁看 得越深远,谁就可以获胜。这种思维方式被用到了计算机上。向后面计算的步数越多, 系统开销就越大,本系统只向后计算一步,根据威胁的优先级来选择落棋的最佳点。 轮到

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号