91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 46KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2021-06-06
  • 語言: Matlab
  • 標簽: 拼圖游戲??

資源簡介

利用MATLAB編寫的拼圖游戲完整程序文件,代碼在原來的基礎(chǔ)上進行了改進,程序風格良好無bug,點擊運行即可進行拼圖游戲。

資源截圖

代碼片段和文件信息

%%?制作人:吳限
%?2018年2月14日
function?jigsaw()
%%?主函數(shù)
Tag_A=?Disrupt();%將標記矩陣的排列順序打亂
drawmap(Tag_A);%按照標記矩陣顯示拼圖

global?Tag;%Tag是標記矩陣,定義成全局變量,方便傳遞參數(shù)
Tag=Tag_A;
set(gcf‘windowButtonDownFcn‘@ButtonDownFcn);%點擊鼠標時調(diào)用ButtonDownFcn函數(shù)



function?ButtonDownFcn(srcevent)
%%?回調(diào)函數(shù),鼠標點擊事件發(fā)生時調(diào)用
pt=get(gca‘CurrentPoint‘);%獲取當前鼠標點擊位置坐標
xpos=pt(11);%鼠標點擊處的橫坐標實際值
ypos=pt(12);%鼠標點擊處的縱坐標實際值
???
col?=?ceil(xpos/100);%將橫坐標值轉(zhuǎn)換為列數(shù)
row?=?ceil(ypos/100);%將縱坐標值轉(zhuǎn)換為行數(shù)

global?Tag;?%全局變量聲明

if(col<=3&&col>0)&&(row<=3&&row>0)%鼠標點擊位置在有效范圍內(nèi)????
????Tag=movejig(Tagrowcol);%按點擊位置移動拼圖
????
????drawmap(Tag)%顯示拼圖
????
????order?=?[1?2?3;4?5?6;7?8?0];%順序矩陣
????zt?=?abs(Tag-order);%比較兩個矩陣
????if?sum(zt(:))==0?%順序已經(jīng)完全吻合
????????image=imread(‘jigsawImage.jpeg‘);
????????imshow(image)?%游戲完成,補全拼圖
????????msgbox(‘You?did?a?good?job?恭喜完成?。?!‘)?%提示完成信息
????????pause(0.5);%延遲半秒
????????close?all?%游戲結(jié)束,關(guān)閉所有圖像窗口
????end
????
else
????return
????
end




function?tag=movejig(tagrowcol)
?%%?4個if分4種情況對不同位置處的點坐標與矩陣行列式統(tǒng)一
????num?=?tag(rowcol);%鼠標位置與號碼牌一致
????if?(row>1)&&(tag(row-1col)==0)%點擊位置在第二或第三行,空白塊在點擊位置的上一行
????????tag(row-1col)?=?num;%交換兩個位置上的值
????????tag(rowcol)?=?0;
????end
????if?(row<3)&&(tag(row+1col)==0)%點擊位置在第一或第二行,空白塊在點擊位置的下一行
????????tag(row+1col)?=?num;
????????tag(rowcol)?=?0;
????end
????if?(col>1)&&(tag(rowcol-1)==0)%點擊位置在第二或第三列,空白塊在點擊位置的左邊一列
????????tag(rowcol-1)?=?num;
????????tag(rowcol)?=?0;
????end
????if?(col<3)&&(tag(rowcol+1)==0)%點擊位置在第二或第三列,空白塊在點擊位置的右邊一列
????????tag(rowcol+1)?=?num;
????????tag(rowcol)?=?0;
????end
???


function?y?=?Disrupt()
%%?隨機打亂原拼圖排列順序
y?=[123;456;780];

for?i?=?1:360
????row=randi([13]);%產(chǎn)生一個范圍在1到3的整數(shù)
????col=randi([13]);
????y=movejig(yrowcol);%按隨機產(chǎn)生的動作打亂拼圖
end



function?x?=?choose(imageindex)
%%?根據(jù)索引選擇對應(yīng)位置上的拼圖塊
if?index>0?%標記為1,2,3,4,5,6,7,8的拼圖塊
????%?計算出行數(shù)row以及列數(shù)column
????row=fix((index-1)/3);
????column=mod(index-13);
????%?分割出對應(yīng)拼圖塊數(shù)據(jù)
????x=image(1+row*100:100*(row+1)1+column*100:100*(column+1):);
else
????x=uint8(255*ones(1001003));%拼圖塊0矩陣數(shù)據(jù)
end

function?drawmap(A)
%%?將運算數(shù)字與對應(yīng)拼圖對應(yīng)顯示圖片
origin=imread(‘jigsawImage.jpeg‘);
image=origin;

%?對要顯示的拼圖進行賦值
for?row=1:3
????for?col=1:3
????image(1+(row-1)*100:100*row1+(col-1)*100:100*col:)=choose(originA(rowcol));
????end
end

imshow(image)%顯示拼圖

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2860??2018-02-16?20:55??jigsaw?puzzle\jigsaw.m
?????文件???????45040??2018-02-09?17:09??jigsaw?puzzle\jigsawImage.jpeg
?????目錄???????????0??2018-02-18?21:32??jigsaw?puzzle\

評論

共有 條評論