《基于微信平台的智力小游戏开发 .doc》由会员分享,可在线阅读,更多相关《基于微信平台的智力小游戏开发 .doc(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、广东东软学院本科生毕业设计(论文)摘要近几年来,游戏行业的发展呈现出一种井喷式的趋势走向。越来越多的游戏产品逐渐融入到大众的生活中,各类游戏产品层出不穷,它们占据了人们的大部分娱乐消遣时间,成为了玩家互动娱乐的新载体。同时,它们也在日益竞争激烈的市场上,创造出宏大的重要商业价值。在2018年年初时,有一款特殊的新颖游戏诞生了,它以其用户数量庞大、操作简单、无需下载的特点,迅速吸引到大批玩家用户的喜欢,裂变式的传播方式迅速走红于我们的社交平台,它就是微信小游戏。本项目要实现的是基于微信平台的智力小游戏五子棋,开发实现是在基于HTML5+JS技术下进行,主要采用JavaScript开发语言进行编程
2、。项目设计的微信小游戏五子棋,实现了玩家用户与计算机人工智能AI之间的双方博弈,其中在人工智能方面,涉及到决策、规划、搜索、推理技术的运用,通过特定的算法计算出AI的下的每一步棋。玩家通过博弈进一步达到锻炼到自己思维能力的目的,在消遣娱乐的同时,也提高了自身的下棋技术,项目内容主要包含棋盘棋子绘制、赢法数组、玩家落子、判断获胜、计算机AI落子的思路、计算机AI落子实现等。关键词: 微信 小游戏 益智 五子棋 JS AbstractIn recent years, the development of the game industry presents a blowout trend. Mor
3、e and more game products are gradually integrated into the public life, and various kinds of game products emerge in an endless stream. They occupy most of peoples entertainment time, and become a new carrier of interactive entertainment for players. At the same time, they also create great business
4、 value in the increasingly competitive market. At the beginning of 2018, a special game product was born. With its large number of users, simple operation and no need to download, it quickly attracted a large number of users likes. The fission mode of communication quickly became popular on our soci
5、al platform, which is wechat small game.This project is to realize the intelligence game Gobang based on wechat platform. The development and implementation is based on HTML5 + JS technology, mainly using JavaScript development language for programming. The game Gobang designed by the project realiz
6、es the game between the user and AI. In the aspect of AI, it involves the application of decision-making planning, search and reasoning technology, and calculates every move of AI through specific algorithm. Players can further achieve the purpose of training their thinking ability through game play
7、ing, and improve their playing skills at the same time of entertainment. The project content mainly includes the drawing of chessboard, winning array, players falling, the idea of judging players winning, computer AI falling, computer AI falling, etc.Key words: WeChat Little game Alpinia Gobang JSXL
8、I广东东软学院本科生毕业设计(论文)目 录 1.绪论11.1 课题研究的背景与意义31.2 智力小游戏的发展31.3 课题国内外研究现状41.4 课题研究目的41.5 论文结构安排52.小游戏开发工具和技术概述62.1 微信开发者工具62.2 JS开发技术62.3 HTML5技术63.小游戏需求及可行性分析73.1 小游戏概述73.2 小游戏程序可行性概述74.游戏市场及产品调研84.1 小游戏市场现状94.2小游戏产品调研105.游戏创意构思115.1创意思路115.2游戏背景115.3游戏玩法125.4游戏亮点126.五子棋小游戏整体设计136.1棋盘绘制设计136.2棋子绘制146.3落
9、子过程设计思路146.4按钮绘制与轮替开局设计156.5判断胜负设计思路186.6 AI落子设计思路206.6.1五子棋相关术语介绍206.6.2电脑AI落子设计思路237.五子棋小游戏功能实现247.1 工具安装、游戏AppID申请以及新建编辑准备257.1.1 微信开发者工具安装267.1.2 微信小游戏AppID账号申请267.1.3 新建编辑准备267.2棋盘绘制的实现277.3棋子绘制与判断落子的实现277.3.1棋子绘制的实现277.3.2判断落子过程的实现277.4五子棋赢法数组统计实现277.5游戏输赢的判断的实现287.6电脑AI落子的实现318.游戏测试408.1 测试环境
10、408.2 测试项目及结果428.3 测试结果预览图42结论43参考文献44致谢451.绪论1.1课题研究的背景与意义益智小游戏“跳一跳”上线20多天来,就拥有了庞大的玩家用户,男生女生用户所占比例为1:1;用户数量就快速达到3.1亿,而当时中国整个手游的用户人数才4亿多;游戏用户留存比例超高,与H5游戏的低留存率相比,这中间有着相当相当大的差距存在。根据当时中国WeChat Top 500报告显示,总共超过1900个微信小游戏发布推出,其中益智休闲类的小游戏超过80%,其次为竞技游戏与棋牌游戏,可见益智小游戏深受大众喜欢追求;“欢乐五子棋”、“方块弹球”、“跳一跳”、“海盗来了”都成为了炙手
11、可热的爆款。微信小游戏正式开放的时间是在2018年10月份,在这之前经历了一年多的成长酝酿,小游戏数量早已超出7000多个,市场规模快速成倍扩大,每天在线踊跃的人数超过1.5亿,可以说,微信小游戏已经具有与其他手游、页游、端游竞争对手抗衡的力量并列共存的趋势或者抗衡的力量。而益智类小游戏所蕴含的力量将是更加强大,在后续的市场将占据大片江山。1.2智力小游戏的发展智力小游戏,可以通过玩乐的方式强化人的眼睛、双手、大脑的反应能力,在游戏中提高人的快速反应和逻辑思维能力。优秀的智力小游戏可以让孩子在玩乐中有效地强化智力,乐趣性程度也很高,既耐玩又好玩。五子棋是具有特色的游戏之一,五子棋是一种两个人玩
12、的益智游戏,属于传统的白棋和黑棋。中国是全球五子棋潮流的诞生地,在日本进一步得到的发展,在欧洲得以风靡流行五子棋,五子棋是我国的国粹,是我国民族文化遗产的一部分。五子棋作为国际上体育文化的交流中不可缺少的一部分,在世界范围内也越来越受欢迎。1.3课题国内外研究现状微信小游戏在国内游戏市场开始爆发,根据3月微信游戏小程序报告数据得出,其占据庞大游戏的市场,人数规模就已经超过4亿。在游戏开发方面,公司开发商主体为235个,总占比33%,而开发主体个人居多,个人开发者所占比相对高很多,占比为67%,各大渠道各大厂商人群纷纷入局,谁也不想放弃这个流量风口。正当国内微信小游戏市场如火如荼时,微信小游戏也
13、开始向海外市场伸手,在东京TGS拉开帷幕之际,微信小游戏国外官方网站正式推出,国外版微信同时也加入了小游戏版块, Statista数据表明,微信拿下了7月份移动通讯App MAU排名中TOP3的位置,坐拥庞大的用户量,并以小游戏在国内市场的经验,相信在不久的未来,微信小游戏同样可以在海外市场拿下出色的成绩。在前景优秀的微信益智小游戏中,作为特色代表的五子棋游戏,在世界的影响力同样不可小视。随着五子棋的推广,普及力度的加强,在全国各地兴起了五子棋组织的建立,各地各种五子棋比赛争先而出,应运而生,带起了全民下棋运动,运作了很多民间赛事,在上海及其周围附近城市先后创办了地方重要赛事,地区之间也拥有者
14、密切的交流学习。全国五子棋邀请赛作为一项全国性五子棋传统赛事,不仅参加人数最多,赛事规模最大,而且是国家水平最高的比赛。 在这近几十年,五子棋在网络上也大受喜欢拥有着众多粉丝群体。并且在益智棋类游戏中,玩家的人数总是占据上位。未来时间里,对五子棋感兴趣的人也将会大幅度增加。五子棋与商业化的融合也将日益变多。正因为人工智能技术持续发展、时刻创新,相信不久之后的五子棋游戏会更加出色、更为耀眼。1.4课题研究目的微信平台益智小游戏属于轻量级游戏,对于游戏厂商和开发者来说,很大程度解决了研发设计难度高、开发时间漫长等问题,相比其他大型游戏,小游戏可以快速低成本完成开发,也很适合一些独立个人开发者;其次
15、,微信小游戏是无需下载、用完即卸,不会消耗到用户手机储存空间,只占少许容量,加上不会影响到手机性能方面,也因此深受大众用户所喜爱;再则,独立研发游戏所需要的条件要求较低,加上拥有着微信平台对其进行的维护,所以使得游戏平台也非常灵活。同时,通过微信平台,给小游戏添加上社交属性,赋予了微信群推广、微信好友互动、好友排行榜竞争等重要属性功能,精准抓取到玩家用户的需求。不可否认,微信小游戏实现让玩家能够有效用上空余时间进行消遣娱乐休息,为游戏行业打造出一个全新生态圈,拥有着锦绣般的前景,未来的发展打造中,将在游戏产品行业中,日益壮大。1.5论文结构安排本项目设计介绍一款以微信平台为基础智力小游戏五子棋
16、的开发及玩法。第一章介绍了研发的背景、现状、游戏发展;第二章介绍了开发该款游戏所使用到工具以及开发相关技术的概述;第三章分析了整个游戏系统框架,包含功能需求点和可行性分析;第四章阐述了游戏市场及产品调研;第五章阐述了游戏创意构思以及亮点所在;第六章讲解了五子棋小游戏整体设计;第七章讲解了五子棋小游戏功能实现;第八章验证了游戏测试方案、结果;最后完成课题结论、致谢与参考文献等。本项目的五子棋小游戏主要实现人和电脑的对战下棋。最重要的就是,电脑有一定的思维能力,在人走完一步棋以后,电脑能够思考,然后很准确的去走下一步棋。最后无论哪一方能够五子连珠以后,就判断游戏结束,连珠一方获胜。 2小游戏开发工
17、具和技术概述2.1微信开发者工具开发者工具是针对微信小游戏开发设计的必要软件,是由国内腾讯公司提供的,公司团队还发布了开发游戏的设计指南和开发文档,该工具拥有众多功能,包含了游戏开发,代码调试,效果预览,成品上传等。而全新上线的开发者工具,还集成了代码编辑、研发调试及游戏推出等重要功能,对于开发者可以快速高效地开发微信小程序与小游戏,起到至关重要的。2.2 JS开发技术JS开发技术全称为“JavaScript”,原名为“Livescript”,于1995年,由所属网景公司的布兰登艾奇设计而出。也简称为“JS”。可以说,JS是由网景和Sun公司,合作一起将其投放到市场的。也因此,在语法上,JS与
18、JAVA有很多相同点,JS的一些命名与定义也是从中借鉴,给人们的感觉也是“看上去像Java”。2.3 HTML5技术HTML5既适用于移动端,也适用于服务端开发。其不再往多个目标深入专研,它里面包含很多的要素已被大多数编程厂商所沿用,并开始持续发展。相比之下,它与HTML有些相似。这事实上,使用HTML5的唯一原因是因为它的编写过程非常简单明了。现在,您已经可以考虑使用HTML5来编写代码了。它可以帮助您改变设计方法和编写代码的方式。3.小游戏需求及可行性分析3.1小游戏概述本微信小游戏是一款耐玩有趣与界面简洁的益智五子棋。具备五子棋的基础功能:黑白双方、赢法、玩家落子、AI落子、判断胜负、重
19、新开局的等功能。该款小游戏可以实现玩家用户与电脑AI之间的双人对战游戏,提高人们的思维敏捷力和逻辑分析能力。3.2小游戏程序可行性分析(1)运行可行性运行可行性是指功能结构对整个模块所带来的影响,以及各个因素对结构的适应性。从这个游戏结构使用难易程度上来考虑,小游戏规则相对简单,界面设计的非常简洁,便于快速入门操作,具有手机操作常识就完全畅玩整个小游戏。(2)技术可行性通过一系列的线上线下调查和探讨研究,确定出整个游戏的功能结构。根据这个结构目的来确定所要的条件能否具备,大致可以从操纵人员的技术和数量、操作的性能、硬软件的环境等方面去思考可能发生的情况。在所用工具方面上,我们选取用微信开发者工
20、具对五子棋游戏实行研发。可以快速高效地开发微信小程序与小游戏,对于这个层面是没有问题的。在所需硬件方面上,我们有着多样化的选择,一个基本配置的普通电脑,就可以实现整个小程序研发系统结构顺利运行。微信开发者提供给大多数功能都是免费,开发者不需要考虑经济方面的困扰。(3)经济可行性游戏的经济可行性是通过对功能结构的整体分析,加上对后续所收获的利益,以及最终的利益是否大于投资的利益的评估。在这类费用里,主要包含完整运作的费用、整个游戏搭建费用和后续维护的费用等。在所需软件方面上,采用免费使用的软件开发,不需支付任何费用。小游戏开发操作快速方便,开发者不需要太高超的技术,通过学习可以掌握技能。4.游戏
21、市场及产品调研第一款微信小游戏上线推出的时间是2017年年底,到现在已经经历了3年时间的酝酿,从一开始的发布全面开放到如今如火如荼,发生超高速超高质量的发展变化,中间究竟蕴含着怎样的巨大的商业商机,使得成千上万的开发商涌入其中。4.1小游戏市场现状通过回顾2019年市场数据了解到,在年初的时候,仅当月流水超过一千万的小游戏接近50款,还有194款年注册超一千万的高质量游戏上线推出。这些数据相比上一年年初的小游戏开始开放,整体提升幅度非常大,提升接近40%,也意味着,不管是市场的商业盈利还是玩家用户人数规模都提升不少,整个用户群体增加了45%,玩家对游戏内容的新鲜渴望度也在疯狂增加,整个小游戏的
22、生态都发生高质成倍的进化,超高速在多个方向持续发展。根据3月微信游戏小程序报告数据得出,小游戏占据庞大游戏的市场,其人数规模就已经超过4亿。总共超过1900个微信小游戏发布推出,其中益智休闲类的小游戏超过80%,其次为棋牌游戏与竞技游戏,可见益智棋类小游戏深受大众喜欢追求;“欢乐五子棋”、“方块弹球”、“跳一跳”、“海盗来了”都成为了炙手可热的爆款。在游戏开发方面,公司开发商主体为235个,总占比33%,而开发主体个人居多,个人开发者所占比相对高很多,占比为67%,各大渠道各大厂商人群纷纷入局,谁也不想放弃这个流量风口。小游戏各项数据增长变化如图4-1所示图4-1小游戏各项数据增长变化4.2小
23、游戏产品调研既然小游戏发展前景如此美好,那么什么类型的游戏是其中的佼佼者呢?该类游戏又发展到什么地步了呢,它又是为何能够发展起来的呢?答案是益智类小游戏。在整个2019年时间里,喜爱该类游戏的用户人数突破一亿,不止拥有如此庞大的用户群体规模,还因为其巨大商机深得开发商热衷,年注册过千万的小游戏数量接近20款,这些数据都还在突飞猛进地在增长。也是当之无愧的整个小游戏生态系统中,最具代表特色的一个游戏品类。相比于其他游戏,益智类游戏有一个很重要的特点,其玩家群体有80%的用户之前都是没有接触过其他游戏的,也意味着这类游戏对于他们而言,有着非常高的新鲜度,探索性,非常足够吸引他们,也成为益智类游戏的
24、忠实用户,后续留存效果明显,现在用户规模已达到6亿。益智类小游戏各项数据如图4-2所示图4-2益智类小游戏各项数据该品类游戏用户有超过50%以上来自三、四和五线地区,他们可能是我们家里的长辈,地铁上的乘客,办公的大叔,或者身边还在读小学的弟弟妹妹,每一个都会很大几率成为该品类游戏的用户,益智类游戏不是主流游戏,但也正因为这些用户群体,让它成为了如此火爆的最具特色的游戏。同时,我们观察19年时间巨大潜力的三线、四线和五线城市的网民情况接近5亿,而该品类游戏已接触且转化的人群规模只是其中2.2亿,意味着还有2.4亿群体等待有效转化,如果可以实现2.4亿群体的转化,将会获得难以想象的惊喜。19年整体
25、用户规模变化如图4-3所示本设计所开发的微信五子棋小游戏,根据时代变化、市场现状以及用户群体进行多方面考虑决定,确定基于微信平台的智力小游戏五子棋作为首选项目,五子棋作为具有特色代表的益智游戏之一,其在世界的影响力不可小视。随着五子棋的推广,普及力度的加强,在全国各地兴起了五子棋组织的建立,各地各种五子棋比赛争先而出,带起了全民下棋运动,具有巨大的用户群体,以及用户所跨越的年龄段大,用户多样化,有着一大批忠实爱好者。在这近几十年,五子棋在网络上也大受喜欢拥有着众多粉丝群体。并且在益智棋类游戏中,玩家的人数总是占据上位。未来时间里,对五子棋感兴趣的人也将会大幅度增加。五子棋与商业化的融合也将日益
26、剧增。其所蕴含的商业价值同样是不可轻视。同款竞品“欢乐五子棋”在市场上有着不凡的影响力,拥有着高额的用户群体,所带来的生产价值与商业收入也非常明显。通过市场以及产品调研,对用户群体的调查,各方面的考虑,最终认为:微信五子棋小游戏是一款符合市场、贴合用户的合适游戏产品,作为本人毕业设计开发项目作品。图4-3 2019年用户规模变化5.游戏创意构思优质的创意可以让游戏拥有巨大的商业价值和发展潜力,同时还具备强大的玩家召唤能力。创意也是小游戏的本质所在,月流水超过千万的游戏有共同点之一也是优质的创意。好的创意才能让创造产生更大的价值。5.1创意思路本项目五子棋游戏取名为五子登科。在“五子棋”、“五子
27、连珠”中都在强调一个“5”的数字,5个棋子缺一不可,只有当5个棋子整齐成一条线上时游戏才会胜利。这与我们的生活中,不断追求美好事物有相似之处。“五子登科”出自我们耳熟能详的民间谚语中。故事讲述的是在公元前900多年,有一位父亲,他家里有五个孩子,从小很懂事,品行优秀,学习能力突出,五兄弟相继取得登科及第的好成绩。后来,五子登科也常常被人用来寄托期望自己的子弟能够像其五子获得成功。也成为了传统的吉祥图案,教导孩子要好好念书。我们将每一枚棋子比喻为一个品学兼优的孩子,当五枚棋子依次组在一起时,就是五个孩子先后登科及第之时,也将取得成功收获胜利!我们通过“五子登科”游戏,既能在游戏中,给玩家带来益智
28、游戏的欢乐,以及思维反应的提升;还能借助这个民间谚语故事,在生活中,激励用户(特别是小朋友玩家)好好念书,为不断追求美好而奋斗努力!5.2游戏背景从前,在遥远的山村有一片梅花林,林中常驻着两个村庄“黑山村”和“白水村”,村子之间都可以和睦相处,每个村民都和蔼可亲。直到有一天,村外派来一位自称“官员”的老先生,并公布了一项科举考试算法制度,称只要谁能完成这纸上的问题,就可以获得一批金银财宝,还能出去村外当官。一时间,两个村子热闹起来。同时,老先生还规定说,只有五个名额而且这五个名额只能给一个村子。率先完成问题的五个人即可获得。两个村子村民开始为了这出人头地的机会,不断努力,学习专研,努力自己成为
29、五子登科一方的其中一子。5.3游戏玩法五子登科是一款益智棋类游戏,五子棋由黑棋和白棋组成,玩家两人各拿其中一色进行轮替落子,并且必须放置于两线交汇点上。本项目设计游戏棋盘格局为 12*12,游戏开始时,选择其中一位玩家先落子,后轮替各落一子,直到某一位在棋盘上,出现水平方向、 竖直方向或正斜、反斜上形成连续五子连珠或以上,则判该方赢得比赛。5.4游戏亮点根据对市场现状的调研,以及对平台产品的研究,本项目设计开发的五子棋五子登科,首先,本身的游戏类型题材(益智向棋类小游戏)就是一大亮点。调研数据表明,在众多微信小游戏品类中,最具代表特色的一个游戏品类就是益智类,益智类的小游戏超过80%,其次为棋
30、牌游戏与竞技游戏,相比其他品类而言,喜爱该类游戏的用户人数突破一亿,不仅拥有着庞大的用户群体,而且其玩家群体有80%的用户之前都是没有接触过其他游戏的,也意味着这类游戏对于他们而言,有着非常高的新鲜度,探索性,非常足够吸引他们,也成为益智类游戏的忠实用户,后续留存大的效果非常明显。深得开发商热衷追寻,年注册过千万的小游戏数量高达接近20款,这些数据都还在突飞猛进地在增长。可见益智小游戏深受大众喜欢追求;“欢乐五子棋”、 “跳一跳”、“方块弹球”都成为了炙手可热的爆款。本设计的项目游戏正是能够符合市场、贴合用户的合适产品,它所属的类型题材的价值性很高,是至为重要的一大亮点。其次,我们游戏五子登科
31、所用的棋盘规格为12*12,总共有12*12=144个落子点,相对与市面上大多数规格的15*15(225个落子点)而言,我们通过减少落子点个数,达到在游戏时长方面做到缩短调整。这样做的的目的,是出于对玩家用户快节奏生活的考虑,面对市场数不尽的游戏,玩家难免会出现玩乐疲劳,如果玩我们的游戏需要耗费很多时间,可能会出现大批玩家玩到一半就直接退出的情况,所以在时间上的把握是非常重要的,太长不适应,太短不耐玩。还有相对于市面上的225个落子点,会存在113颗黑棋与112颗白棋的不公平性,黑棋会占优势,而我们选用的规格黑白棋各72颗,无论哪方先出不会出现棋子数不等情况,保证游戏的公平性。再者,我们游戏五
32、子登科开局方式选用的是用户与AI轮替开局,第一局为用户开局第一个落子,下一局轮到AI开局第一个落子。这样做的目的是,增加用户体验到游戏的变化性和新鲜感,还避免出现都为一方开局,在一局游戏后,玩家以又同样的落子思路进行得到与上局类似的结果,增加新鲜变化可以给用户带来别致的体验,可延长用户的留存以及在玩时长。最后,我们游戏五子登科所选取的名字也是亮点之一,用户在接触与玩乐中,自然而然的会联想到这个民间谚语故事,在生活中,激励用户(特别是小朋友玩家)好好念书,为不断追求美好而奋斗努力!6.五子棋小游戏整体设计本章主要用于介绍五子登科小游戏整体设计的过程,其中由游戏背景、棋线、棋点的依次顺序组成棋盘部
33、分。将绘制的棋子图像准确下在屏幕棋盘位置上,完成我们下棋的效果,以及后续重点对棋局的判断输赢、电脑AI落子的设计思路阐述,游戏整体运行流程图解如图6-1所示 图6-1游戏整体运行流程图五子棋游戏应具备功能结构如下 :(1)显示出一个12行乘12列的棋盘; (2)通过在棋盘上相应的位置点击进行落子,棋子将在棋盘上相应位置上显示;(3)当有其中一方获得胜利时,游戏将会做出判断是否要结束,以及将自动跳出提示告知用户; (4)实现人机对弈,可以电脑AI先下或者玩家先下。6.1棋盘绘制设计 五子登科所要制定的棋盘规格布局为12*12的大小,也就是由12条水平横线和12条竖直竖线交汇组成,线的颜色选择为黑
34、色,棋盘绘制是为正方形画布,位居屏幕中部位置,棋盘底色选择为RGB(203, 167, 138)较黄色填充,比较接近原木的感觉,同时,给棋盘下边框加上一层浅灰色阴影,是的整体具有立体感,游戏背景选择为RGB(204, 232, 207)浅绿色填充,作为护目色起到保护好玩家视力健康,设计大致如图6-2所示图6-2棋盘设计效果图6.2棋子绘制棋子绘制是为圆形,每一个圆形棋子其圆心在于两条棋线的交汇点,每次落子都要准确落在交叉点位置,棋子的颜色选择为黑色和白色,设计大致如图6-3所示图6-3黑棋和白棋设计效果图6.3落子过程设计思路首先,我们定义棋盘的最左上角一个点位置作为棋盘的(0,0),选取上方
35、水平线作为坐标轴的X轴;选取左方竖直线作为坐标轴Y轴。整个坐标体系如图6-4所示,这样在棋盘上,每一个棋子的位置点就能够清晰地读取到。图6-4棋盘制定的坐标体系接着,通过定义一个二维数组来识别整个棋盘上的每一个点的坐标。并将每一个点的坐标的初始值为0,表示在这个位置暂时为空,可以进行用户或AI落子;当在这个位置下了棋子坐标则改为1,表示已有落子,不可以再让用户或AI其他落子了。6.4按钮绘制与轮替开局设计开始按钮绘制是为小圆形,上面显示文字“开始”,底部颜色选择RGB(56, 206, 210)蓝色填充,以及下边添加一层浅灰色阴影,设计效果大致如图6-5所示图6-5开始按钮设计效果图轮替开局设
36、计是根据一个定义好二进制来实现,1为用户先手;0为电脑先手;在游戏重新开始时,通过变化其奇偶性实现01=1和11=0。完成按下“开始”按钮后界面会提示“用户先手”,当该局游戏结束后,按下“开始”按钮游戏重新开始,界面会提示“电脑先手”,在字体颜色选择RGB(56, 206, 210)蓝色并且居中。如图6-6所示图6-6先手提示设计效果图6.5判断胜负设计思路 五子棋的规则为:只要在某一方向上,能够完成5颗或以上棋子相邻相连效果,则为取胜,关于胜负判断算法的制定,主要考虑在水平、竖直、正斜、反斜这几个方向是否具备存在取胜效果。在用户或AI每一次落子后,游戏程序是否会计算你所走的棋子位置,以及棋子
37、位置所连成的效果,判断是否会导致游戏的输赢结束。其中,获取落子位置赢法数组和记录赢法分值数组是输赢判断最为关键的两部分。(1)赢法数组:通过制定一个三维数组mp = 作为赢法数组,用于记录统计所有赢法组合。其中i代表的是五子棋的棋子横轴坐标X;j代表的是五子棋的棋子纵轴坐标Y;k代表赢法的编号,每一个赢法编号都对应棋盘上固定五颗横向、竖向或斜向相邻相连的棋子 。(2)分值数组:通过制定一个一维数组myWin=,用于记录在某一种赢法的实现分值,并将其初始值为0,经过多次循环后,如果还在该赢法上则分值继续叠加+1,当出现在某一种赢法上的分值为5时,则就判断获胜。比如,当在第0号赢法上出一颗棋子时,
38、0号赢法的分值为1;当出现两个棋子时,0号赢法的分值为2;当出现三个棋子时,0号赢法的分值为3;按照规律依次,出现四颗、五颗同理。当出现分值为5时,则意味着在第0号赢法取得胜利,如图6-7所示图6-7第0号赢法上的五颗棋子6.6 AI落子设计思路 6.6.1五子棋相关术语介绍为了方便各位理解,下面将会介绍五子棋一些专业游戏术语。表6-1 五子棋游戏相关术语五子棋游戏术语简要说明阳线在棋盘上的水平和竖直线交叉点两条阳线垂直相交会集的点阴线由交汇点所构成的正斜和反斜虚线落子棋子落在棋线交汇点上的过程行棋方有权进行落子过程的黑方或白方回合黑白双方各落子一次称为一个回合五连5颗一样颜色并且不间隔相连棋
39、子长连5颗以上一样颜色并且不间隔相连棋子成五5颗或5颗一样颜色并且不间隔相连棋子 活四拥有2个位置可以成五的4颗不间隔相连一样颜色棋子冲四只有1个位置可以成五的4颗不间隔相连一样颜色棋子活三再落1子可以形成活四的3颗不间隔相连一样颜色棋子连活三不间隔连着的活三跳活三中间间隔存在1个位置的活三眠三再落1子可以形成冲四的3颗不间隔相连一样颜色棋子活二再落1子可以形成活三的2颗不间隔相连一样颜色棋子连活二不间隔连着的活二大跳活二中间间隔存在2个位置的活二眠二再落1子可以形成眠三的2颗不间隔相连一样颜色棋子活一再落1子可以形成活二的一个棋子眠一再落1子可以形成眠二的一个棋子 6.6.2电脑AI落子设计
40、思路当玩家用户落完子之后,就轮到计算机落子,那计算机是怎么去落子的呢?它又应该落在哪里呢?我们制定一个简单的算法来实现。我们要对当前棋盘上的所有没有被落子的空白位置都要定义一个分值,在经过多回合,越接近五子连珠位置的分值就会越大,分值最大的位置则是优先考虑落子的地方,同时每一个空白位置都有两个分值,分别是玩家用户和电脑AI的分值。在相同棋型情况下,还要区分玩家与AI将要落子位置的分值大小,如果相比AI还无法获胜,而玩家下一步落子将会取得胜利或者更有利获胜,那么我们的电脑AI就要优先去拦截玩家用户落子,在该位置的分值要大些;如果相比玩家还无法获胜,而AI下一步落子将会取得胜利或者更有利获胜,那么
41、我们的电脑AI就要优先执行对获胜位置的落子,在该位置的分值为最大。给空白位置制定的分值如图6-8所示轮走方可以是玩家用户或者电脑AI,图6-8 五子棋空白位置赋值玩家下棋后,由电脑AI分析出一个可能的点,如果在这个位置落子将会形成对方必须提防的棋形时,那么对方下一步就会照电脑的思路下子来做好提防;如果出现了肯定制胜的点,那么该方就可以取胜。7.五子棋小游戏功能实现本章主要用于介绍五子登科小游戏开发实现的过程,关于五子棋的对弈要遵守相应规则,根据制定的规则算法来实现下棋对弈过程的真实与正确。在规则算法中,我们主要去实现:判断胜负,计算机AI这两个重要部分。以及实现对监听设备的触屏的动作感知反应,
42、通过刷新界面可以重新开始游戏的等功能。7.1工具安装、游戏AppID申请以及新建编辑准备7.1.1微信开发者工具安装在微信官方网站下载好微信开发者工具的安装包,右键打开进入安装引导界面,根据界面上的提示完成每一步,安装路径选择合适位置存储即可,点击确定,安装完成后,打开微信开发者工具,根据提示使用手机微信APP扫码登陆,即可进一步开发了7.1.2微信小游戏AppID账号申请注册申请一个微信小游戏AppID帐号,首先,要根据界面提供的引导填入资料和提交对应的文件完成小程序的注册。如图7-1所示图7-1小程序注册引导界面小程序注册完成后,在服务类目上应选择为“游戏”,其子类目可以先选择“休闲游戏”
43、,这样就可以拥有自己的AppID小游戏帐号了。7.1.3新建编辑准备打开已经安装的开发者工具客户端,使用刚注册小游戏帐号登陆微信,用微信“扫一扫”功能扫码即可进入小游戏开发环境中。我们选择左侧“小程序项目”中的“小游戏”,然后点击右方“+”号,即可开始创建我们小游戏项目。如图7-2所示图7-2项目编辑界面在项目编辑界面(如图7-3所示)上填写合适的游戏名称,选择合适的路径存放,登录刚在注册小游戏AppID账号的小程序管理平台,找到小程序的AppID填入到表单里的“AppID”文本框中。填写完整后点击右下角“新建”按钮,即可完成小游戏创建项目。 图7-3小游戏新建与导入项目而在小游戏中,我们只能
44、使用 JS 语言来编写小游戏。小游戏环境没有 BOM 和 DOM API,只有 wx API,不同于浏览器环境,我们在开发者工具可以看到,小游戏只有两个必要文件XXX.js与XXX.json,其中前者是小游戏编写文档,而后者是配置文档,通过点击两次进入目录树中的“XXX.js”文件,我们就可以在这里开始编辑代码了。7.2棋盘绘制的实现本文设计五子棋小游戏采取的是规格1212 的棋盘作为设计原型。(1)首先,屏幕背景和棋盘界面根据HTML5的canvas技术来进行绘制的,棋盘界面宽高是根据设备窗口的宽高(window.innerWidth和 window.innerHeight)按照计算公式来进
45、行设置的,为了我们更换设备玩游戏时,避免出现游戏界面元素错位,比例问题所带来的困扰,可以保证在不同设备终端都可以愉快顺畅玩我们的游戏。(2)同时,为了让棋盘看起来具有美观立体感,我们给其设置了一些灰色的阴影,如果没有阴影看上去就没有那么好看。(3)其次,我们制定一个12行12列的画布,绘制12条横着的棋线,12条竖着的棋线,每两条相邻同方向的棋线之间的间距相同的。我们先通过getElementById()方法识别到棋盘画布,再由getContext()方法得到棋盘一个“2D”环境的上下文,然后通过for循环来设置我们要画的棋线条数,循环12次画出12条线,最后由moveTo()、lineTo(
46、)和stroke()这几个标签方法将棋线连线绘制出来。水平竖直方向棋线绘制方法相同。表7-1 标签方法简要说明标签方法简要说明moveTo(x,y)绘制线条的起始点lineTo(x,y)绘制线条的终止点stroke()把两点连接起来7.3棋子绘制与判断落子的实现7.3.1棋子绘制的实现五子棋的棋子由黑棋和白棋组成,以黑棋设计为例子。对于黑棋的绘制,我们根据beginPath()和closePath()标签方法来进行绘制棋子,棋子为圆形,填充颜色为黑色,棋子大小适中,代码例子如图7-4所示:图7-4棋子绘制实现代码7.3.2判断落子过程的实现(1)实现落子功能:我们定义一个二维数组来标记整个棋盘
47、上的每一个点的坐标。每一个坐标的初始值定为0,表示在这个位置为空,可以进行落子;当在这个位置下了棋子坐标则改为1,表示已有落子,不可以再有其他落子了。代码例子如图7-5所示:图7-5落子实现代码(2)标记行棋方:下棋分为玩家下棋和AI下棋,我们要制定一个标尺来规定轮到谁来下棋,所以声明一个变量me=true,表示轮到玩家下棋环节,反之则是电脑AI下棋环节。7.4五子棋赢法数组统计实现下棋过程的实现属于相对简单,复杂的是我们要怎么去告诉程序去评判获胜,以及计算机AI如何根据我们所下的棋子,做出最合适合理的反应对抗,这是比较复杂难以实现的两个环节。(1)定义三维数组:我们先定义一个一维数组 :mp = ,通过二次叠放数组变为一个三维数组mp=i j k,其中i代表的