import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=533;bottom=542)
winform.add(
plus={cls="plus";left=17;top=18;right=517;bottom=518;bgcolor=0;db=1;dl=1;dr=1;dt=1;notify=1;z=1}
)
/*}}*/
winform.show();
import godking.paintEx
p = godking.paintEx(winform.plus)
//生成一个空图片
var nullimg = p.getImage(,,::RECTF(0,0,100,100),false)
//初始化图像组
import inet.http
var imgs = p.splitImage(inet.http().get("https://img2.baidu.com/it/u=1894252956,1737578713&fm=26&fmt=auto"),5,5)
//初始化区域组
var rectfs=p.splitRectF(5,5)
//开始乱序赋值
newimg=..table.clone(imgs) // 复制一个图像表,保留原表用来做验证
newimg[25]=nullimg // 将图像最右下角的那一块变为黑色
..table.shuffle(newimg) // 打乱顺序
for(i=1;#newimg;1){ // 填充到画板
p.drawImage(rectfs[i],newimg[i],false)
}
//处理鼠标点击事件
winform.plus.onMouseDown = function(wParam,lParam){
var x,y = win.getMessagePos(lParam);
for(i=1;#rectfs;1){
if p.pointInRectF(x,y,rectfs[i]){
var nullindex = null;
//上边
if i>5 && newimg[i-5]=nullimg nullindex=i-5;
//下边
if !nullindex && i<21 && newimg[i+5]=nullimg nullindex=i+5;
//左边
if !nullindex && (i-1)%5 && newimg[i-1]=nullimg nullindex=i-1;
//右边
if !nullindex && i%5 && newimg[i+1]=nullimg nullindex=i+1;
//交换图像
if nullindex {
newimg[i],newimg[nullindex]=newimg[nullindex],newimg[i]
p.drawImage(rectfs[i],nullimg,false)
p.drawImage(rectfs[nullindex],newimg[nullindex],true)
}
return ;
}
}
}
p.update()
win.loopMessage();