美女拼圖游戲必備技能,切割圖片思想解析,自動(dòng)切圖片由此開始

前言
大家好,我就是智慧與美貌并重,英雄與狹義的化身的小編大人,幾天授課,發(fā)現(xiàn)同學(xué)們對(duì)拼圖游戲的切圖理解不是很清楚,在這里就切圖核心算法思想做一個(gè)講解,希望對(duì)大家做拼圖游戲有幫助。

切圖主要思路

二維數(shù)組描述地圖
二維數(shù)組可以描述一個(gè)平面,因此我們采用特殊數(shù)字表示特殊形狀或者圖片,這樣就可以把整個(gè)游戲的地圖給繪制出來,主要問題是窗口坐標(biāo)與數(shù)組的下標(biāo)同步問題。根據(jù)數(shù)組填坑過程如下圖:

二維數(shù)組隨機(jī)初始化
拼圖游戲當(dāng)中首先是用0-15表示圖片的16個(gè)模塊,首要做的是隨機(jī)打亂二維數(shù)組的順序,主要算法是采用一維數(shù)組給二維數(shù)組初始化,隨機(jī)差生一維數(shù)組的下標(biāo),拿出當(dāng)前下標(biāo)的值給二維數(shù)組進(jìn)行初始化,然后調(diào)整一維數(shù)組防止產(chǎn)生重復(fù)的值。
1.首先產(chǎn)生如下數(shù)組
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.隨機(jī)產(chǎn)生一維數(shù)組下標(biāo)
int length=15;srand((unsigned int)time(NULL));int pos=rand()%length;
3.一維數(shù)組給二維數(shù)組進(jìn)行初始化
array2D[i][j]=array1D[pos] 此處省略for循環(huán)嵌套
4.調(diào)整一維數(shù)組
for(int k=pos;k<length;k++)
{
array1D[k]=array1D[k+1]; //覆蓋掉用掉的值}length--; //數(shù)組長(zhǎng)度-1 防止產(chǎn)生重復(fù)的內(nèi)容
算法示意圖:

根據(jù)數(shù)組的值拿相應(yīng)序號(hào)的圖片
準(zhǔn)備操作已結(jié)束,接著只需要按照數(shù)組中的值去一張完整的圖片拿相應(yīng)序號(hào)的那塊照片貼到窗口上即可。

效果圖:

好了今天的內(nèi)容到這里就結(jié)束了,完整拼圖游戲視頻教學(xué)關(guān)注學(xué)習(xí),私信 “代碼”可獲取相關(guān)視頻與源碼。