cocos2djs引擎的卡牌游戏的设计与实现算法的设计与实现
摘 要随着生活和科技的改善与发展,游戏业进入了一个非常激烈的竞争环境。而卡牌游戏作为游戏中的分支,受到极大的玩家欢迎。如今,国内卡牌游戏的发展较为迅速,但其在游戏跨平台方面依旧不够完善,还需改进。本论文借助Cocos2d-JS引擎作为客户端,Node.js作为服务器,开发了跨平台的卡牌游戏。本论文使用的算法有比较算法,贪心算法,数据库搜索算法,交互加密算法,属性适配算法。解决了游戏核心玩法和人机对战功能如何实现;如何保障游戏公平性及用户信息安全;提高游戏性和游戏运行速度以及降低跨平台的成本这些问题。
Keywords:Cocos2dJS; card game; design; crossplatform; artificial intelligence目 录
第一章 绪论 1
1.1 课题背景 1
1.2 课题的任务和内容 1
1.3 卡牌游戏简介 1
1.4 游戏规则 1
1.5 本人承担的任务 2
第二章 系统概要介绍 3
2.1 游戏客户端 3
2.2 游戏服务器 4
第三章 算法介绍和设计 6
3.1 比较算法介绍 6
3.2 属性适配算法 6
3.3 人机博弈算法 7
3.4 数据库搜索算法 8
3.5 网络数据交互加密解密函数 8
第四章 算法实现 10
4.1 比较算法实现 10
4.2 评估函数实现 12
4.3 数据库搜索算法实现 15
4.4网络数据交互加密解密函数实现 16
结束语 20
致 谢 21
参考文献 22
绪论
课题背景
随着科技的发展,Web和手机已经成为了人们主要的互动平台。跟十年前相比,这些东西都是很罕见的。但现在人们的日常生活已经离不开它们了。十年前的电脑也是电脑软件居多,而现在都是Web云服务。网站渐渐的可以替代了一些软件。时代仍然在发展,跨平台才是现代游戏的趋势。
人工智能是一门很高深的科学,而博弈只是人工智能的一个分支,它存在
*好棒文|www.hbsrm.com +Q: ^351916072#
于游戏,下棋,政治,军事,经济,等等。它着重于去做人所能做到的事情。
游戏,同样也是生活中不可缺少的一部分。游戏在古代被人们发明,如象棋,围棋。到了现在,游戏方式越来越丰富,如电脑游戏,手机游戏还有生活中的游戏。它是现实和虚幻的桥梁。跨平台的游戏是研究的新方向,借助Cocos2dJS引擎来实现跨平台游戏,它可以实现数据同步,在电脑上玩的游戏,在手机上可以接着玩。
课题的任务和内容
任务是用Cocos2dJS引擎,以Node.js作为服务器。语言是JavaScript实现一个跨平台的卡牌游戏。游戏的主要功能是实现玩家与玩家的卡牌对战和交互,玩家与人工智能的对战。
卡牌游戏简介
卡牌游戏来源于卡牌占卜。很久以前,有一个叫做Orlan的男人,他把占卜用的卡牌进行修改并把它应用于游戏,从此卡牌游戏就诞生了。
战争期间,这个卡牌游戏广泛的被士兵们用来消磨时光,间接的使它流行了起来。由于它的普及,世界各地区都制定了自己的规则,而卡模式也各不相同。
本论文卡牌游戏名为“幻想杀”,是源于最终幻想8的卡牌游戏“Triple Triad”。是最终幻想8的MiniGame,在最终幻想8中有着重要的地位。
游戏规则
游戏的基本规则
战斗区域:卡牌游戏的战斗区域是一个九宫格。它与卡牌一样,有时战斗区域的单元格会有属性。而卡牌的四边各有一个值。
比较大小:九宫格上每个单元格可以放一张卡牌。游戏进行时,双方各有5张卡牌,系统随机选择出哪方先出牌。然后双方轮流把卡牌放入单元格中,系统根据相邻卡牌邻边的数值的大小来决定胜负。如果新放入的卡牌上某边数字比相邻对方卡的相邻边要大,则将对方的这张卡翻成对方的颜色。最后,当单元格子放满后,加上在手中剩的那一张牌,哪方颜色多就哪方获胜。
连锁:被翻的卡牌会被当作是新放入的卡牌,然后用这“新放入的卡牌”与其相临的对方卡牌进行新的比较,以决定是否还有翻牌动作出现。这个规则往往可以一次翻过数张卡牌,使场上局势逆转。
游戏的特殊规则
相同:当新放入的卡牌与两张或更多张相邻,并且至少有两组临边,相对的数值相同,就形成“相同”,这时,两张相临的对方卡牌都被翻转。
相加:这条规则与“相同”的主要区别在于要把临边数值相加,若有两组临边数值相加的和相等,那么两张相临的对方卡牌就被翻转。
壁垒相同:有这种规则时,九宫格的四边会被赋予数值。玩家放置的卡牌,靠九宫格的一边比九宫格大,使得九宫格四边的颜色变为此玩家的颜色,九宫格的颜色加入最后的卡牌数的计算。
属性:有些卡牌和单元格有属性,当所放入单元格的卡牌和单元格的属性相同时,卡牌四边的数值都加 1,不相同的话则减 1。之后会加入更详细属性的相生相克功能。
游戏的交换规则
单张:胜利的一方可以随意取走输的一方的一张卡牌。
直接:双方把游戏结束时战场上属于自己颜色的卡牌拿走。
全部:胜利的一方取走输的一方全部5张卡牌。
游戏的其他规则
开放:进行游戏时可以相互看到对方的卡牌,这样就非常需要斗智了。
随机: 玩家不能通过自由选牌来决定比赛所使用的卡牌,游戏中5张卡牌都由电脑随机从玩家的卡牌库中抽取。
突然死亡:出现平局时,按游戏结束场上卡牌的颜色把卡牌平分给双方,双方用这些卡牌继续交战,直到分出胜负为止。
本人承担的任务
本人主要承担游戏的部分数据结构和算法部分,算法的设计和分析。算法包括,比较算法,属性适配算法,贪心算法,穷举法和折纸法,数据库搜索算法,传输加密解密算法。这些算法的实现增加了游戏的趣味性和安全性。
系统概要介绍
《幻想杀》游戏系统主要分为客户端和服务端。游戏客户端只作为游戏动画的展示和发送数据给服务器不做实际的数据处理。而服务端作为主要的数据处理端。这样分离的好处就是解决了玩家作弊,数据不安全等问题。
游戏客户端
游戏客户端介绍
游戏客户端采用了Cocos2dJS引擎,由于它的对象编程思想,使客户端更易于去设计与实现。更是由于它的跨平台特性。可以是游戏成本降低很多,因为我们不需要去写ios和安卓端的代码了。
Keywords:Cocos2dJS; card game; design; crossplatform; artificial intelligence目 录
第一章 绪论 1
1.1 课题背景 1
1.2 课题的任务和内容 1
1.3 卡牌游戏简介 1
1.4 游戏规则 1
1.5 本人承担的任务 2
第二章 系统概要介绍 3
2.1 游戏客户端 3
2.2 游戏服务器 4
第三章 算法介绍和设计 6
3.1 比较算法介绍 6
3.2 属性适配算法 6
3.3 人机博弈算法 7
3.4 数据库搜索算法 8
3.5 网络数据交互加密解密函数 8
第四章 算法实现 10
4.1 比较算法实现 10
4.2 评估函数实现 12
4.3 数据库搜索算法实现 15
4.4网络数据交互加密解密函数实现 16
结束语 20
致 谢 21
参考文献 22
绪论
课题背景
随着科技的发展,Web和手机已经成为了人们主要的互动平台。跟十年前相比,这些东西都是很罕见的。但现在人们的日常生活已经离不开它们了。十年前的电脑也是电脑软件居多,而现在都是Web云服务。网站渐渐的可以替代了一些软件。时代仍然在发展,跨平台才是现代游戏的趋势。
人工智能是一门很高深的科学,而博弈只是人工智能的一个分支,它存在
*好棒文|www.hbsrm.com +Q: ^351916072#
于游戏,下棋,政治,军事,经济,等等。它着重于去做人所能做到的事情。
游戏,同样也是生活中不可缺少的一部分。游戏在古代被人们发明,如象棋,围棋。到了现在,游戏方式越来越丰富,如电脑游戏,手机游戏还有生活中的游戏。它是现实和虚幻的桥梁。跨平台的游戏是研究的新方向,借助Cocos2dJS引擎来实现跨平台游戏,它可以实现数据同步,在电脑上玩的游戏,在手机上可以接着玩。
课题的任务和内容
任务是用Cocos2dJS引擎,以Node.js作为服务器。语言是JavaScript实现一个跨平台的卡牌游戏。游戏的主要功能是实现玩家与玩家的卡牌对战和交互,玩家与人工智能的对战。
卡牌游戏简介
卡牌游戏来源于卡牌占卜。很久以前,有一个叫做Orlan的男人,他把占卜用的卡牌进行修改并把它应用于游戏,从此卡牌游戏就诞生了。
战争期间,这个卡牌游戏广泛的被士兵们用来消磨时光,间接的使它流行了起来。由于它的普及,世界各地区都制定了自己的规则,而卡模式也各不相同。
本论文卡牌游戏名为“幻想杀”,是源于最终幻想8的卡牌游戏“Triple Triad”。是最终幻想8的MiniGame,在最终幻想8中有着重要的地位。
游戏规则
游戏的基本规则
战斗区域:卡牌游戏的战斗区域是一个九宫格。它与卡牌一样,有时战斗区域的单元格会有属性。而卡牌的四边各有一个值。
比较大小:九宫格上每个单元格可以放一张卡牌。游戏进行时,双方各有5张卡牌,系统随机选择出哪方先出牌。然后双方轮流把卡牌放入单元格中,系统根据相邻卡牌邻边的数值的大小来决定胜负。如果新放入的卡牌上某边数字比相邻对方卡的相邻边要大,则将对方的这张卡翻成对方的颜色。最后,当单元格子放满后,加上在手中剩的那一张牌,哪方颜色多就哪方获胜。
连锁:被翻的卡牌会被当作是新放入的卡牌,然后用这“新放入的卡牌”与其相临的对方卡牌进行新的比较,以决定是否还有翻牌动作出现。这个规则往往可以一次翻过数张卡牌,使场上局势逆转。
游戏的特殊规则
相同:当新放入的卡牌与两张或更多张相邻,并且至少有两组临边,相对的数值相同,就形成“相同”,这时,两张相临的对方卡牌都被翻转。
相加:这条规则与“相同”的主要区别在于要把临边数值相加,若有两组临边数值相加的和相等,那么两张相临的对方卡牌就被翻转。
壁垒相同:有这种规则时,九宫格的四边会被赋予数值。玩家放置的卡牌,靠九宫格的一边比九宫格大,使得九宫格四边的颜色变为此玩家的颜色,九宫格的颜色加入最后的卡牌数的计算。
属性:有些卡牌和单元格有属性,当所放入单元格的卡牌和单元格的属性相同时,卡牌四边的数值都加 1,不相同的话则减 1。之后会加入更详细属性的相生相克功能。
游戏的交换规则
单张:胜利的一方可以随意取走输的一方的一张卡牌。
直接:双方把游戏结束时战场上属于自己颜色的卡牌拿走。
全部:胜利的一方取走输的一方全部5张卡牌。
游戏的其他规则
开放:进行游戏时可以相互看到对方的卡牌,这样就非常需要斗智了。
随机: 玩家不能通过自由选牌来决定比赛所使用的卡牌,游戏中5张卡牌都由电脑随机从玩家的卡牌库中抽取。
突然死亡:出现平局时,按游戏结束场上卡牌的颜色把卡牌平分给双方,双方用这些卡牌继续交战,直到分出胜负为止。
本人承担的任务
本人主要承担游戏的部分数据结构和算法部分,算法的设计和分析。算法包括,比较算法,属性适配算法,贪心算法,穷举法和折纸法,数据库搜索算法,传输加密解密算法。这些算法的实现增加了游戏的趣味性和安全性。
系统概要介绍
《幻想杀》游戏系统主要分为客户端和服务端。游戏客户端只作为游戏动画的展示和发送数据给服务器不做实际的数据处理。而服务端作为主要的数据处理端。这样分离的好处就是解决了玩家作弊,数据不安全等问题。
游戏客户端
游戏客户端介绍
游戏客户端采用了Cocos2dJS引擎,由于它的对象编程思想,使客户端更易于去设计与实现。更是由于它的跨平台特性。可以是游戏成本降低很多,因为我们不需要去写ios和安卓端的代码了。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/rjgc/1332.html