基于ios平台的游戏“五子棋”毕业论文(编辑修改稿)内容摘要:
电影,这一切都在改变我们的日常生活。 也正是由于这些变化,移动互联网已经逐渐成为了互联网这个行业的重要组成部分。 我们也能看到,传统的PC 行业的增长已经开始放慢,国际上一些很大的传统 PC厂家例如惠普,戴尔在 PC 行业的利润已经越来越少 ,它们都在积极的寻求转型。 而反观智能机的领域,苹果,三星, HTC等企业都通过智能手机的销售取得了非常好的业绩。 特别是苹果和三星,占据了整个智能手机领域的很大部分利润。 所谓智能手机,就是与传统的功能手机只可以用来打电话与发短信不同。 它类似于电脑,有一个独立的操作系统,用户可以自行安装和卸载各种软件,这样手机的功能就得到了充分的扩充。 在 PC 上的软件现在不断有了移动操作系统上的版本,例如 等聊天类软件,微博等社交类软件,甚至在手机上也出现了很多 3D 游戏,这些都有赖于移动操作系统的产生以及相关硬件的发展。 在智能 手机的行业中,诺基亚和黑莓曾经占据了非常重要的地位。 塞班系统曾经非常成功,但是后来由于开源的 Android以及 iOS 系统的出现,加上触控技术的流行,塞班系统不断的失去了它的优势。 同样,近年来也兴起了平板这种新的数码产品,这是一种崭新的产物。 iPad 是苹果公司推出的一款平板电脑,受到了市场的强烈反响。 所以,我觉得在 iPad 上开发一款移动应用是一件非常有意义的事情。 五子棋是一种两人对弈的策略型游戏,起源于中国古代。 五子棋的规则比较简单,上手比较容易,而且趣味横生,引人入胜。 传统五子棋的棋具是与围棋通用的,一般 是 15*15 的棋盘,棋子分黑白两种颜色,对弈的双方分别执一种颜色的棋子,棋子放置在棋盘线上的交叉位置,双方轮流下子,只要同一颜色的棋子能够有五个棋子在同一条线上,那么执这种颜色棋子的一方就赢得了这盘棋。 随着科技的发展,现在人们的物质生活越来越丰富,但是人们的生活压力也越来越大,所以在工作闲暇之余,来一盘五子棋,也不失为一种调节情绪,放松思考的机会。 五子棋的规则简单,却往往可以开发人的思维,是一种非常有意义的游戏。 五子棋现在已经发展为一种非常重要的棋盘游戏。 近年来,游戏产业得到了巨大的发展。 而且随着手机的 发展,游戏产业已经扩展到了手机上,这样大家就有了更多休闲娱乐的机会。 棋类游戏具有益智,开发人大脑思维的功能也受到了大家的欢迎。 手机上的棋类游戏往往分为人机对战和人人对战两种。 特别是人机对战中的机器博弈,是 PC 和手机上的棋类游戏的一大特色。 机器博弈是人工智能研究领域中一块非常重要的地方。 本文设计的是一款人机和人人对战的五子棋游戏软件,在人机对战模块中,提供了一定智力的机器人来和玩家进行博弈。 机器人的功能通过估值, alphabeta 剪枝搜索 ,负极大值等算法来实现。 人人对战主要是提供一个界面美观的棋盘来给两个玩 家切磋棋艺。 另外,本软件还提供了下面的一些功能: 1,重新开始功能,游戏模式选择功能,人机对战选择游戏难度功能,下棋先后手选择功能。 2,认输功能。 3,悔棋功能。 3,积分功能(胜负记录)。 4,判断胜负功能。 第 2 页 共 38 页 5,游戏状态提醒功能。 1 手机五子棋游戏介绍 五子棋游戏规则介绍 五子棋的标准棋盘大小是 15*15,由双方各执一种颜色的棋子,分别在棋盘横竖线交叉的位置摆上棋子。 最后有一方的棋子有五子可以连成同一根线就算执该颜色棋子的一方胜利。 由于在五 子棋游戏过程中,先下子的一方非常占有很大的优势,所以五子棋游戏有两种下棋规则,禁手和无禁手。 禁手规则是指先下子的一方需要一定的约束,通常有长连禁手,四四禁手,三三禁 第 3 页 共 38 页 手。 这些都是对先下子一方的约束,来平衡先下子本身带来的不公平。 无禁手规则是指双方都不需要约束下子的位置,国际比赛往往都有禁手规则。 五子棋游戏术语介绍 连珠:国际上五子棋的正式名称。 阳线:棋盘上可见的横线和竖线的总称。 阴线:棋盘的两条对角线及与它们平行的交叉点间不可见斜线的总称。 连:一条阳线或阴线上紧紧相连的同色棋子。 长连:一条阳 线或阴线上紧紧相连的同色六枚或六枚以上棋子。 五连:一条阳线或阴线上紧紧相连的同色五枚棋子。 四:指活四和冲四。 活四:己方再加上一子,有两个点可以成五的单四。 冲四:己方再加上一子,只有一个点可以成五的四。 包括连冲四和跳冲四。 三:指活三和眠三。 活三:己方再加上一子,可以形成活四的三。 眠三:己方再加上一子,可以形成冲四但不能形成活四的三。 二:指活二和眠二。 活二:己方再加上一子,可以形成活三的二。 眠二:己方再加上一子,可以形成眠三但不能形成活三的二。 死四、死三、死二由于在主方向已不可能成五,因 此已不是四、三、二。 手机五子棋特色 便携性:在没有计算机和手机出现之前,要进行一场五子棋游戏都是需要使用真正的棋盘和棋子进行的。 而随着计算机和网络的不断发展,五子棋已经完全可以脱离棋盘的限制。 而近年来随着手机的发展,更加方便的手机版五子棋不断出现。 它不仅具有电脑版五子棋的优势,而且更加的方便。 网络连接能力:由于手机或平板都有一定的网络连接能力,所以可以通过网络连接进行两人对战,这样就减少了距离的限制。 2 开发环境及工具介绍 开发环境 电脑硬件:处理器 GHz Intel 内存 8 GB 1600 MHz DDR3 操作系统:软件 OS X (12C3103) 第 4 页 共 38 页 开发工具: xcode 运行环境 硬件:第一代 iPad 操作系统: iOS 工具介绍 iOS介绍 iOS 是一种闭源的系统,采用了混合内核,是苹果公司开发的一款手持设备的操作系统。 苹果公司一开始是将这个系统用在了 iPhone 上,后来又逐渐的用在了 iPod touch,iPad 等产品上。 它是 以 Darwin 为基础的 一种类 Unix 的操作系统, 原本这个系统名为 iPhone OS,直到 20xx 年 6 月 7日 WWDC 大会上宣布改名为 iOS。 iOS 的系统结构分为以下四个层次:核心操作系统( the Core OS layer),核心服务层( the Core Services layer),媒体层( the Media layer), Cocoa 触摸框架层( the Cocoa Touch layer)。 从功能角度来说, iOS 和 Android 还是比较类似的,都具备触摸屏,高级图形显示以及上网功能。 相较于 Android, iOS 运行更加流畅,对硬件的要求没有 Android 高,同时,它的应用的兼容性要比Android 好。 而 Android 在界面上更加注重搜索功能,它对 Flash 的支持也是一个优势。 objectivec介绍 在开发五子棋程序过程中,除了算法部分使用 C++语言进行实现外,其他部分都需要使用ObjectiveC来实现。 ObjectiveC 是一种 通用 、 高级 、 面向对象 的 编程语言。 它扩展了标准的 ANSI C 编程语言。 将 Smalltalk 式的 消息传递机制 加入到 ANSI C 中。 它是 苹果 的 OS X 和 iOS 操作系统 ,及其相关 API、Cocoa 和 Cocoa Touch 的主要编程语言。 ObjectiveC 最初源于 NeXTSTEP 操作系统,之后在 OS X 和 iOS 继承下来。 目前主要支持的编译器 有 GCC 和 Clang,其中 Clang 被应用于 Xcode 中。 1980 年代 初, Brad Cox 与 Tom Love 在其公司 Stepstone 发明 ObjectiveC,它以一种叫做 SmallTalk80 的语言为基础。 ObjectiveC 创建在 C 语言之上,意味着它是在 C 语言基础上添加了扩展而创造出来的能够创建和操作对象的一门新的程序设计语言。 对 ObjectiveC 最主要的描述是他 1986年 出版的《 Objectoriented Programming, An Evolutionary Approach》。 1988 年 , NeXT Computer 公司获得了 ObjectiveC 语言的授权,并开发出了 ObjectiveC 的语言库和一个名为 NEXTSTEP 的开发环境。 1992 年 ,自由软件基金会的 GNU 开发环境增加了对 ObjectiveC 的支持。 1994 年 , NeXT Computer 公司和 Sun Microsystem 联合发布了一个针对 NEXTSTEP 系统的标准典范,名为 第 5 页 共 38 页 OPENSTEP。 OPENSTEP 在 自由软件基金会 的实现名称为 GNUstep。 1996 年 12 月 20日 , 苹果 公司宣布收购 NeXT Software 公司, NEXTSTEP/OPENSTEP 环境成为苹果操作系统下一个主要发行版本 OS X 的基础。 这个开发环境的该版本被苹果公司称为 Cocoa。 3 需求分析与总体设计 需求分析 本软件设计的是具有人机对战和人人对战功能的五子棋,相较于 PC 版的五子棋,在平板上运行的软件界面需要更加简洁,操作更加方便。 在人机对战部分,由于 CPU 的主频不高,为了保证游戏 的流畅性,在平板上运行的五子棋的算法实现需要较少的代码,但同时又要保证算法具有一定的智能性,否则就失去了益智的功能。 在整个软件中,需要提供以下功能: 1,需要提供一个 15*15 大小并且可以添加棋子的棋盘。 2,需要提供游戏开始功能(重新开始功能),选择游戏类型功能(人机对战和人人对战),提供下子先后手功能。 3,人机对战需要提供一定水平的算法,但是算法在运行过程中不能花费太多的事件,同时,人机对战需要提供不同难度的选择。 4,人机对战功能需要提供玩家悔棋功能。 5,提供自动判断游戏胜利并且在界面上给予提示的功能。 6,提供游戏积分榜功能,显示每一方胜利的局数,并且在每局游戏结束后可以马上更新,在应用重新打开时仍然可以正确显示。 7,提供游戏认输功能,提供游戏状态(某一方下子,游戏结束等)提示功能。 系统设计思想 该软件设计的是一款可以在 iPad 上运行的五子棋游戏,软件打开后直接进入游戏主界面,然后用户通过选择游戏模式,游戏难度,下棋先后手之后开始进行游戏,在游戏过程中软件提供当前状态的提示,玩家在这个过程中可以进行认输,悔棋等操作,当程序判断游戏结束时,程序按照游戏结果更新积分榜。 系统总体设计 按照系统 设计思想,系统的总体设计如下: 第 6 页 共 38 页 系统模块及功能 系统主要模块如下: 主视图初始化模块:创建并添加棋盘视图,添加积分榜模块视图,认输模块视图,棋盘初始化模块视图,悔棋模块视图。 棋盘初始化模块 :清空表示棋子相应信息的数组,将棋盘上之前添加的棋子全部移除。 新游戏设置模块:选择游戏的类型(人机对战和人人对战),人机对战模式还需选择游戏难度,并且两种模式都要选择先后手。 主循环模块:转换下子的一方的颜色。 玩家点击棋盘模块:玩家点击棋盘后,系统根据玩家点击位置将棋子添加进棋盘。 机器人落子算法模块:该模块根据当前棋盘的信息,通过一定的算法,得出最适合下子的坐标。 机器人下子模块:程序根据落子算法模块得到最佳落子地点,然后将该点设置成机器人棋子的颜色。 判断游戏结束模块:玩家点击模块和机器人下子模块调 用该模块,该模块通过判断是否有连续五颗同样颜色的棋子在同一条线上来决定是否结束游戏。 认输功能模块:提前结束游戏,并更新积分榜。 悔棋功能模块:在人机对战游戏中,只要游戏还没有结束,玩家就可以通过该模块撤销自己已经在棋盘上下的棋子。 游戏积分榜模块:显示人机对战和人人对战双方各胜利的局数,并在每次游戏结束时更新。 第 7 页 共 38 页。基于ios平台的游戏“五子棋”毕业论文(编辑修改稿)
相关推荐
age、AFNetworking、高德地图 SDK,首先使用 search 命令搜索类库,在终端输入 $ pod search AFNetworking(以 AFNetworking 为例) , 终端会返回一个 AFNetworking 的所有版本的列表,然后使用命令 $ cd /Users/shiyunlei/Desktop/CocoapodsSample 进入项目目录,
age 邻居发现协议 邻居发现协议是 IPv6 协议的一个组成部分,它解决同一链路上节点之间的互操作问题。 邻居发现协议定义了解决如下一些问题的机制 : (1)地址自动配置:节点为自身的网络接口配置 IPv6 地址,与之关联的有重复地址检测机制等。 (2)地址解析:由其它节点的 IPv6 地址得到其链路层地址。 (3)路由发现:主机发现同一链路上的路由,与之关联的还有参数发现、前缀发现等机制。
电压从 0V 增加到 5V。 当空载时, CSDV =0V,振荡器频率约 60kHz 在最大负载下, CSDV =5V,振荡器频率约 30kHz。 当输出短路时,电流流过半桥,被 CSR 感测。 只要 IC 脚 CS 上电压超过 1V 的门限电平持续 50ms 以上的时间,系统将关闭。 如果负载超过最大负载的 50%, IC 脚 4 上的电压将超过 较低的门坎电压,在经 之后,系统将关闭。
户发送一条私信; (9)收藏微博:收藏一条微博消息。 北京理工大学硕 士学位论文 6 图 微博客户端主要功能 客户端的主要任务 按照本文所设计的客户端的需求分析,它完全基于新浪微博开放平台的 REST API。 因此,它的主要任务是能够解析 REST API 返回的数据,以及按照 REST API 请求格式封装请求。 在客户端进行获取数据的过程中,解析接收到的数据是非常重要的上作。 如果解析失败
就是每次连接只处理一个请求。 在 iPad 端可以向服务器发送 Post 或 GET 方式请求。 因为 IOS SDK 中的 网络请求 API 用起来根复杂,所以本次论文用到的 ASI 封装了系统的 CFNetwork 框架,而且 ASI 是用 ObjectiveC 写的,可以直接在 Mac 系统或 IOS 应用中直接使用。 ASI 目前已经不更新了,但是由于效率高,功能完善,所以现在使用
代码大很多,而函数库 (通常附在软件发行本 )亦和 Smalltalk 系统要使用极大地内存来开启一个窗口的情况相反。 ObjectiveC 的最初版本本不支持垃圾回收,在当时 这是争论的焦点之一,很多人考虑到 Smalltalk 回收时有漫长的“死亡时间”,令整个系统失去功能, ObjectiveC 为避免此问题才不拥有这个功能,虽然某些第三方版本已经加入这个功能(尤其是GNUstep),再起