毕业设计(论文)基于Android手机平台中国象棋游戏.doc

上传人:仙人指路1688 文档编号:2394265 上传时间:2023-02-17 格式:DOC 页数:26 大小:688KB
返回 下载 相关 举报
毕业设计(论文)基于Android手机平台中国象棋游戏.doc_第1页
第1页 / 共26页
毕业设计(论文)基于Android手机平台中国象棋游戏.doc_第2页
第2页 / 共26页
毕业设计(论文)基于Android手机平台中国象棋游戏.doc_第3页
第3页 / 共26页
毕业设计(论文)基于Android手机平台中国象棋游戏.doc_第4页
第4页 / 共26页
毕业设计(论文)基于Android手机平台中国象棋游戏.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《毕业设计(论文)基于Android手机平台中国象棋游戏.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于Android手机平台中国象棋游戏.doc(26页珍藏版)》请在三一办公上搜索。

1、1前言1.1游戏的主题和思路手机游戏一直具有浓厚的兴趣色彩,它一直渗透在人们的生活中,在生活中一点也离不开游戏,游戏能够锻炼我们的思考能力以及我们在生活的兴趣爱好,当然棋盘类游戏也能够让我们在生活中充满能量,开阔我们的思路,将我们的娱乐性、思维性、逻辑性调动起来人,让玩家在现实的世界中,有良好的应变能力,处事能力和思考能力。这些正式大多数普通人需要的,因为在这复杂而充满挑战的世界,机遇与失败是并存的,找到属于自己的生活方式是必要的。他们需要一些道路方面的指引,让游戏为他们作为一个指路灯。游戏在这危急与希望并存的世界,它独树一帜,脱颖而出,让更多的人在迷途的道路上找到属于自己的一片天地。同时有机

2、游戏正式一种独特的思路影响着玩家们,他是潜移默化、循循渐进的,象棋游戏以它独具的色彩让玩家信服,同时大家也更容易接受它独特的魅力,强大的逻辑性思维,让玩家一次一次的去尝试挑战自己的极限,在手机游戏平台上给自己更多的自信,让自己充满活力的去面对生活,无所畏惧,让自己无所不能。根据手机游戏的种种特性,我觉得设计一个中国象棋游戏时必要的,也是首要完成的任务,让更多的人接受象棋游戏,让它独有的魅力去感染玩家,给玩家力量,更好的诠释生活中的游戏的色彩,同时也要传承中国自古以来的象棋历史,象棋的发展在下一代也要传承,正也处于一种至关重要的状态,这是一种责任,也是一种义务。当然棋盘游戏也在生活中有一种指引的

3、意义,社会上也有些这样的例子,比如在车水马龙行人中你经常会发现有这样一群人“低头一族“正在逐步的增加,也正处于一种疯狂发展的状态。在大街上、地铁上、公交上等等一些公场合或者娱乐场所都有很多的低头人,他们正在玩着手机,这样游戏市场就有很多。让棋盘类的游戏在各类的游戏中脱颖而出是我设计的思路,我相信你它的趣味性会让玩家迷上它的,在游戏中还能塑造自己的能力。同时在中国传统文化上还要继承和发展中国悠久的棋盘类历史,让更多的人去了解和知道象棋。1.2手机趣味性触屏游戏的发展和意义21世纪的到来,让更多人认识到了移动设备上触屏的功能和强大,触屏无外乎是操作更快了、技术性更强了、娱乐性更多了。随着andro

4、id系统的横空问世,触屏化的时代到来,虽然不能喝ios媲美,但是它的普遍性和简单性让更多的手机玩家接受了它,并主动去了解和应用它的知识,android手机游戏在中国众多的游戏中占据了百分之六十,抢占原来的塞班和java的市场,但是随着时间的推移,它的市场升值空间还在一直的扩大。安卓的版本和技术的问题,现在的开发人员不是很多,人才这方面也需要一大批的优秀得多高端开发高手,这也是一种就业形式。换个角度说的话,游戏是为了玩家提供的,对于玩家来说要是娱乐效果更强了,气氛更活跃了,在游戏中界面更让人接受了,思维角度更新颖了,创新的意识耀眼了,让玩家的爱慕程度有了明显的增加,一步一步的吸引玩家去闯关,去挑

5、战,去刷新的记录,这正式开发软件游戏的乐趣,也是一种享受生活的方式。对于手机的硬件设备当然开始是键盘操作的手机类游戏到触屏操作的游戏,也让更多的人从玩一两个小时的手机游戏到三四个小时,在这里无形的扩大了我们游戏市场,我们在需求上已经在以前有了明显的超越,技术上那就更不用说,也有了飞一般的进步,从这个意义出发,手机游戏市场还是一个很大前途的市场。但是对于玩家而言,我们的为玩家提供的消遣的方式应该更多一些,这样玩家才会更加相信我们的软件程序会给他们不一样的体验,我们的游戏才会更出色。玩家是上帝,一切要从为玩家的思路去考虑,免费游戏是一种趋势,让玩家陶冶自己的情感,在游戏中能够学习到优秀的文化,不同

6、的思维方法,在中国历史中感受思维碰撞的火花,去弘扬我们的历史文化和浓厚的逻辑性艺术色调,这是棋盘类游戏的主要意义。发展手机上的游戏软件业在市场竞争上已经处于一种优胜的态势,在将来的挑战中还会更加出人意料,让更多的懂得游戏的人为它着迷。1.3中国象棋的发展历史中国象棋有着久远的历史背景文化,本身是属于双人趣味性思维斗争的逻辑性游戏。在古代开始,黄帝命名为士大夫的修身之艺,然而经过几百年的磨练成为怡神益智的体育项目之一。象棋在历史的长河中源远流长,史记记载传说起源于传说时代的神农氏,人们出于群体居住的时代,那时人们就已经有了对弈的思想,在古籍记录中国象棋那时在战国时代就已经流行了、让人接受它了。很

7、早以前象棋的棋子很少,每方6子,他们专注用象牙做棋子,在的象牙上刻上字来代表每方的棋子,那个时候象棋备受人信赖,对于那时候的人们就已经很有意思了。再后来到了唐代有了明显的发展,已经有了的将、车、马、卒四种棋子,但是还不够完善。但是到了宋代棋子的模型基本成型, 有了炮这个兵种,他是因为为了纪念因火药发明而增加的,但是还增加了士、象这两种棋子。由于明代下棋的特点,可能为了方便下棋将将的名字,改为了帅这个字。到了如今,中国象棋已经流传了外国周边的十几个国家,经过了上千年的沉淀和融合,中国象棋已经是众所周知,在中国,为了弘扬中国传统文化,我国组织机构成立了中国象棋协会。中国手机象棋游戏得追溯到美国IB

8、M,它设计了第一台能和人对弈的计算机,虽然不能战胜一个十岁的会下象棋的孩子,但是在象棋游戏上可以说是一个里程碑,它的问世为以后的人们提供了很多的参考知识,它标志着象棋游戏已经开始有了模型,为以后的棋盘类游戏发展奠定了不可磨灭的基石。但是到了1996年,问世了一个智能机器,战胜了了一位世界级别的国际大师,说明用了短短几十年的时间,游戏业发展很快,而且从一个孩童战胜不了,到最后能够呢一位顶尖级别的大师一起比赛,人工智能系统已经可以说是达到了它的顶峰,但是它还有很多的缺陷,比如时间上来说,算的时间较长,界面还是比较单一,而且那个时候的数据库还是不够全面,内存的棋谱较少,思维逻辑单一。它的走法比较固定

9、,很容易被识破,没有一个良好的时间控制它的逻辑语句。但是结果上还是让人们满意的答卷,它预示着人机游戏类型发生了变化,从以前的人人博弈到现在人机对弈,体现了游戏的乐趣,而不用一直找不到下棋对手而失去乐趣,这次有了智能机器人,这样它可以有很长的时间陪你磨练,你只需给它充充电而已。还有就是很少的人因为没有人陪自己下棋而感到苦恼,这也会是一些顶尖级别的大师的问题。这样一来,全部都接解决了,同时也为手机市场增添了一些需求,当然为以后的发展奠定良好的游戏发展基础。这次伟大的跨越,在逻辑算法、思维方式、提前判断等一些算法的语句在博弈中显现出来,这里面的一些有价值的东西还是值得我们去学习和借鉴,据说参加设计软

10、件的人员里还有一位国际象棋大师,这说明游戏设计里面还要有国际象棋大师有一些逻辑思维要在编程中展现出来。中国象棋游戏的发展的队伍正在壮大,要了解这个过程是很重要的,当然从古至今也有很多的棋盘爱好者,一直在找对手挑战自己的棋艺。也有一些人也是爱好这种挑战的过程,享受这里面对弈的乐趣,完成自己的游戏乐趣和获得成功的喜悦。当然对于设计象棋游戏软件的这些人,也是辛辛苦苦,兢兢业业去面对自己的产品,希望更受大家的喜爱,也是一些满足玩家的需要而出发设计的原则。我相信以后象棋游戏的发展会越来越好。1.4棋盘类游戏的特征生活中游戏类型多种多样的,然而棋盘类游戏的逻辑性和趣味性在众多游戏中脱颖而出,一般的时候我们

11、通过游戏打发自己的时间,锻炼自己的思维能力,与此同时增长了知识,享受思考的过程,沉浸在博弈的快乐中,不断地挑战自己的能力,打破常规的思考方式,在自身的思维逻辑得到了历练,这是一个一举两得的事情。同时棋盘类游戏它具有较高智能行和实用性,让更多的玩家能够在游戏的同时获得不一样的快乐,我们在体会游戏乐趣的时候得到对人生的领悟,把游戏中得到的知识落实在行动上,体会游戏带来的趣味性和感知性。中国历史中棋盘类的游戏在生活中能够带动人们的组织能力和操作能力,简单游戏给玩家的感受是不同的,同时给玩家留下的印象也是深刻,玩家通过一次一次的体验告知自己在社会生活中,要运用游戏中的思想,从思维的方式到操作的技能是游

12、戏中得到体验的结果。棋盘类的游戏在众多游戏中有着感同身受的效果,让人们认识到从现实生活再到棋盘类游戏中是两种不同生活方式的体验,了解生活中的种种压力和挑战,棋盘类的游戏让玩家在游戏的同时能够完成对人生的感悟,同时增强了自己的知识和经验,把完成游戏的技能全部运用在生活中是棋盘类游戏所给的。我通过设计这个棋盘类的软件,充分提高它的实用性和创造性,让玩家体验人机对弈的乐趣。同时从玩家的角度考虑出发,从操作到视觉都应该让玩家眼前一亮,有继续玩的可能性,音效方面也要做一些改进,真正做到传承文化和提高自身的修养,在做事情上多考虑一步,所以得到的结果就不同了,这是一个双赢的项目。2 Android手机游戏的

13、平台的简介2.1开发工具Android系统是由Google在Linux基础上开发的一种智能手机操作系统,它应用的很广泛,遍及个个企业机构的众多方面。在平板和微型计算机上面应用的很突出的,这个可以说是一种时代的降临。此系统不仅在技术上得到了众多消费者的支持,而且在生活中也给人们不一样的体验。卫星定位系统和移动通信网络是在21世纪上的一种领先的潮流技术,这些都在android系统上体现出来,掌握新的科技是在这个竞争社会的得力条件,只有这样在社会上才会具有影响力,才会在生活中占据领导的先锋。同时Google开发android也会越来越完善,会越来越具体,更改一些配置,争取能够在平台上和ios媲美,这

14、样来得到一定的竞争力。Eclipse是在android系统上的一个市场比重很高的Java IDE工具的核心软件,一般应用程序都是通过eclipse来实现的,并为程序提供了一些必要的技术支持,例如软件定位系统、同步设置、方向感应等应用设置,为以后的开发奠定了基础,同时这个开发工具是开放性的源代码,让人们能够取其精华去其槽粕,同时在这个开发系统已经超过了塞班的开发工具系统,进来在这些年将会达到中国开发软件的首位,在全球的软件应用程序上也会得到一个突飞猛进的效果,在未来手机系统android会是世界的首要选择的系统。手机开发工具也在不断地升级,现在已经跟新到5.4了,我们不仅能够学习到开发运用的知识

15、,还能跟上时代的潮流,让我们在科技的最前沿了解科学技术的发展之快,实际上这也是开发技术人员所要具备的要求与素质,让我们在工作的学习的快乐之余,学习到在校园和社会工作中不能给予知识和掌握丰富的开发技术经验,理解在这个科技时代中我们要拥有什么技能和经验基础等。2.2系统的组成方式和基础应用Android系统是现实生活中有着重要的地位,从日常的基础生活到商务社会的系统应用上都多多少少的应用了安卓的系统的软件,不仅方便了我们的生活,而且为我们在研究和开发领域都提供了必要的保证,值得我们去进一步思考和借鉴系统应用的知识,通过对安卓系统的了解,我们能够知道它的基本组成方式和其他的操作系统之间的差异,运用基

16、本的四层结构,有效、便捷、高效的在众多系统中脱颖而出,从较高层次慢慢的刀较低层级,通过系统的应用程序层我们能够对开发环境的理解,而且还能应用程序层的知识去了解应用层的其他不足之处,其次是框架层,应用程序的是按照不同的逻辑结构简单易懂的方式呈现给人们面前,同时还包括了数据库,它是必不可少的,因为我们在研发过程中和应用过程中需要去记录自己的数据,在后期的一些操作上的数据也是我们要记录在数据库中的,可见数据库在系统应用层是至关重要的。最主要的一层就是Linux系统中的核心层,这个可以说是cpu,因为有了核心层,这个系统还会像一个正常的罗表盘一样按照人们想象的那样正常的工作,才不会出现差错了,虽然有的

17、时候会出现死机等现象,但是这个过程也是因为在操作工过程中出现了数据拥堵而发生的原因。android系统在代码上也是公开发布的,这个正好给人们去研究提供了号的参照,同时也正因为这个原因,它才迅速的发展起来的,本着公平公正的原则,让更多的人去了解和开发它,已经成为了现在的前沿问题。而且在编程语言上也是很简单的,简化了C语言和Java的复杂程度,浓缩了Linux系统的良好的稳定结构,这也是它能够出一个不败地位的条件,通过java的基础上开发一个应用程序,让许多原来学习Java的人有了一个良好的转型,这样人才也会大幅度流入开发安卓的环境中来,让更多的研发人员在这个稳定系统中不断地成长,从而获得了更多的

18、开发人员的市场,这个人群还不断地在壮大,在这人才济济的时代,拥有强大的人脉还成功的关键,也是一个企业的发展前提。安卓在一些基础应用的方面也是有很强的融合性,把java中的一些遍历函数和线程引用到android系统中。这一条件的引入无外乎增强了系统的灵活性和操作性,同时还能系统还支持虚拟功能。首先把自己程序在虚拟中实现出来,这样减少了在外部设置的困难,而且还增加了系统的性能,减少了出错的可能性,方便开发人员去排错。当出现了棘手的问题的时候,很容易的就找出了答案,而不至于我们在面对这样的事情的时候,不会无从下手。基于虚拟功能之后,系统设备的内存不至于崩溃,减少了系统出错的可能性,这个系统才会更安全

19、,当玩家去运行的时候,才会不至于因为死机、程序突然出错等带来的不必要的麻烦,一定程度上方便了顾客,让顾客更加放心,更容易接受android系统。在传感器方面应用也是很广泛的,可以通过手机的摇晃控制手机的方向,手机的感应装置在游戏中的设置,也让这个系统在21世纪走在了最前沿的道路上。触屏时代的来临,也让手机在java的环境下,让更多的人适应了它的操作方式,它的敏感度和应用程度上,无外乎,让更多的人爱上了触屏,触屏更方便,更快捷的让人们完成自己的目的和意愿,不至于再去通过手动的按键盘区解决生活中的问题,触屏时代将会取代将来的键盘,这也是一种发展趋势,不可忽视。通过手动下载android SDK安装

20、在eclipse中用java编写软件程序,同时为我们开发软件提供了很多可以直接用的程序借口。它的简单易懂性没让开发人员很快的能够上手完成应用程序的制作功能,同时当多个程序共同运行时。在程序运行的时候,还可共同访问共有资源,共享数据,所有的程序都可以直接调用,在内部中,稳定、便捷、高效的运行在系统资源中。通过对应用程序的开发,Google公司已经成为了中国市场的一大巨头,通过权限的设定,对开发的程序起了一定得保护作用,同时每个应用程序之间可以互相串通,共同应用同一份资源,比如照片、通讯录、铃声、存储卡相关的一些都可以互相使用,这是一个不同于其他软件的一种方法,简单的说,通过这种资源共享达到一种资

21、源合理化应用的效果,是其他开发系统不能像匹敌的。通过活动类型的activity书写一系列的函数,同时用view去定义游戏的中实现的画法等布局,完善一系列的界面设计,呈现给玩家不同的感受,同时还提供了service功能,也就是后台的操作,虽然在游戏界面中不会出现,但是在应用程序的内部,这个进程确实是存在的,在后台起着至关重要的作用,实现数据之间的传递,用户和系统之间的交流等都是通过后台运行的服务实现的,然后通过通知(notification)告知用户,让用户去了解当前的状态,这样有利于用户更加清晰的看清数据之间到底是怎么传递的,有利于玩家的操作,同时还能让玩家在不同的时刻关注游戏的进程。3棋盘游

22、戏的总体设计3.1棋盘设计经过大量的从网上查找资料,期盼的种类大致分为两种,第一种是9*10格子,把棋盘看成9*10的数组,这种棋盘不利于操作,因为这个数组,不能考虑到超出边界的状况,所以当玩家走了一步之后,电脑要去识别玩家走的超不超出棋盘的边界,这个数组操作起来很困难,所以我一般不会选择这个数组。如图还有一种就是16*16的数组,这个数组将第一中结合到了一起,是属于一种嵌套的数组,这种比较全面,当我们去应用的时候,很容易看出棋盘的位置,而且当我们去应用的时候,也很简单的去找出下一个棋子的位置,这个数组一共256个格子,每个格子都有自己的编号,每个编号都是固定不变的,当我们去找棋子的时候,中间

23、的格子是对应起棋盘的位置,其中的棋子就在9*10 的数组中,比如车就在【3】【3】、【3】【b】的位置,它在竖着数第三个格子,横着数第三个格子,另一个车在第三排,第11个位置,就是【b】,马就在【3】【4】、【3】【a】,象就在【3】【5】、【3】【9】,士在【3】【6】、【3】【8】,将在【3】【7】,炮的位置是在【6】【a】、【6】【4】,卒的位置是【7】【3】、【7】【5】、【7】【7】、【7】【9】、【7】【b】。如图所示:通过上图可以看出粉色位置是超出棋盘的格子,也就是说是棋盘外的点,不予考虑在棋盘范围外的格子,粉色格子只是做一个统计用的数据。3.2双方的棋子和规则在中国,象棋的棋子

24、是有讲究的,棋子双方一共是32颗棋子,有正反两方。每方有16个棋子,这也是为什么把数组设置成16*16的数组的含义之一。正方和反方兵种是一样的,正方包括,两个车、两个马、两个象、两个炮、两个士、一个将、五个足,这16颗棋子组成。反方和正方一样,只有颜色不一样。棋盘设置的时候将每个棋子都有不同的标号,假若期盼中有旗子后,就将棋盘中的数组制成1,假若空棋盘的数组0,0,0,0,0,0,0,0,0;有了一个棋子后为0,0,0,1,0,0,0,0,0;这就是放了棋子后的棋盘数组。当期局开始之后,由玩家先走一步,然后电脑去走棋,当玩家或者电脑的将被吃掉为止,是输棋,那么没被吃掉将一方是赢棋,当双方迟迟争

25、执不下,谁也不能把谁将死呢,这个棋局为和棋,这种情况很少出现,但是也有过类似的棋局。当玩家被将军的时候,假若玩家没有把把将挪动,或者把将军的局面缓解,这样的结局也是玩家输棋,只有玩家把电脑将死才是赢棋。在棋局中,将的走法很单调,只能在画好的九宫格里走动,不能够走出格子和棋盘,将的步长很短只有1,将在这棋盘里是最大的一个官位,但是要在保护同时将这个棋子,不能够斜着走九宫格,这样才会让棋子井井有条,然后符合规律的在棋盘内行走,当不符合规律的时候,游戏结束。第二个在九宫格里生活的棋子是士,这个士也很特殊,它只能在九宫格里面走动,因为士这个棋子这能在九宫格里斜着走,士走的步长是1,士可以说是将的第一侍

26、卫,所以是保护将的,当将军的时候,可以用士或者马或者象出去迎战,这样可以保护老将,不被将死,同时士的走法也是在棋盘中较复杂的一种,因为涉及到了将的走法,而且还是在九宫格内走的,所以要确保士的走法正确,也是让程序更加稳定,不至于出错。象的局限性也很多,象这个棋子不能过河,只能够在自己的家里走动,不能出去过河去杀掉对方的棋子,而且走的位置也比较特殊,走的是田字,而且当象在飞的时候,田字中央不能有棋子,如果田字中央有棋子,象是不能走的,只能原地不动或者往反方向走,反方向田字中央也不能有棋子,把象的步长定义为2;也就是象在棋盘中的数字,象在棋盘虽然不能过河,但是象在棋盘上只有8个走位,他是保护将的一个

27、重要棋子,在士之后,象可以阻挡对方小兵的过河,也可以保护自己的将,同时象的弱点也不能忽视,在游戏中一定注意自己的象眼。两个象中一定要注意配合,俗话说“马跳联合气死车“,其实这个象也不然,也是一个重要的策略,杀掉一个象的分数其实是可以和车匹敌的,因为丢象,意味着半壁江山不保,所以象的价值表也是很高的。如图所示:棋盘里把马的位置定义为3,在众多棋子中是比较活跃的棋子,也可以说是以为杀手,既可以将军又可以杀掉对方的棋子,所以是一个比较全能的棋子,在游戏中也是至关重要的,在生活中的对弈中,就有”宁死一炮、不丢一马”的说法,可见马在棋盘游戏中是一个不错的棋子,在游戏的结局可以起到一匹黑马的作用,也是这局

28、棋的输赢的关键步骤。然而马在棋盘中也是有着 不一样的走法的,马是走日的在走的过程中,要遵循的规则就是,日字旁边不能有拌马腿的棋子,若图所示,假若有棋子拌马腿,马是不能跳的。马在游戏中的地位可以和车相媲美,马强调过河将军,马的连环跳是一种必杀技,可以让对方喘不过气来,所以在棋局中,还要慎重保护码这个棋子,避免丢失,才是赢下这盘棋二的关键。马是一员虎将,他是进可攻,退可守的以为棋子,在对弈的时候,一般情况下过了河,对面的局势就危险了,所以在设计马的时候过了河后,价值表分数也就越高。然后就是车,车的步长定义为4,车可以说是第一活跃的棋子,车在棋盘中是一个横冲直撞的猛将,既可以杀敌,又可以将军,而且还

29、能来回走,当被将军的时候,是可以挽救的,能够就自己的老将一命,所以车在后期也是很重要的一颗棋子,当下棋的时候也是要保护车这个棋子的,不要让对方吧自己的棋子吃掉,这也是战略的一部分,要尽量把棋子控制在和自己的将一条线上,这样才能保护老将,而且进可攻退可守,是一个一举两全的计策。在棋盘上,车有两个棋子,在必要的情况下,可以失去一个,但是车丢的要有价值,不能随便放弃这个棋子,因为它的地位在棋盘中属于左膀右臂,要是失去一个话,基本上以后的局面就处于不利局面,所以车这个角色一定提要利用好,在棋盘中起着决定的作用。如图所示:炮在棋盘中是第二活跃的棋子,把炮的步长定义为5。炮的走法比较复杂,用简单的词形容“

30、隔山打牛”。隔着棋子才能杀死对方的棋子,隔着的棋子既可以是对方的也可以是自己的。但是在游戏中,炮的算法很复杂,因为它涉及查询的功能,因为每行每列都要去搜索两遍,这就意味着炮的机动性很强,还牵扯到了遍历和循环判断的过程。这个棋子,在将军的时候用处很大,可以不进入对方的棋盘就能将军,而且还能利用将军的时候,打其他的棋子,这样对自己是很有利的,它的攻击距离很长,所以可以给对面带来干扰,不至于过河去使自己的棋子陷入对方的棋盘中,这个棋子减少了自己棋子过了河陷入危险之中,和马不一样,马过了河,基本上是很难的,然而炮就不一样,前期可以随便跑,但是会有种深入虎穴的感觉,如果走错了,基本上就憋在对方的棋盘中,

31、也就失去了炮的意义,主要还隔子将军的效果。炮的价值表和马是不想上下的,一马、一炮是属于那种远攻的棋子,价值表仅仅次于车而已。兵在棋盘中的步长为6,可以说这个棋子,是后期的棋子,它有5颗,注重最后运用这棋子,兵总的来说分为两种,第一是兵当还没有过河的时候,只能向前走,做法比较单一,不能向左或者向右,第二种是过了河之后,你的棋子会有点像车一样的风格,左右前一步一步的走,它不能往回走,所以走的时候一定想清楚,因为一去不复返,兵的一步一步挪动,是杀对方马、破相的好棋子,所以运用兵的时候要慎重,它也是很重要的,前期也不能随意丢失,一个兵,可能到了最后能起到和车一样的效果。棋盘中一兵一卒都是决定输赢的一个

32、关键棋子。3.3走棋的规则和算法第一是杀棋,将自己的棋子放到对手的棋子上,首先查看是否在九宫格上,用in_fort()这个函数查找,假若这是一步杀棋,就把对手棋盘上的棋子拿出棋局,被拿出的棋子只有悔棋的时候能回到棋盘上,然后将自己的棋子坐标换成刚刚被拿出棋盘的棋子的坐标。这一步杀棋就走完了,当然其他的棋子的杀棋都是一样的,大同小异。第二是将军,首先找到自己将军的位置,然后查找自己被将军的棋子,然后左右排查棋子的位置、是否是过河的卒还是其他对方的棋子。自己的棋子或者对方的棋子要杀掉己方或者对方的将时,这是将军,被将军的一方应该速度放下自己手里的活,缓解被状态,或者将将军的棋子杀掉,假若没有棋子可

33、以缓解被将军的状态,那么只有被将死。还有一种类似被将死的情况就是让对方无法走动,对方有棋子,但是无法走动棋子,这种情况属于对方输了。当然将军也分为好多种将军的方法,其中包括被卒将军,被炮将军,被车将军,被马将军等等,每一步都是算计好的,同时当被将军的时候,还要检测自己的棋子是否又被吃的危险,寻求一个价值量很高的走法去走棋,当棋子在执行过称中要把数据传输到引擎的检测系统中去测试是否有走错的棋子,或者自己的棋子是否存在危险等。第三是胜利,失败,平局三种游戏结局。假如赢了的有几种情况,首先是游戏的一方认输,其次就是游戏的一方被将死或者无法走动,最后就是名将,自己的将和对面的将在一条直线上,而且中间没

34、有任何棋子遮挡时,后面对对方的将的一方为输方。平局包括两种原因,一是双方都不想走了,结果意义不大,双方棋子在什么位置还差不多,走了很长时间不能得出谁是赢家,所以选择和棋。3.4象棋游戏的计划准备在真正的棋盘游戏的时候,有很多棋盘局面的变化,以为顶尖级别的象棋大师也不一定能够全部都记下来,所以还需要一个存储器存储自古至今这么多年的棋盘局面的棋谱,把一些精华的棋谱全部存储到棋盘中,丰富自己的数据库,这样当和玩家对弈的时候,也不至于,书到用时方恨少,真的,一定要确信,让自己头脑变得丰富起来,当下棋的时候,面对各种的的棋局,都能够从容应对,这就要求我们的棋谱量一定要大,不能随随便便一了百了,要耐心细致

35、的把棋谱输进计算机的存储器里,数据库丰富了,这样计算机才会更加聪明,才会战无不胜。棋盘的棋局中还蕴藏了很多传统的知识,这里面会用到数学中的数组,概率,批判,假设等等一些列的新局面,棋盘中有很多新出现的局面和策略,我们要熟练面对,并去解释,去诠释这个产生的原因,并通过计算机的计算,测出棋盘中最应该走的那一步,这样而言,才能真正开发出来棋盘对弈中的乐趣来,对于玩家而言,才会真正的玩下去,继续游戏的可能,知道比赛的乐趣,就是一起开心的锻炼自己的思维能力以得到成功的那种“感受。“象棋游戏还是传承中国象棋文化历史的重要责任,从古到今,它的发展历程以及发展到现在的一种艰辛的结果是值得我们去虚心敬仰的。首先

36、从网上找了一些棋子的图片作为棋盘中的棋子把棋子,棋子的后缀为”png“格式的,将他们存储到res/drawable-nodpi,把棋子分为2种,一种为红色,一种为黑色,这样形成两种阵营。准备声音文件,把声音资源放在res/raw中为以后调用时方便操作,声音的后缀是”mp3“的声音格式的。棋盘的绘制是在view()画线的方法画出来的,在一张空白的纸上画出棋盘的模型,每个相交的线上,有个字的坐标,构成了我们之后要用的数组的下角标,我们在查询用的时候也很简单,不用去再去筛选,直接存在链表中,要是用那个坐标,直接取出就行了。还增加一个功能就是能够放大的功能,市面上一般的棋盘类游戏都是把棋子放大的功能,

37、而我这次是把棋子和棋盘一起放大一下,这样就不至于一些老年人玩的不方便,也是出于玩家的方面考虑,把这些点集于一身,这样就会让玩家继续玩,是软件更有竞争力。同时也让玩家更容易接受这种新玩法。这个放大的功能看上去很普通的,但是在用的时候,能给玩家眼前一亮的感觉,操作的简单性,游戏更具趣味性,而且当游戏的时候,系统也比较稳定,不会出错,不会因操作不当出现游戏突然停止或者程序崩溃的现象等。在游戏的实现中,首先初始化游戏画笔,然后修画笔的颜色onTouchevent(),设置它的大小setStrokeWidth();用cavas.drawBitmap()构造放大效果的棋子以及边框等,还有时间,红方和黑房的

38、棋子都是用画布画出来的。初始化图片initBitmap(),把所有要用的图片都加载到这个函数中,方便以后的调用。相当于一个数据包的集合,是程序的源文件的生产场所。3.5游戏的结构图棋盘类游戏中主要包括三部分结构,首先是游戏的主菜单界面Gameview(),其次是游戏欢迎界面welcomeview(),最后就是游戏界面。在欢迎界面主要是运用闪屏来实现该界面的功能,调用surfaceCreate()创建函数,生一个线程,实现闪屏的内容。简单说就是渐变技术实现播放图片的效果,一张图片的播放完毕后等3秒钟后,去播放下一张图片,然后以此类推播放后三张图片,实现一个闪动的图片的片段,让玩家在进入游戏时有兴

39、趣去继续玩下去。简单点的图片数组Bitmap bn;是实现循环播放的效果。这也是友好界面的应用设置,更适用于玩家去了解该去做什么,闪屏的效果简单介绍了游戏的内容,主要还是吸引玩家的作用。目前很多的市场上,为了吸引更多的玩家,把界面做的绚丽是非常重要的,所以做游戏时这也是非常重要的也是要谨慎考虑的。界面的美观能够吸引玩家继续玩下去,如果界面做的不好,内容不精彩,很可能就是去在市场的竞争力。这样就会导致一些列不好的结果出现,就是去了开发这个软件的意思,在市场的需求中,首先传承文化,其次能让玩家体会到逻辑思维和思想模式的变迁,通过游戏获得生活的体验,在玩游戏中学习到知识,并且能够锻炼玩家向更积极向上

40、的方向指引,所以中国象棋游戏人机对战承载好多理性化的设计,更加贴切玩家,是从玩家出发的一款软件。在游戏的主菜单上,我采用绚丽的2d炫彩的效果,这是通过viewConstant()函数实现的,让玩家更容易接受游戏菜单界面,我采用的是一个古装的车子,在这个就好比战场上的车,比喻打战时候,车是一个主要的棋子,在游戏的时候一定要保护好这枚棋子,不能随意丢弃,这是关乎输赢的棋子,一定不能随便拱手送人或者和对面的玩家火拼,子换子了,这都是不可取的,失去车,相当于失去左膀右臂一样,所以在棋盘上给玩家一个提醒的作用,要谨慎小心的去面对棋盘上额每一个棋子,都想好了该怎么办,这个闪屏也是运用第一个欢迎界面时候,只

41、不过是用了2张照片,这两张简单而有意义的,也是运用Bitmap bn实现数组的图片编辑。游戏的主界面上,画的主要是楚河汉界,还有双方的阵地。在绘制过程onTouchevent()函数进行触摸屏幕监听回调的方法,来判断地电脑是否在下棋,下棋的位置在哪里,这里面包含了一些附加功能和个个棋子位置。游戏环境中,音乐史必不可少的,同时用if()语句判断是否触摸音乐按钮,对音乐的设置,根据声音的大小可以更改声音的大小,这里的声音都是一个简单的监听工具,能够接受和玩家调整声音大小的数据。同样也是运用if()语句判断调整难度的工具栏,这是一个将任务的难度调低、调高的工具,在人们觉得自己是初玩家来说,这是一个新

42、手,去下一个很高深的象棋,肯定是通不过的,所以我们在给刚刚接触的玩家一个新手晋级的计划,一步一步的从简单难度到高深难度,从不怎么会到成熟。对于设计软件的一大特色,有了难度的高低,可以把玩家分为简单的、一般的、专业的玩家,这样玩家可以根据自身去选择游戏难度的高低。还有就是可以实现一个放大走棋步骤的功能,更加方便玩家去操作,这样人性化的设计也是为了给玩家留下深刻印象,让玩家继续游戏并闯来愉悦身心,获得精神上的喜悦等。3.6游戏的引擎算法主类这个棋盘类游戏主要包括了这几个类,基础常量类,算法方法类,引擎主类,数据比较器类,走法的步骤类。其中中国象棋游戏的基础常量类constant()包括了算法引擎的

43、一些相关参数,包括了一些价值数量表,棋子的情况,棋子的数组,开局的时间数,以及玩家选择的难度等等。算法的方法类loadutill()主要是在棋盘类游戏中,车、炮、马、兵等一些棋子的走法和走的位置,这个可以提供游戏中棋子的一些规则和一些必要的实现方法,当计算机去判断玩家走棋的时候需要通过这个算法去遍历棋子的位置。引擎主类chess_loadutill()主要是计算类,也是计算每走一步的价值力,从这个更价值上判定走的这一步的正确与否,这个可决定是否是一步杀棋的方法,在游戏中起着决定的作用。比较类mycomparator()也可以说是查询类,查询棋谱的数据或者在游戏中个个棋子的所对应的棋子坐标,棋子

44、在棋盘上的角坐标是否是正确的,判断是否被拌马腿,堵象眼等都需要比较类去一步一点的实现。最重要的一类stackpalychess()是针对悔棋这个按钮来实现的,例如进行悔棋的判断,把玩家和机器人所走的每一步放进栈中,当需要悔棋的时候,我们要从栈中取出来,还原到棋盘中,自己去核对一下信息,悔棋的功能为那些刚刚开始玩的玩家,我们要多多关照,有了问题积极的参与解答,不仅帮助别人成功的同时,自己还取得了成功。主要的引擎代码通过这个函数 GenerateMoves()生成所有走法,需要经过以下几个步骤;运用指针pcSelfSide 获得红黑棋子的标记 分别为 红8 黑 16 for (sqSrc = 0;

45、 sq 256; sq +) /循环整个数 找到一个本方棋子,再做以下判断: if (pc& pcS) = 0) /如果不是自己的棋子 continue;/返回 / 2. 根据棋子确定走法switch (pc - pcS) case PIECE_KING:/如果是王 for (i = 0; i 4; i +) /可以走4步 sqDst = sq + ccKini;/根据步长 可以得到可走的目标格子 if (!IN_FORT(sq) /如果不在九宫格 continue 通过指针找到终点的棋子 if (pc& pcS) = 0) /如果各自上的棋子 不是自己放的棋子,那就根据起点和终点获得走法 n

46、GenMoves +;/存放棋子步骤下的数组自动加 break; case PIECE_ADVISOR:/如果是 士 这样以此类推,把 象 车 炮全都遍历一遍得到结果,去执行下步骤的判断价值表,然后去走棋子,找到一个合理的走发。 4总结通过这一次游戏设计编程学习,我能够感受到自己在学习中所具备的不足之处,首先就是,刚刚接触到这个题目时,漫无目的的去搜网上的相关知识,这样极具浪费了自己的时间,而且效果也是十分不好,应该合理的规划自己的时间,把什么时间该做哪一步都规划好再去实施。我相信,做任何一件事情只要有计划、有条理的去完成都是一份合格作品,这样不仅锻炼了自己解决问题的能力,而且还能很好的去为自

47、己以后打下简史的基础,当问题来的时候,不要害怕,我要一点一滴做好自己的工作,勤奋的学习,追随自己的老师,有不懂得问题,随时向老师解答,这样对自己的印象还会更深刻,说白了,这也是套近乎的一种选择,凝聚在这样的环境中,让自己成功的话,可能更加容易,也是更有效果的。当我所不懂的问题一次一次的出现我的面前的时候,我已经茫然了,不知道该去做什么了,不知道怎么去解答了这问题了。我个人认为更多的原因还是自己不够深入了解棋盘里面的奥秘,那个时候很苦恼,经过自己内心不断地给自己打气。我要解决它,一直在我的脑海里徘徊,我本着一颗执着的心,仔细钻研着。真的通过这在开发中的几件小事,我能够感受到,不同模块的问题有不同

48、的困扰,内心的一种感受是记忆犹新。因为毕竟是从一点不懂到慢慢了解,到最后可以解决我遇到的问题,我想这种成功的喜悦是其他方式给予不了我的。编程是我的梦想,在这次学习中,我已经能够掌握了一些基本的技能技巧,遇到问题时,已经不至于模不到头脑而浪费了时间了。我们要善于总结以前的经验和教训,在以后的编程中完善自己不足,开阔自己思路,明确的自己的目标,找准自己的方向。我觉得人生中需要一份挑战,用于战胜自己的内心,这样自己的人生才会更有意义,通过这简短游戏编程我已经能够认识到作为一个编程员是辛苦的,但是做好,做优秀的编程员更辛苦,需要一步一步的去历练自己,同时在还要不断锻炼自己的表达能力,因为表达也是一份财

49、富,在生活中,我希望我的挑战越多,我的财富也就越多,那个时候,我的未来就是属于我自己的掌控,不被其他人所约束自己的命运。简短的学习中国象棋游戏的设计,我能够感受到中国象棋对弈的奥秘,这是一个复杂而具有乐趣的一个游戏模式,这是一个思维上和逻辑上玩家和编程人员火花的碰撞,玩家要去找编程人员的突破口,而对于编程人员来说是把自己漏洞填写完整,不被任何人看出来。这种游戏特别像小时候那种感觉,一个藏一个找,在慢慢的享受这个过程是奇妙的,让自己感触挺深的。还有一点就是,面对困难的时候我们要坚强的看待,只要我们在多努力一点点,距离成功就会更近一点点,无论何时都不能轻谈放弃,我们更多的时候,我们需要的是那一份坚守,这样我们打的成功才

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号