美女拼图 klength
前言
大家好,我就是智慧与美貌并重,英雄与狭义的化身的小编大人,几天授课,发现同学们对拼图游戏的切图理解不是很清楚,在这里就切图核心算法思想做一个讲解,希望对大家做拼图游戏有帮助。
切图主要思路
二维数组描述地图
二维数组可以描述一个平面,因此我们采用特殊数字表示特殊形状或者图片,这样就可以把整个游戏的地图给绘制出来,主要问题是窗口坐标与数组的下标同步问题。
根据数组填坑过程如下图:
二维数组随机初始化
拼图游戏当中首先是用0-15表示图片的16个模块,首要做的是随机打乱二维数组的顺序,主要算法是采用一维数组给二维数组初始化,随机差生一维数组的下标,拿出当前下标的值给二维数组进行初始化,然后调整一维数组防止产生重复的值。
1.首先产生如下数组
int array1D[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};int array2D[4][4]={0};
2.随机产生一维数组下标
int length=15;srand((unsigned int)time(NULL));int pos=rand()%length;
3.一维数组给二维数组进行初始化
array2D[i][j]=array1D[pos] 此处省略for循环嵌套
4.调整一维数组
for(int k=pos;k++)
{
array1D[k]=array1D[k+1]; //覆盖掉用掉的
}
length--; //数组长度-1 防止产生重复的内容
算法示意图:
根据数组的值拿相应序号的图片
准备操作已结束,接着只需要按照数组中的值去一张完整的图片拿相应序号的那块照片贴到窗口上即可。
效果图
好了今天的内容到这里就结束了,完整拼图游戏视频教学关注学习,私信 “代码”可获取相关视频与源码。
相关文章
猜你喜欢
-
成本用英语怎么说?成本用英语怎么说
在实际生活中,很多人可能想了解和弄清楚成本用英语怎么说这个问题?那么关于成本用英语怎么说答案我来给大家详细解答下。 成本用英语怎么说 1、成本用英语...
-
敌法师攻略?Magina
1、敌法师:Magina,AM,DF偶尔有DH,敌法作为伟大先知(Furion)的双胞胎儿子,Terrorblade和Magina从一出生开始就被赋予了神力:T...
-
神话时代泰坦秘籍?campaign
神话时代 泰坦巨人 战役攻略秘籍(Mythical age, Titans, campaign, introduction, cheats) 神话时代 泰坦巨人...
-
玛蒂娜加西亚?玛蒂娜·加西亚(MartinaGarcía)
1、玛蒂娜·加西亚(Martina García),女,1981年6月27日出生于哥伦比亚,演员。 2、代表作有《国土安全第三季》《黑暗面》《伊曼纽行动》...
-
联想850e?摄像头自动对焦
1,联想850e好用吗 比较实用的机器 2,联想s850eWLAN怎么用 WLAN是无线局域网络,必须得你附近有可用的无线网络或者无线终端供你...