java游戏开发--连连看2-实现游戏算法.doc

java游戏开发--连连看2-实现游戏算法.doc

ID:62003225

大小:33.50 KB

页数:11页

时间:2021-04-10

java游戏开发--连连看2-实现游戏算法.doc_第1页
java游戏开发--连连看2-实现游戏算法.doc_第2页
java游戏开发--连连看2-实现游戏算法.doc_第3页
java游戏开发--连连看2-实现游戏算法.doc_第4页
java游戏开发--连连看2-实现游戏算法.doc_第5页
资源描述:

《java游戏开发--连连看2-实现游戏算法.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、文档将游戏地图转换为数组来描述算法总是很枯燥的,没有直接设计界面来得舒服,然而,算法却是整个程序的核心,所以,仅管枯燥,我们还是得耐心地完成这一步。在进行程序算法的设计时,我们首先要尽可能抛开一些无关紧要的部分,这样可以使算法看起来直接明了,但同时也要考虑弹性,以便将来扩充。在前面已经说过了,整个游戏的核心算法也就是以二维数组为主体的算法,那么,定义一个二维数组是必不可少的了。二维数组究竟应该有多大呢?10X10是不是小了,20*20呢,大了?究竟多大比较合适?为了考虑到程序以后改动的需要,我们还是定义成变量吧,这样以后要改动的时候,只

2、需要改动一下变量的值就行了,因此,我们现在为程序增加一个类,使之专门用来保存与程序有关的一些数据。//Setting.javapublicstaticfinalintROW=8;//假设地图有8行publicstaticfinalintCOLUMN=8;//假设地图有8列11/11文档至于为什么要定义成publicstaticfinal,这个,自己想想就知道了:)还不知道?晕,看看书吧:(现在,我们将这个类起名为Map,同时,我们规定,为了描述地图中空白的区域,我们使用0来表示。//Map.javaprivateint[][]map=n

3、ewint[Setting.ROW][Setting.COLUMN];初始化游戏地图在地图初始化的时候,我们需要用一些“随机”的数字来填充这X地图,之所有将“随机”用引号括起来,是因为这些数字并不是真正意义上的随机:首先,数组中具有相同值的元素只能出现4次(具有0值的元素除外),其次,这些数字是被散乱的分布在数组中的。要使元素出现4次,那么数组中所有不重复的元素个数最大为数组的大小/4,为了简单起先,我们使这些元素的值用1、2、3……进行编号。11/11文档要想将这些分配好的元素再分配到二维数组中,我们需要一个一维数组来辅助完成这项工作

4、。首先,我们按照二维数组的大小来建立一个大小相同的一维数组,并且,我们规定数组中出现的不重复的元素的个数(元素个数的多少代表了地图的填充率,填充率越高,表示游戏难度越高),同时,我们也要保证数组的长度能被4整除(目前是这样,其实不是必需的),因为相同的元素会出现4次。因此,我们定义一个变量,用来表示地图上可能出现元素种类的最大个数,同时也定义一个变量,表示目前地图上出现的元素的个数。//Map.javaint[]array=newint[Setting.ROW*Setting.COLUMN];//辅助的一维数组intmaxElement

5、=16;//maxElement的值不能超过map总元素/4intelements=16;//先假设maxElement和elements相等在,我们将这些元素放置在一维数组中:for(inti=0;i

6、个数组。怎么打乱这个数组呢?好办,我们来看看,假设数组的原始排列是这样的:[0][1][2][3][4][5][6][7][8][9][10][11][12][13][14][15]从最后一个元素[15]起,依次与此元素之前的某一个元素将值互换,完成后再从[14]起,与在[14]之前的某一个元素将值互换,直到[1]与[0]11/11文档的值互换后,如此一来,数组就被完全打乱了,如果还不明白,我们来看一看下图:[0][1][2][3][4][5][6][7][8][9][10][11][12][13][14][15]在[15]之前有15个

7、元素,产生一个15以内的随机数,比如说8,再将[15]和[8]的值互换,变成了如下:[0][1][2][3][4][5][6][7][15][9][10][11][12][13][14][8]再从[14]号元素开始,产生一个14以内的随机数,比如说10,互换[14]和[10]的值:改变前:[0][1][2][3][4][5][6][7][15][9][10][11][12][13][14][8]改变后:[0][1][2][3][4][5][6][7][15][9][14][11][12][13][10][8]怎么样,略施小技就搞定了,简

8、单吧?算法如下:11/11文档int[]random(int[]array){java.util.Randomrandom=newjava.util.Random();for(inti=array.leng

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。