首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

二维数组重排,该怎么处理

2012-09-23 
二维数组重排正在做一个连连看游戏,其中有一步是将界面上的所有图片打乱顺序,也就是将二维数组的值重新排

二维数组重排
正在做一个连连看游戏,其中有一步是将界面上的所有图片打乱顺序,也就是将二维数组的值重新排列,暂时没有思路,求帮助,谢谢!!

[解决办法]
你想实现的是将界面上现有的图片打乱顺序,也就意味着有一条约束:图片不能变,只是顺序变了。
先将现有的图片的值保存到二维数组中a[m][n],数组中的没一个值代表一个图片,这些值都是非0的(如果偏偏有0,后面就用-1什么的做标记)。
然后再创建一个数组b[m][n],初始化为0.然后开始用随机数赋值,具体如下
两层循环 从i=0...m j=0....n,遍历数组,每次产生两个个随机数 rand()%m rand()%n 这两个数代表这原来的数组a[m][n]的下标,比如产生了下标(x, y) 就将a[x][y]的值赋给b[i][j],赋值之后a[x][y]要置成0,代表这张图片已经用了,当然说到这里你就应该明白,赋值之前应该加一个判断,看一下是不是0.

热点排行