
import win.ui;
import godking.paint; //导入光庆大帝的内存画板库
import godking.message;
import console;
/*DSG{{*/
mf = win.form(text="找不同";right=969;bottom=700)
mf.add(
edit={cls="edit";left=627;top=241;right=951;bottom=431;edge=1;multiline=1;z=2};
plus={cls="plus";left=0;top=0;right=620;bottom=700;background="\res\0.jpg";foreRepeat="stretch";notify=1;repeat="stretch";z=1};
static={cls="static";text="剩余不同点:";left=680;top=36;right=912;bottom=62;font=LOGFONT(h=-20);transparent=1;z=3}
)
/*}}*/
var i=1
var dpi = godking.paint.getDpi(); // 获取DPI缩放比例
var xy1={} // 上半图所有正确的区域
var xy2={} // 下半图所有正确的区域
var xy3={} //找到的 正确的
var xy4={} //找到的 正确的
mf.text=dpi
var py=358*dpi //偏移
table.push(xy1,
::RECT(371,19,420,70),
::RECT(471,38,538,92),
::RECT(96,13,142,60),
::RECT(90,128,120,163),
::RECT(28,310,68,347),
::RECT(210,255,247,280),
::RECT(403,295,450,328),
::RECT(562,223,608,268),
::RECT(220,117,260,153),
::RECT(478,183,528,214),
)
//处理屏幕缩放
for k,v in xy1{
v.top*=dpi
v.left*=dpi
v.right*=dpi
v.bottom*=dpi
}
//处理下半图 区域
xy2=table.clone(xy1)
for k,v in xy2{
v.top=v.top+py
v.bottom=v.bottom+py
}
mf.static.text="共有不同点:"+table.count(xy1)
mf.plus.onMouseDown = function(wParam,lParam){
var x,y = win.getMessagePos(lParam);
//设计时找坐标用
/*
if i % 2!=0{
mf.edit.text=""
mf.edit.print("::RECT("+x+","+y+",")
}else{
mf.edit.appendText(x+","+y+"),")
}
i+=1
return ;
*/
var p=godking.paint.fromPlus(mf.plus,false/*自动刷新*/,false/*重绘背景*/)
var res=0;//找点结果正确 错误
for k,v in xy1{
if x>v.left and x<v.right and y>v.top and y<v.bottom{
table.push(xy3,v)
table.push(xy4,xy2[k]) //将下半图对应的点加入表
table.remove(xy1,k) //移除已找到的,避免重复点击
table.remove(xy2,k) //移除已找到的,避免重复点击
mf.static.text="剩余不同点:"+table.count(xy1)
if table.count(xy1)==0{
godking.message().great("你真棒!已全部找出!",0/*延时关闭时间*/,/*是否隐藏OK按钮*/)
}
res=1
break;
}
}
//如果点击的下半图
for k,v in xy2{
if x>v.left and x<v.right and y>v.top and y<v.bottom{
table.push(xy4,v)
table.push(xy3,xy1[k]) //将上半图对应的点加入表
table.remove(xy1,k) //移除已找到的,避免重复点击
table.remove(xy2,k) //移除已找到的,避免重复点击
mf.static.text="剩余不同点:"+table.count(xy1)
if table.count(xy1)==0{
godking.message().great("你真棒!已全部找出!",0/*延时关闭时间*/,/*是否隐藏OK按钮*/)
}
res=1
break;
}
}
if res==0{
mf.edit.print("点错了")
}else{
mf.edit.print("找对了")
for k,v in xy3{
p.drawRect(v ,0xFF00FF00,5,3)
}
for k,v in xy4{
p.drawRect(v ,0xFF0000FF,5,3)
}
mf.plus.redraw()
}
}
mf.show();
//作弊
/**
var p1=godking.paint.fromPlus(mf.plus,true/*自动刷新*/,false/*重绘背景*/)
for k,v in xy1{
p1.drawRectF( v,0xFF00FF00,3/*线宽*/,/*线型*/)
}
for k,v in xy2{
p1.drawRectF( v,0xFF0000FF,3/*线宽*/,/*线型*/)
}
**/
return win.loopMessage();