/*
软件作者:https://xuhss.com/oxox/pro
*/
//用于微信小程序:一笔过关
importClass(android.webkit.WebView);
var window = floaty.window(
<horizontal>
<button id="action" style="Widget.AppCompat.Button.Colored" text="运行" w="70"/>
</horizontal>
);
setInterval(()=>{}, 1000);
//记录按键被按下时的触摸坐标
var x = 0, y = 0;
//记录按键被按下时的悬浮窗位置
var windowX, windowY;
//记录按键被按下的时间以便判断长按等动作
var downTime;
var is_wrap=false;
window.action.setOnTouchListener(function(view, event){
switch(event.getAction()){
case event.ACTION_DOWN:
x = event.getRawX();
y = event.getRawY();
windowX = window.getX();
windowY = window.getY();
downTime = new Date().getTime();
return true;
case event.ACTION_MOVE:
if(new Date().getTime()-downTime<35)break;
//移动手指时调整悬浮窗位置
window.setPosition(windowX + (event.getRawX() - x),
windowY + (event.getRawY() - y));
if(Math.abs(event.getRawY() - y) > 15 || Math.abs(event.getRawX() - x) >15)is_wrap=true;
//如果按下的时间超过0.6秒判断为长按,退出脚本
if((new Date().getTime() - downTime > 800)&&!is_wrap){
exit();
}
return true;
case event.ACTION_UP:
//手指弹起时如果偏移很小则判断为点击
if(Math.abs(event.getRawY() - y) < 6 && Math.abs(event.getRawX() - x) < 6){
toast("运行中");
engines.execScript("smartline", "mainf();\n" + mainf.toString());
}
is_wrap=false;
return true;
}
return true;
});
function mainf(){
setScreenMetrics(1080,2160);
images.requestScreenCapture();
var dw=device.width/1080,dh=device.height/2160;
var sx,sy;
var rown,coln;
var bw,cw;
var img=images.captureScreen();
var table=new Array();
var path=new Array();
var start_r,start_c;
c_r_num();
for(var i=0;i<rown;i++){
var tab0=new Array();
for(var j=0;j<coln;j++){
if(images.detectsColor(img,"#d0d0d0",dw*(sx+(bw+cw)*j+bw/2),dh*(sy+bw/2+(bw+cw)*i))){
tab0[j]=1;
}else if(images.detectsColor(img,"#ffffff",dw*(sx+(bw+cw)*j+bw/2),dh*(sy+bw/2+(bw+cw)*i))){
tab0[j]=0;
}else{tab0[j]=2;start_r=i;start_c=j;}
}
table[i]=tab0;
}
an(start_r,start_c);
toast("结束运行");
function showw(){
var swipe_path=new Array();
var x=start_c*(bw+cw)+sx+bw/2;var y=start_r*(bw+cw)+sy+bw/2;
swipe_path[0]=[x,y];
for(var i=0;i<path.length;i++){
switch(path[i]){
case 1:x+=(bw+cw);swipe_path[i+1]=[x,y];break;
case -1:x-=(bw+cw);swipe_path[i+1]=[x,y];break;
case 2:y+=(bw+cw);swipe_path[i+1]=[x,y];break;
case -2:y-=(bw+cw);swipe_path[i+1]=[x,y];break;
}
}
sleep(100);
for(var i=0;i<swipe_path.length-1;i++){
swipe(swipe_path[i][0],swipe_path[i][1],swipe_path[i+1][0],swipe_path[i+1][1],130);
}
}
function an(r,c){
if(is_end_ng1(r,c))return false;
var dir=arry_1_dir(r,c);
if(dir.length==0){
if(!is_table_n1())return false;
showw();return true;
}else{
for(var i=0;i<dir.length;i++){
switch(dir[i]){
case -2:
table[r-1][c]=2;
path[path.length]=-2;
if(an(r-1,c)){
return true;
}else{
table[r-1][c]=1;
path.pop();
}
break;
case 2:
table[r+1][c]=2;
path[path.length]=2;
if(an(r+1,c)){
return true;
}else{
table[r+1][c]=1;
path.pop();
}
break;
case -1:
table[r][c-1]=2;
path[path.length]=-1;
if(an(r,c-1)){
return true;
}else{
table[r][c-1]=1;
path.pop();
}
break;
case 1:
table[r][c+1]=2;
path[path.length]=1;
if(an(r,c+1)){
return true;
}else{
table[r][c+1]=1;
path.pop();
}
break;
}
}
return false;
}
}
function c_r_num(){
sx=800;
var left_y;
var right=500;
sy=1000;
var buttom=400;
for(var i=470;i<1430;i=i+60){
for(var j=100;j<360;j=j+2){
if(!images.detectsColor(img,"#ffffff",j,i)){
if(j<sx ){sx =j;left_y=i;}
break;
}
}
}
for(var i=470;i<1430;i=i+60){
for(var j=980;j>720;j=j-2){
if(!images.detectsColor(img,"#ffffff",j,i)){
if(j>right){right=j;}
break;
}
}
}
var f_block_e=false;
for(var i=sx+2;(!f_block_e)&&(i<sx+200);i=i+2){
if(images.detectsColor(img,"#ffffff",i,left_y)){
f_block_e=true;
bw=i-sx ;
coln=parseInt((right-sx )/(bw+20)+1);
}
}
cw=parseInt((right-sx-coln*bw)/(coln-1));
for(var i=160;i<1000;i=i+60){
for(var j=410;j<1080;j=j+3){
if(!images.detectsColor(img,"#ffffff",i,j)){
if(j<sy){sy=j;}
break;
}
}
}
for(var i=160;i<1000;i=i+60){
for(var j=1440;j>1000;j=j-3){
if(!images.detectsColor(img,"#ffffff",i,j)){
if(j>buttom){buttom=j;}
break;
}
}
}
rown=parseInt((buttom-sy)/(cw*1.6+bw)+1);
}
function arry_1_dir(r,c){
var dir=new Array();
if(r!=rown-1){if(table[r+1][c]==1)dir[dir.length]=2;}
if(r!=0){if(table[r-1][c]==1)dir[dir.length]=-2;}
if(c!=0){if(table[r][c-1]==1)dir[dir.length]=-1;}
if(c!=coln-1){if(table[r][c+1]==1)dir[dir.length]=1;}
return dir;
}
function is_end_ng1(r,c){
var t=0;
for(var i=0;i<rown;i++){
for(var j=0;j<coln;j++){
if(table[i][j]==1&&arry_1_dir(i,j).length<2){
if(i==r&&j==c){}
else if(i==r-1&&j==c){}
else if(i==r+1&&j==c){}
else if(i==r&&j==c-1){}
else if(i==r&&j==c+1){}
else{
t++;
if(t==2)return true;
}
[虚幻私塾】
- 粉丝: 337
- 资源: 1558
最新资源
- 基于脉振高频电压注入的永磁同步电机无感FOC 1.带转子初始位置检测,包括极性判断,可实现任意初始位置下的无感起动运行; 2.可实现带载起动和突加负载运行; 提供算法对应的参考文献和仿真模型,支持技术
- PSO-KELM 粒子群算法优化核极限学习机分类预测算法 粒子群算法 优化 核极限学习机 分类预测算法(也有回归预测) matlab代码 狼群优化 黏菌优化 鲸鱼优化 麻雀优化 阿基米德优化
- 综合能源系统优化 数据来源《考虑用户侧柔性负荷的社区综合能源系统日前优化调度-刘蓉晖》 %% 风电+储能+电网交易+燃气轮机+燃气锅炉+电制冷机+(%燃料电池FC+溴化锂制冷机LBR+余热锅炉) 有电
- 基于matlab的储能选址定容程序 采用蒙特卡洛随机算法,非粒子群算法 图中每个点代表一种配置方式,红点为最优方式 程序稳定运行,每条语句均有详细注释,0基础可看懂 有对应文献
- 模拟 火算法-旅行商问题(TSP)优化 Matlab代码可用于路径规划,物流配送,路径优化 源码+注释 数据可以修改 多少个坐标都行
- 激光slam算法改进 提出了一种增强重定位的cartographer算法,在五千平方车库中进行实验验证,实验结果表明:重定位耗时时间降低为3.35秒 提供改进后算法源码
- Matlab算法仿真,单无人机三维地图路径规划 使用的算法是蚁群算法,加入了无人机自身的约束条件如飞行高度,水平偏转角,垂直偏转角等,仿真结果更稳定,更优 注:只保证结果跟下图一致,不对代码解释教
- matlab程序:EMD-SSA-BiLSTM预测程序 将数据进行EMD分解,再采用经蚁群算法优化的双向长短时记忆神经网络进行预测,最终将结果重组得到最终预测结果 注意:程序功能如上述,可进行负荷预
- 超车避幢通过五次多项式规划出超车路径,根据地横向避幢约束计算出最小纵向距离,确定转向避幢起始点,路径跟踪控制采用了mpc控制算法,加入了侧偏角软约束,在超车结束后返回原车道行驶 采用16carsim
- No.423 基于PLC的二维平台位置模糊控制系统设计十字平台步进伺服 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面
- 1关键词:氢能;阶梯式碳交易机制;热电比可调;综合能源系统;低碳经济;Matlab程序 2参考文献:《考虑阶梯式碳交易机制与电制氢的综合能源系统热电优化》 3主要内容:首先考虑IES参与到
- AxureUX中后台管理信息系统通用原型方案 v2 (Axure RP9作品) 主要适用:web端 软件版本:Axure9 当前版本:v2.1 发布日期:2021-09-09 作品编号:TEM020
- 基于SMO滑模观测器算法的永磁同步电机无传感器矢量控制的仿真模型+C代码: 1. 完整的SMO滑模观测器算法的C代码,本人已经成功移植到DSP(TMS320F28335)芯片中,在一台额定功率为45k
- 基于单片机的智能寻迹小车设计 设计功能: 1.红外寻迹; 2.自动避障; 须知: 程序 仿真 原理图
- 9节点的配电网,研究分布式电源接入对配电网节点电压产生的影响,可以自己设置分布式电源的容量大小,matlab代码,可运行出电压波形图,可用于分布式对配电网影响的研究
- matlab代码:基于主从博弈的智能小区代理商定价策略及电动汽车充电管理 摘要:提出了一种未来智能小区代理商的定价及购电策略,将代理商和车主各自追求利益最大化建 模为主从博弈 该模型亦可为研究电动
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈