基于IOS平台的游戏“五子棋”说明书.doc

上传人:h**** 文档编号:126904 上传时间:2018-07-09 格式:DOC 页数:67 大小:1.03MB
下载 相关 举报
基于IOS平台的游戏“五子棋”说明书.doc_第1页
第1页 / 共67页
基于IOS平台的游戏“五子棋”说明书.doc_第2页
第2页 / 共67页
基于IOS平台的游戏“五子棋”说明书.doc_第3页
第3页 / 共67页
基于IOS平台的游戏“五子棋”说明书.doc_第4页
第4页 / 共67页
基于IOS平台的游戏“五子棋”说明书.doc_第5页
第5页 / 共67页
点击查看更多>>
资源描述

1、 编号: 毕业设计说明书 题 目 : 基于 IOS 平台的游戏“五子棋” 程序设计 学 院: 计算机科学与工程学院 专 业: 网络工程 学生姓名: 学 号: 指导教师: 职 称: 题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发 2012 年 5 月 30 日 摘 要 本论文主要阐述以 iOS 开发平台为基础,通过使用 Xcode 开发工具以及 objective-c 和 c+语言开发的一款运行在 iPad 上的智力游戏“五子棋”。五子棋是一种两人 对弈 的 纯策略 型棋类游戏,棋具与 围棋通用,是起源于中国古代的传统黑白棋种之一。近年来,随着智能手机的流行,出现了许多在移动操

2、作系统上的手机应用。所以,开发一款可以在 iOS 系统上运行的五子棋游戏是非常有意义的。 在开发的过程中,我首先学习了 objective-c 语言的相关语法, objective-c 语言是在 C 语言上进行一些面向对象的扩充,学习它大概用了一周的时间。接下来,开始学习 iOS 应用的构建原理(学习视图控制器与视图的使用方法,程序委托的使用等)以及一些常用控件的使用,并尝试在 Xcode 工具上搭建一些简单的界面。这时候的界面是用 xib 文件来搭建的,通过直接拖拉控件来产生界面。之后,开始尝试用代码写控件来代替 xib 文件。在做好这些基础的准备后,我开始动手搭建五子棋的界面,五子棋界面除

3、了一些常用的控件(按钮以及标签)外,重要的是画出棋盘以及棋子,棋盘和棋子不能用普通控件来显示,需要使用绘图的方法把它画出来。在这 些工作完成了之后,界面就可以显示出来了。 接下来,就要在棋盘类上面进行一些处理工作,比如点击各个按钮触发的事件,在游戏过程中玩家点击棋盘触发的事件,判断游戏输赢,悔棋和认输功能的实现等等。之后,就开始设计与实现五子棋算法了。 经过多年的发展, 五子棋的算法 已经较为完善 ,我做的工作是在理解这些算法原理的基础上,用自己的话来实现,并加入 一些 新的东西。五子棋算法一般包括估值算法以及搜索算法,估值算法的实现虽然代码量较大但是理解起来不是特别难,而我在学习搜索算法的过

4、程中却在一开始的时候无法理解他的 alpha-beta 剪 枝以及负极大值算法的意思。而在一开始写完算法部分代码之后,也还是存在许多问题,无法搜索出正确的落子点,在经过一些排错与完善之后,算法的实现可以与前面的棋盘进行结合了。这样,整个设计就差不多完成了,接下来就需要进行测试并进行一些小的修改。 在本论文中,主要阐述了开发过程中的一些细节,遇到的问题,解决的方法以及自己的一些感悟。 关键词 : objective-c;人工智能 ;算法 Abstract This paper mainly expounded a mental game gobang .It is on the basis of

5、 iOS development platform, using the Xcode development tools and objective - c and c + + language to develop,and runed in the iPad. Gobang is a game of two pure strategy type chess game. Chess can be used in the game of go.Gobang is one of the traditional reversi which is originated from the ancient

6、 Chinese . In recent years, with the popularity of smart phones, Many mobile applications on mobile operating system appeared.So, developing a Gobang game can be run on iOS is meaningful. In the process of development, the first thing is learning the syntax of objective-c language,the objective-c la

7、nguage is in the basis of c language and add some Object oriented expansion , it took me about a weeks time to study.Next, I start to learn the building principle of iOS app (learning the usage of view controller and view , the use of application of delegate and so on ) and the use of some common co

8、ntrols, and try to make some simple interface on Xcode tool structures.At this time the xib file interface is used to build, through direct drag controls to generate the interface.Next, I began to try to replace the xib file by writting codes.After doing this things, I start to build gobang interfac

9、e, in addition to some commonly used controls (buttons and labels), it is important to draw the chessboard and chess ,the board and chess can not use normal controls to display, I need to draw them.After the work finished, interface can be displayed. Next, I should do some work on board, such as the

10、 events by click each button , the events by click board, the function of judes success ,giving up and regret and so on.Then,I began to design and realize the gobang algorithm. Gobang algorithm has been more mature, my work is understanding the algorithm and relize it, and I will add some new things

11、.Gobang algorithm generally includes valuation algorithm and search algorithm, the code of valuation algorithm is large but I do not hard to undstand it .Instead ,I cant understand the alpha beta pruning and negative maximum value algorithm. And after finished the algorithm , it still exist many pro

12、blems, it is unable to search the right move place, after some troubleshooting and improvement, the realization of the algorithm can be combined with the front board.So, the whole design is almost finished, you need to test and make a few small changes. This paper mainly expounds some details in the

13、 development process, implementation methods, difficulties, and some of my own feeling. Key words:objective-c;Artificial intellegence;algorithm 目 录 引言 . 1 1 手机五子棋游戏介绍 . 2 1.1 五子棋游戏规则介绍 . 2 1.2 五子棋游戏术语介绍 . 3 1.3 手机五子棋特色 . 3 2 开发环境及工具介绍 . 3 2.1 开发环境 . 3 2.2 运行环境 . 4 2.3 工具介绍 . 4 2.3.1 iOS 介绍 . 4 2.3.2

14、 objective-c 介绍 . 4 3 需求分析与总体设计 . 5 3.1 需求分析 . 5 3.2 系统设计思想 . 5 3.3 系统总体设计 . 5 3.4 系统模块及功能 . 6 3.4.1 系统主要模块 . 6 3.4.2 系统主要流程 . 7 4 五子棋 AI 算法分析与实现 . 8 4.1 算法总体概况 . 8 4.2 估值算法分析与实现 . 8 4.3 搜索算法的分析与实现 . 13 4.4 算法设计的不足以及改进方法 . 18 5 APP 应用详细设计 . 19 5.1 APP 设计介绍 . 19 5.1.1 main 函数介绍 .19 5.1.2 应用程序委托介绍 .19

15、 5.1.3 视图控制器介绍 .19 5.1.4 视图类介绍 .20 5.1.5 MVC 模型介绍 .20 5.1.6 主要框架介绍: .20 5.2 详细设计概述 . 20 5.3 视图控制器类设计 . 21 5.3.1 积分榜的设计 .21 5.3.2 委托类的设计与使用 .21 5.3.3 按钮的设计 .21 5.4 棋盘类的设计 . 22 5.4.1 棋盘类变量设计 .22 5.4.2 棋盘的绘制 .22 5.4.3 玩家和机器人下子 .22 5.4.4 棋子类的实现 .23 5.4.5 判断胜负功能 .23 5.4.6 游戏新局功能的实现 .24 5.4.7 认输功能的实现 .24

16、5.4.8 悔棋功能的实现 .24 5.4.9 人人对战的实现 .24 6 开发过程中遇到的问题 . 25 6.1 五子棋 AI 算法设计问题 . 25 6.2 棋盘类设计遇到的问题 . 25 7 测试 . 26 8 总结 . 31 谢 辞 . 33 参考文献 . 34 1 引言 随着科技的发展,智能手机的出现改变了我们一直以来对手机只是用于打电话和发短信的观点。在路上,车上,我们总能看见有人拿着手机来玩游戏,看电影,这一切都在改变我们的日常生活。也正是由于这些变化,移动互联网已经逐渐成为了互联网这个行业的重要组成部分。我们也能看到,传统的PC 行业的增长已经开始放慢,国际上一些很大的 传统

17、PC厂家例如惠普,戴尔在 PC 行业的利润已经越来越少,它们都在积极的寻求转型。而反观智能机的领域,苹果,三星, HTC 等企业都通过智能手机的销售取得了非常好的业绩。特别是苹果和三星,占据了整个智能手机领域的很大部分利润。 所谓智能手机,就是与传统的功能手机只可以用来打电话与发短信不同。它类似于电脑,有一个独立的操作系统,用户可以自行安装和卸载各种软件,这样手机的功能就得到了充分的扩充。在 PC 上的软件现在不断有了移动操作系统上的版本,例如 QQ 等聊天类软件,微博等社交类软件,甚至在手机上也出现了很多 3D 游戏,这 些都有赖于移动操作系统的产生以及相关硬件的发展。在智能手机的行业中,诺

18、基亚和黑莓曾经占据了非常重要的地位。塞班系统曾经非常成功,但是后来由于开源的 Android以及 iOS 系统的出现,加上触控技术的流行,塞班系统不断的失去了它的优势。同样,近年来也兴起了平板这种新的数码产品,这是一种崭新的产物。 iPad 是苹果公司推出的一款平板电脑,受到了市场的强烈反响。所以,我觉得在 iPad 上开发一款移动应用是一件非常有意义的事情。 五子棋是一种两人对弈的策略型游戏,起源于中国古代。五子棋的规则比较简单,上手比较容易,而且趣 味横生,引人入胜。传统五子棋的棋具是与围棋通用的,一般是 15*15 的棋盘,棋子分黑白两种颜色,对弈的双方分别执一种颜色的棋子,棋子放置在棋

19、盘线上的交叉位置,双方轮流下子,只要同一颜色的棋子能够有五个棋子在同一条线上,那么执这种颜色棋子的一方就赢得了这盘棋。 随着科技的发展,现在人们的物质生活越来越丰富,但是人们的生活压力也越来越大,所以在工作闲暇之余,来一盘五子棋,也不失为一种调节情绪,放松思考的机会。五子棋的规则简单,却往往可以开发人的思维,是一种非常有意义的游戏。五子棋现在已经发展为一种非常重要的棋盘游 戏。 近年来,游戏产业得到了巨大的发展。而且随着手机的发展,游戏产业已经扩展到了手机上,这样大家就有了更多休闲娱乐的机会。棋类游戏具有益智,开发人大脑思维的功能也受到了大家的欢迎。手机上的棋类游戏往往分为人机对战和人人对战两

20、种。特别是人机对战中的机器博弈,是 PC 和手机上的棋类游戏的一大特色。机器博弈是人工智能研究领域中一块非常重要的地方。 本文设计的是一款人机和人人对战的五子棋游戏软件,在人机对战模块中,提供了一定智力的机器人来和玩家进行博弈。机器人的功能通过估值, alphabeta 剪枝搜索 ,负极大值等算法 来实现。人人对战主要是提供一个界面美观的棋盘来给两个玩家切磋棋艺。另外,本软件还提供了下面的一些功能: 1,重新开始功能,游戏模式选择功能,人机对战选择游戏难度功能,下棋先后手选择功能。 2,认输功能。 3,悔棋功能。 3,积分功能(胜负记录)。 4,判断胜负功能。 2 5,游戏状态提醒功能。 1

21、手机五子棋游戏介绍 1.1 五子棋游戏规则介绍 五子棋的标准棋盘大小是 15*15,由双方各执一种颜色的棋子,分别在棋盘横竖线交叉的位置摆上棋子。最后有一方的棋子有五子 可以连成同一根线就算执该颜色棋子的一方胜利。 由于在五子棋游戏过程中,先下子的一方非常占有很大的优势,所以五子棋游戏有两种下棋规则,禁手和无禁手。禁手规则是指先下子的一方需要一定的约束,通常有长连禁手,四四禁手,三三禁3 手。这些都是对先下子一方的约束,来平衡先下子本身带来的不公平。无禁手规则是指双方都不需要约束下子的位置,国际比赛往往都有禁手规则。 1.2 五子棋游戏术语介绍 连珠:国际上五子棋的正式名称。 阳线:棋盘上可见

22、的横线和竖线的总称。 阴线:棋盘的两条对角线及与它们平行的交叉点间不可见斜线的总称。 连:一条阳线或阴线上紧紧相连的同色棋子。 长连:一条阳线或阴线上紧紧相连的同色六枚或六枚以上棋子。 五连:一条阳线或阴线上紧紧相连的同色五枚棋子。 四:指活四和冲四。 活四:己方再加上一子,有两个点可以成五的单四。 冲四:己方再加上一子,只有一个点可以成五的四。包括连冲四和跳冲四 。 三:指活三和眠三。 活三:己方再加上一子,可以形成活四的三。 眠三:己方再加上一子,可以形成冲四但不能形成活四的三。 二:指活二和眠二。 活二:己方再加上一子,可以形成活三的二。 眠二:己方再加上一子,可以形成眠三但不能形成活

23、三的二。 死四、死三、死二由于在主方向已不可能成五,因此已不是四、三、二。 1.3 手机五子棋特色 便携性:在没有计算机和手机出现之前,要进行一场五子棋游戏都是需要使用真正的棋盘和棋子进行的。而随着计算机和网络的不断发展,五子棋已经完全可以脱离棋盘的限制。而近年来随着手机的发展,更加方便的手机版五子棋不断出现。它不仅具有电脑版五子棋的优势,而且更加的方便。 网络连接能力:由于手机或平板都有一定的网络连接能力,所以可以通过网络连接进行两人对战,这样就减少了距离的限制。 2 开发环境及工具介绍 2.1 开发环 境 电脑硬件:处理器 2.7 GHz Intel 内存 8 GB 1600 MHz DD

24、R3 操作系统:软件 OS X 10.8.2 (12C3103) 4 开发工具: xcode 4.6 2.2 运行环境 硬件:第一代 iPad 操作系统: iOS 5.1 2.3 工具介绍 2.3.1 iOS 介绍 iOS 是一种闭源的系统,采用了混合内核,是苹果公司开发的一款手持设备的操作系统。苹果公司一开始是将这个系统用在了 iPhone 上,后来又逐渐的用在了 iPod touch,iPad 等 产品上。它是 以 Darwin 为基础的 一种类 Unix 的操作系统, 原本这个系统名为 iPhone OS,直到 2010 年 6 月 7 日 WWDC 大会上宣布改名为 iOS。 iOS

25、的系统结构分为以下四个层次:核心操作系统( the Core OS layer),核心服务层( the Core Services layer), 媒体层( the Media layer), Cocoa 触摸框架层( the Cocoa Touch layer)。 从功能角度来说, iOS 和 Android 还是比较类似的,都具备触摸屏,高级图形显示以及上网功能。相较于 Android, iOS 运行更加流畅,对硬件的要求没有 Android 高,同时,它的应用的兼容性要比Android 好。而 Android 在界面上更加注重搜索功能,它对 Flash 的支持也是一个优势。 2.3.2 objective-c 介绍 在开发五子棋程序过程中,除了算法部分使用 C+语言进行实现外,其他 部分都需要使用Objective-C 来实现。 Objective-C 是一种 通用 、 高级 、 面向对象 的 编程语言 。它扩展了 标准的 ANSI C 编程语言。将 Smalltalk 式的 消息传递机制 加入到 ANSI C 中。它是 苹果 的 OS X 和 iOS 操作系统 ,及其相关 API、Cocoa 和

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

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。