Files
mixly3/boards/default/python_skulpt_car/bg_nonehl_8ade5557.js

1 line
22 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
var $builtinmodule=function(t){let r={__name__:new Sk.builtin.str("bg_nonehl")};var e=d3.select(Sk.TurtleGraphics.target).append("svg"),i=[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,2,1,1,1,1,3,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0]],a=0,n=1,p=2,c=3,l=0,o=1,s=-1,m={10010:[4,0],10001:[3,3],11e3:[0,1],10100:[0,2],11010:[4,1],10101:[3,2],10110:[0,0],10011:[2,0],11001:[4,2],11100:[2,3],11110:[1,1],10111:[1,0],11011:[2,1],11101:[1,2],11111:[2,2],null0:[4,3],null1:[3,0],null2:[3,1],null3:[0,3],null4:[1,3]},u={img:"../common/js/skulpt_mixcar/pic/pegman.png",height:52,width:49,direction:n,type:"animate",x:0,y:0,stepSpeed:150,coin_point:0,marker_num:0,oil:1,traffic_light:22,circulation_num:0,invisible_mark:0},k=50,h=i.length,g=i[0].length,f=0,y={mlevel:0,tiles:"../common/js/skulpt_mixcar/pic/maze_path.png",marker:"../common/js/skulpt_mixcar/pic/marker.png",background:"../common/js/skulpt_mixcar/pic/bg_astro.jpg",wall:"../common/js/skulpt_mixcar/pic/roadblock.png",award:"../common/js/skulpt_mixcar/pic/award.png",barrier:"",markers:[],SquareType:{WALL:0,OPEN:1,START:2,FINISH:3,AWARD:4,INVIMAKER:24},MAZE_WIDTH:k*g,MAZE_HEIGHT:k*h,PATH_WIDTH:16.666666666666668,result:l,finish:{x:0,y:0},type:1,INVIMNUM:0},d=[{mlevel:1,map:[[0,1,1,13,1,1,12,0],[0,1,0,1,0,0,1,0],[0,1,1,9,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,10,1,1,11,0],[0,0,0,0,0,0,0,0]],tiles:"../common/js/skulpt_mixcar/pic/tiles_road.png",marker:"../common/js/skulpt_mixcar/pic/Start_final.png",background:"../common/js/skulpt_mixcar/pic/bg1.jpg",wall:"",award:"",barrier:"",markers:["../common/js/skulpt_mixcar/pic/red.png","../common/js/skulpt_mixcar/pic/yellow.png","../common/js/skulpt_mixcar/pic/blue.png","../common/js/skulpt_mixcar/pic/green.png"],SquareType:{WALL:0,OPEN:1,MARKER1:10,MARKER2:11,MARKER3:12,MARKER4:13,S_F:9,INVIMAKER:24},MAZE_WIDTH:400,MAZE_HEIGHT:400,PATH_WIDTH:16.666666666666668,result:l,finish:{x:0,y:0},type:0,INVIMNUM:0},{mlevel:2,map:[[0,1,1,13,1,1,12,0],[0,1,0,5,0,0,1,0],[0,1,1,9,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,10,1,1,11,0],[0,0,0,0,0,0,0,0]],tiles:"../common/js/skulpt_mixcar/pic/tiles_road.png",marker:"../common/js/skulpt_mixcar/pic/Start_final.png",background:"../common/js/skulpt_mixcar/pic/bg2.jpg",wall:"",award:"",barrier:"../common/js/skulpt_mixcar/pic/barrier.png",markers:["../common/js/skulpt_mixcar/pic/red.png","../common/js/skulpt_mixcar/pic/yellow.png","../common/js/skulpt_mixcar/pic/blue.png","../common/js/skulpt_mixcar/pic/green.png"],SquareType:{WALL:0,OPEN:1,BARRIER:5,MARKER1:10,MARKER2:11,MARKER3:12,MARKER4:13,S_F:9,INVIMAKER:24},MAZE_WIDTH:400,MAZE_HEIGHT:400,PATH_WIDTH:16.666666666666668,result:l,finish:{x:0,y:0},type:0,INVIMNUM:0},{mlevel:3,map:[[0,1,1,13,24,1,24,0],[0,1,0,Math.random()>.5?1:5,0,0,1,0],[0,1,1,9,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,24,1,1,24,0],[0,0,0,0,0,0,0,0]],tiles:"../common/js/skulpt_mixcar/pic/tiles_road.png",marker:"../common/js/skulpt_mixcar/pic/Start_final.png",background:"../common/js/skulpt_mixcar/pic/bg2.jpg",wall:"",award:"",barrier:"../common/js/skulpt_mixcar/pic/barrier.png",markers:["../common/js/skulpt_mixcar/pic/red.png","../common/js/skulpt_mixcar/pic/yellow.png","../common/js/skulpt_mixcar/pic/blue.png","../common/js/skulpt_mixcar/pic/green.png"],SquareType:{WALL:0,OPEN:1,BARRIER:5,MARKER4:13,S_F:9,INVIMAKER:24},MAZE_WIDTH:400,MAZE_HEIGHT:400,PATH_WIDTH:16.666666666666668,result:l,finish:{x:0,y:0},type:0,INVIMNUM:4},{mlevel:4,map:[[0,1,1,13,24,1,24,0],[20,1,0,Math.random()>.5?1:5,0,0,1,0],[0,1,1,9,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,24,1,1,24,0],[0,0,0,0,0,0,0,0]],tiles:"../common/js/skulpt_mixcar/pic/tiles_road.png",marker:"../common/js/skulpt_mixcar/pic/Start_final.png",background:"../common/js/skulpt_mixcar/pic/bg3.jpg",wall:"",award:"",barrier:"../common/js/skulpt_mixcar/pic/barrier.png",markers:["../common/js/skulpt_mixcar/pic/red.png","../common/js/skulpt_mixcar/pic/yellow.png","../common/js/skulpt_mixcar/pic/blue.png","../common/js/skulpt_mixcar/pic/green.png"],SquareType:{WALL:0,OPEN:1,BARRIER:5,MARKER4:13,S_F:9,OIL_STATION:20,INVIMAKER:24},MAZE_WIDTH:400,MAZE_HEIGHT:400,PATH_WIDTH:16.666666666666668,result:l,finish:{x:0,y:0},type:0,INVIMNUM:4},{mlevel:5,map:[[0,1,1,1,1,1,1,0],[0,1,0,0,0,0,1,0],[0,1,1,2,21,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,1,1,1,1,0],[0,0,0,0,0,0,0,0]],tiles:"../common/js/skulpt_mixcar/pic/tiles_road.png",marker:"../common/js/skulpt_mixcar/pic/Start_final.png",background:"../common/js/skulpt_mixcar/pic/bg4.jpg",wall:"",award:"",barrier:"",markers:[],SquareType:{WALL:0,OPEN:1,START:2,S_F:9,TRAFFIC_LIGHT:21,INVIMAKER:24},MAZE_WIDTH:400,MAZE_HEIGHT:400,PATH_WIDTH:16.666666666666668,result:l,finish:{x:3,y:2},type:0,INVIMNUM:0},{mlevel:6,map:[[0,1,1,13,1,1,12,0],[0,1,0,1,0,0,1,0],[0,1,1,2,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,10,1,1,11,0],[0,0,0,0,0,0,0,0]],tiles:"../common/js/skulpt_mixcar/pic/tiles_road.png",marker:"../common/js/skulpt_mixcar/pic/Start_final.png",background:"../common/js/skulpt_mixcar/pic/bg1.jpg",wall:"",award:"",barrier:"",markers:["../common/js/skulpt_mixcar/pic/red.png","../common/js/skulpt_mixcar/pic/yellow.png","../common/js/skulpt_mixcar/pic/blue.png","../common/js/skulpt_mixcar/pic/green.png"],SquareType:{WALL:0,OPEN:1,START:2,MARKER1:10,MARKER2:11,MARKER3:12,MARKER4:13,S_F:9,INVIMAKER:24},MAZE_WIDTH:400,MAZE_HEIGHT:400,PATH_WIDTH:16.666666666666668,result:l,finish:{x:0,y:0},type:0,INVIMNUM:0},{mlevel:7,map:[[0,1,1,1,1,1,1,0],[0,1,0,0,0,0,1,0],[0,1,1,2,22,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,1,0,0,1,0],[0,0,0,1,1,1,1,0],[0,0,0,0,0,0,0,0]],tiles:"../common/js/skulpt_mixcar/pic/tiles_road.png",marker:"../common/js/skulpt_mixcar/pic/Start_final.png",background:"../common/js/skulpt_mixcar/pic/bg4.jpg",wall:"",award:"",barrier:"",markers:[],SquareType:{WALL:0,OPEN:1,START:2,S_F:9,LIGHT_GREEN:22,LIGHT_RED:23,INVIMAKER:24},MAZE_WIDTH:400,MAZE_HEIGHT:400,PATH_WIDTH:16.666666666666668,result:l,finish:{x:3,y:2},type:0,INVIMNUM:0}],T=function(t,r,e,i){var a=$(Sk.TurtleGraphics.target).find("#pegman");"animate"==u.type?(0==y.type?(a.attr("x",t*k-e*u.width+1),a.attr("y",k*(r+.5)-u.height/2)):(a.attr("x",t*k-e*u.width+1),a.attr("y",k*(r+.5)-u.height/2-8)),i?a.attr("transform","rotate("+i+", "+(t*k+25)+", "+(r*k+25)+")"):a.attr("transform","rotate(0, 0, 0)")):(a.attr("x",t*k+1),a.attr("y",k*(r+.5)-u.height/2));var n=$(Sk.TurtleGraphics.target).find("#clipRect");n.attr("x",t*k+1),n.attr("y",a.attr("y"))},S=function(){e.attr("id","game_stage");var t=Math.max(h,g)*k;e.attr("viewBox","0 -10 "+t+" "+(t+10)),e.append("rect").attr("x",0).attr("y",0).attr("width",y.MAZE_WIDTH).attr("height",y.MAZE_HEIGHT).style("fill","#F1EEE7").style("stroke","#CCB").style("stroke-width","1"),e.append("image").attr("x",0).attr("y",0).attr("width",k*g).attr("height",k*h).attr("xlink:href",y.background);for(var r=function(t,r){return t<0||t>=g||r<0||r>=h||i[r][t]==y.SquareType.WALL||i[r][t]==y.SquareType.OIL_STATION?"0":"1"},a=0,n=0;n<h;n++)for(var p=0;p<g;p++){var c=r(p,n)+r(p,n-1)+r(p+1,n)+r(p,n+1)+r(p-1,n);m[c]||(c="00000"==c&&Math.random()>.3?"null0":"null"+Math.floor(1+4*Math.random()));var l=m[c][0],o=m[c][1];e.append("clipPath").attr("id","tileClipPath"+a);const t=Sk.TurtleGraphics.target.querySelector("#tileClipPath"+a);d3.select(t).append("rect").attr("x",p*k).attr("y",n*k).attr("width",k).attr("height",k),0==y.type?i[n][p]!=y.SquareType.WALL&&i[n][p]!=y.SquareType.OIL_STATION&&i[n][p]!=y.SquareType.TRAFFIC_LIGHT&&i[n][p]!=y.SquareType.LIGHT_GREEN&&i[n][p]!=y.SquareType.LIGHT_RED&&(e.append("image").attr("x",p*k).attr("y",n*k).attr("width",k).attr("height",k).attr("clip-path","url(#tileClipPath"+a+")").attr("xlink:href",y.tiles),a++):(e.append("image").attr("x",(p-l)*k).attr("y",(n-o)*k).attr("width",250).attr("height",200).attr("clip-path","url(#tileClipPath"+a+")").attr("xlink:href",y.tiles),a++),0==i[n][p]?e.append("image").attr("x",p*k+5).attr("y",n*k+5).attr("width",40).attr("height",40).attr("xlink:href",y.wall):4==i[n][p]?e.append("image").attr("id","coin"+n+p).attr("x",p*k+12.5).attr("y",n*k+12.5).attr("width",25).attr("height",25).attr("xlink:href",y.award):5==i[n][p]?e.append("image").attr("id","barrier"+n+p).attr("x",p*k+7.5).attr("y",n*k+7.5).attr("width",35).attr("height",35).attr("xlink:href",y.barrier):10==i[n][p]?(e.append("image").attr("id","marker1").attr("x",p*k+7.5).attr("y",n*k+7.5).attr("width",35).attr("height",35).attr("xlink:href",y.markers[0]),f+=1):11==i[n][p]?(e.append("image").attr("id","marker2").attr("x",p*k+7.5).attr("y",n*k+7.5).attr("width",35).attr("height",35).attr("xlink:href",y.markers[1]),f+=1):12==i[n][p]?(e.append("image").attr("id","marker3").attr("x",p*k+7.5).attr("y",n*k+7.5).attr("width",35).attr("height",35).attr("xlink:href",y.markers[2]),f+=1):13==i[n][p]&&(e.append("image").attr("id","marker4").attr("x",p*k+7.5).attr("y",n*k+7.5).attr("width",35).attr("height",35).attr("xlink:href",y.markers[3]),f+=1)}if(1==y.type){e.append("image").attr("id","finish").attr("width",25).attr("height",25).attr("xlink:href",y.marker);for(n=0;n<h;n++)for(p=0;p<g;p++)if(i[n][p]==y.SquareType.START)u.x=p,u.y=n;else if(i[n][p]==y.SquareType.FINISH){(s=$(Sk.TurtleGraphics.target).find("#finish")).attr("x",k*(p+.5)-s.attr("width")/2),s.attr("y",k*(n+.6)-s.attr("height")),y.finish={x:p,y:n}}}else for(n=0;n<h;n++)for(p=0;p<g;p++){var s;if(9==i[n][p])e.append("image").attr("id","finish").attr("width",40).attr("height",40).attr("xlink:href",y.marker),u.x=p,u.y=n,(s=$(Sk.TurtleGraphics.target).find("#finish")).attr("x",k*p+5),s.attr("y",k*n+5),y.finish={x:p,y:n};else 20==i[n][p]?e.append("image").attr("id","station").attr("x",p*k+5).attr("y",n*k+5).attr("width",80).attr("height",40).attr("xlink:href","../common/js/skulpt_mixcar/pic/oilstation.png"):21==i[n][p]?e.append("image").attr("id","trafficlight").attr("x",p*k+7.5).attr("y",n*k+7.5).attr("width",35).attr("height",35).attr("xlink:href","../common/js/skulpt_mixcar/pic/trafficlight.png"):22==i[n][p]?e.append("image").attr("id","lightgreen").attr("x",p*k+7.5).attr("y",n*k+7.5).attr("width",35).attr("height",35).attr("xlink:href","../common/js/skulpt_mixcar/pic/greenlight.png"):23==i[n][p]?e.append("image").attr("id","lightred").attr("x",p*k+7.5).attr("y",n*k+7.5).attr("width",35).attr("height",35).attr("xlink:href","../common/js/skulpt_mixcar/pic/redlight.png"):2==i[n][p]&&(u.x=p,u.y=n,e.append("image").attr("id","start").attr("x",k*p).attr("y",k*n+5).attr("width",k).attr("height",40).attr("xlink:href",y.marker))}},_=function(){return y.result=u.x!=y.finish.x||u.y!=y.finish.y?l:o,y.result==o&&(1==y.type||(5==y.mlevel||7==y.mlevel||6==y.mlevel||(u.marker_num==f?u.invisible_mark>=y.INVIMNUM||"error3":"error2")))},x=function(t,r){var e,l,o=u.direction+t;switch(b(o)){case a:e=i[u.y-1]&&i[u.y-1][u.x],l="look_north";break;case n:e=i[u.y][u.x+1],l="look_east";break;case p:e=i[u.y+1]&&i[u.y+1][u.x],l="look_south";break;case c:e=i[u.y][u.x-1],l="look_west"}return r?[l,e!==y.SquareType.WALL&&void 0!==e&&e!==y.SquareType.BARRIER&&e!==y.SquareType.OIL_STATION&&e!==y.SquareType.TRAFFIC_LIGHT&&e!==y.SquareType.LIGHT_RED&&e!==y.SquareType.LIGHT_GREEN]:e!==y.SquareType.WALL&&void 0!==e&&e!==y.SquareType.BARRIER&&e!==y.SquareType.OIL_STATION&&e!==y.SquareType.TRAFFIC_LIGHT&&e!==y.SquareType.LIGHT_RED&&e!==y.SquareType.LIGHT_GREEN},b=function(t){return(t=Math.round(t)%4)<0&&(t+=4),t},w=function(t){return(t=Math.round(t)%16)<0&&(t+=16),t},I=function(t,r){var e=[(r[0]-t[0])/4,(r[1]-t[1])/4,(r[2]-t[2])/4];T(t[0]+e[0],t[1]+e[1],w(t[2]+e[2])),setTimeout((function(){T(t[0]+2*e[0],t[1]+2*e[1],w(t[2]+2*e[2]))}),u.stepSpeed),setTimeout((function(){T(t[0]+3*e[0],t[1]+3*e[1],w(t[2]+3*e[2]))}),2*u.stepSpeed),setTimeout((function(){T(r[0],r[1],w(r[2]))}),3*u.stepSpeed)};r.setMap=new Sk.builtin.func((function(t,r,e,a,n){if(Sk.builtin.pyCheckArgs("setMap",arguments,5,5),i=[],"无可用地图"==n&&(n=""),t<3||t>20||r<3||r>20)throw new Sk.builtin.TypeError("错误超出地图可设置范围请设置横纵方格数大于等于3小于等于20");switch(t=Sk.ffi.remapToJs(t),r=Sk.ffi.remapToJs(r),g=t,h=r,y.MAZE_WIDTH=k*g,y.MAZE_HEIGHT=k*h,e=Sk.ffi.remapToJs(e),a=Sk.ffi.remapToJs(a),Sk.ffi.remapToJs(n)){case"bg_default":y.background="../common/js/skulpt_mixcar/pic/bg_default.png";break;case"bg_astro":y.background="../common/js/skulpt_mixcar/pic/bg_astro.jpg";break;case"bg_panda":y.background="../common/js/skulpt_mixcar/pic/bg_panda.jpg"}var p;if(null!=(p=/\((\d+),(\d+)\)/.exec(e))&&(p[1]>t||p[1]<1||p[2]>r||p[2]<1))throw new Sk.builtin.TypeError("错误!起点坐标超出地图范围!");if(null!=(p=/\((\d+),(\d+)\)/.exec(a))&&(p[1]>t||p[1]<1||p[2]>r||p[2]<1))throw new Sk.builtin.TypeError("错误!终点坐标超出地图范围!");for(var c=0;c<r;c++){for(var l=[],o=0;o<t;o++){var s="("+(o+1)+","+(c+1)+")";l[o]=s==e?y.SquareType.START:s==a?y.SquareType.FINISH:y.SquareType.OPEN}i[c]=l}}));r.setPathType=new Sk.builtin.func((function(t){switch(Sk.builtin.pyCheckArgs("setPathType",arguments,1,1),t=Sk.ffi.remapToJs(t)){case"default":y.tiles="../common/js/skulpt_mixcar/pic/maze_path.png";break;case"pipeline":y.tiles="../common/js/skulpt_mixcar/pic/tiles_astro.png";break;case"bamboo":y.tiles="../common/js/skulpt_mixcar/pic/tiles_panda.png"}}));r.placeItem=new Sk.builtin.func((function(t,r,e){if(Sk.builtin.pyCheckArgs("placeItem",arguments,3,3),t=Sk.ffi.remapToJs(t),r=Sk.ffi.remapToJs(r),e=Sk.ffi.remapToJs(e),2==i[r-1][t-1]||3==i[r-1][t-1])throw new Sk.builtin.TypeError("错误!不能将放置物位置设置在起点或终点坐标!");if(t>i[0].length||t<0||r>i.length||r<0)throw new Sk.builtin.TypeError("错误!放置物坐标超过地图范围");switch(e){case"wall":i[r-1][t-1]=y.SquareType.WALL;break;case"coin":i[r-1][t-1]=y.SquareType.AWARD}}));r.initMap=new Sk.builtin.func((function(){S()})),r.Actor=Sk.misceval.buildClass(r,(function(t,r){r.__init__=new Sk.builtin.func((function(t,r,i){switch("无可用角色"==(r=Sk.ffi.remapToJs(r)||"pegman")&&(r="pegman"),r){case"pegman":u.img="../common/js/skulpt_mixcar/pic/pegman.png",u.type="animate";break;case"panda":u.img="../common/js/skulpt_mixcar/pic/panda.png",u.type="animate";break;case"astro":u.img="../common/js/skulpt_mixcar/pic/astro.png",u.type="animate";break;case"robot":u.img="../common/js/skulpt_mixcar/pic/robot.png",u.type="still";break;case"car":u.img="../common/js/skulpt_mixcar/pic/actor_car3.png",u.type="animate"}u.direction=Sk.ffi.remapToJs(i)||a,size=[52,49],u.coin_point=0,function(){e.append("clipPath").attr("id","pegmanClipPath");const t=Sk.TurtleGraphics.target.querySelector("#pegmanClipPath");d3.select(t).append("rect").attr("id","clipRect").attr("width",u.width).attr("height",u.height),"animate"==u.type?0==y.type?e.append("image").attr("id","pegman").attr("width",16*u.width).attr("height",u.height).attr("clip-path","url(#pegmanClipPath)").attr("xlink:href",u.img):e.append("image").attr("id","pegman").attr("width",21*u.width).attr("height",u.height).attr("clip-path","url(#pegmanClipPath)").attr("xlink:href",u.img):e.append("image").attr("id","pegman").attr("width",u.width).attr("height",u.height).attr("clip-path","url(#pegmanClipPath)").attr("xlink:href",u.img),T(u.x,u.y,4*u.direction)}()})),r.moveDirection=new Sk.builtin.func((function(t,r){return Sk.builtin.pyCheckArgs("moveDirection",arguments,2,2),new Sk.misceval.promiseToSuspension(new Promise((function(t){Sk.setTimeout((function(){u.direction=parseInt(Sk.ffi.remapToJs(r));var l,o,m=function(t){if(!x(0,null))return!1;var r;switch(b(t)){case a:r="north";break;case n:r="east";break;case p:r="south";break;case c:r="west"}return r}(r);if(0==m)throw y.result=s,layer.alert("挑战失败!请修改后重新尝试",{shade:!1}),new Sk.builtin.TypeError("挑战失败!请修改后重新尝试");if(4==y.mlevel){if(i[u.y][u.x-1]==y.SquareType.OIL_STATION&&0==u.oil)throw y.result=s,e.append("image").attr("id","caroil").attr("x",k).attr("y",175).attr("width",k).attr("height",k).attr("xlink:href","../common/js/skulpt_mixcar/pic/no_oil.png"),layer.alert("挑战失败!小车没有油了",{shade:!1}),new Sk.builtin.TypeError("挑战失败!小车没有油了")}else if(5==y.mlevel)i[u.y][u.x]==y.SquareType.START&&(u.circulation_num+=1);else if(7==y.mlevel&&u.traffic_light==y.SquareType.LIGHT_RED)throw layer.alert("挑战失败:小车在红灯亮时还未停止!",{shade:!1}),new Sk.builtin.TypeError("挑战失败:小车在红灯亮时还未停止!");switch(m){case"north":I([u.x,u.y,4*u.direction],[u.x,u.y-1,4*u.direction]),u.y--;break;case"east":I([u.x,u.y,4*u.direction],[u.x+1,u.y,4*u.direction]),u.x++;break;case"south":I([u.x,u.y,4*u.direction],[u.x,u.y+1,4*u.direction]),u.y++;break;case"west":I([u.x,u.y,4*u.direction],[u.x-1,u.y,4*u.direction]),u.x--}if(l=u.x,o=u.y,i[o][l]==y.SquareType.AWARD&&(setTimeout((function(){$(Sk.TurtleGraphics.target).find("#coin"+o+l).remove()}),3*u.stepSpeed),i[o][l]=y.SquareType.OPEN,u.coin_point+=1),function(t,r){i[r][t]!=y.SquareType.MARKER1&&i[r][t]!=y.SquareType.MARKER2&&i[r][t]!=y.SquareType.MARKER3&&i[r][t]!=y.SquareType.MARKER4||(u.marker_num+=1)}(u.x,u.y),function(t,r){i[r][t]==y.SquareType.INVIMAKER&&(u.invisible_mark+=1)}(u.x,u.y),7==y.mlevel&&(i[u.y][u.x+1]==y.SquareType.LIGHT_RED||i[u.y][u.x+1]==y.SquareType.LIGHT_GREEN)&&(i[u.y][u.x+1]=Math.random()>.5?y.SquareType.LIGHT_RED:y.SquareType.LIGHT_GREEN,u.traffic_light=i[u.y][u.x+1],u.traffic_light==y.SquareType.LIGHT_RED)){const t=Sk.TurtleGraphics.target.querySelector("#lightgreen");d3.select(t).remove(),e.append("image").attr("id","lightred").attr("x",(u.x+1)*k-5).attr("y",u.y*k+5).attr("width",k).attr("height",k).attr("xlink:href","../common/js/skulpt_mixcar/pic/redlight.png")}var h=_();if("error2"==h)throw y.result=s,layer.alert("挑战失败,请检查是否通过所有标记点!",{shade:!1}),new Sk.builtin.TypeError("挑战失败,请检查是否通过所有标记点!");if("error3"==h)throw layer.alert("挑战失败,请修改后重新尝试!",{shade:!1}),new Sk.builtin.TypeError("挑战失败!请修改后重新尝试");t(Sk.builtin.none.none$)}),800)})))})),r.turn=new Sk.builtin.func((function(t,r){return Sk.builtin.pyCheckArgs("turn",arguments,2,2),Sk.builtin.pyCheckType("direction","string",Sk.builtin.checkString(r)),new Sk.misceval.promiseToSuspension(new Promise((function(t){Sk.setTimeout((function(){switch(function(t){return"right"==t?"right":"left"}(r=Sk.ffi.remapToJs(r))){case"left":I([u.x,u.y,4*u.direction],[u.x,u.y,4*u.direction-4]),u.direction=b(u.direction-1);break;case"right":I([u.x,u.y,4*u.direction],[u.x,u.y,4*u.direction+4]),u.direction=b(u.direction+1)}t(Sk.builtin.none.none$)}),800)})))})),r.isDone=new Sk.builtin.func((function(t){Sk.builtin.pyCheckArgs("isDone",arguments,1,1);var r=Sk.ffi.remapToPy(_());return new Sk.ffi.remapToPy(r)})),r.isPath=new Sk.builtin.func((function(t,r){Sk.builtin.pyCheckArgs("isPath",arguments,2,2),Sk.builtin.pyCheckType("direction","string",Sk.builtin.checkString(r));var e="";switch(r=Sk.ffi.remapToJs(r)){case"left":e=x(r=3,null);break;case"right":e=x(r=1,null)}return Sk.ffi.remapToPy(e)})),r.isBarrier=new Sk.builtin.func((function(t,r){Sk.builtin.pyCheckArgs("isBarrier",arguments,2,2),Sk.builtin.pyCheckType("direction","number",Sk.builtin.checkNumber(r));var e,l=0;switch(r=Sk.ffi.remapToJs(r)){case a:l=i[u.y-1]?i[u.y-1][u.x]:0;break;case n:l=i[u.y][u.x+1]?i[u.y][u.x+1]:0;break;case p:l=i[u.y+1]?i[u.y+1][u.x]:0;break;case c:l=i[u.y][u.x-1]?i[u.y][u.x-1]:0}return e=l==y.SquareType.BARRIER,Sk.ffi.remapToPy(e)})),r.randomOil=new Sk.builtin.func((function(t){Sk.builtin.pyCheckArgs("randomOil",arguments,1,1),u.oil=Math.random()>.5?1:0,0==u.oil?e.append("image").attr("id","caroil").attr("x",k).attr("y",175).attr("width",k).attr("height",k).attr("xlink:href","../common/js/skulpt_mixcar/pic/none_oil.png"):1==u.oil&&e.append("image").attr("id","caroil").attr("x",k).attr("y",175).attr("width",k).attr("height",k).attr("xlink:href","../common/js/skulpt_mixcar/pic/full_oil.png")})),r.isOilFull=new Sk.builtin.func((function(t){return Sk.builtin.pyCheckArgs("isOilFull",arguments,1,1),0==u.oil?Sk.ffi.remapToPy(!0):1==u.oil?Sk.ffi.remapToPy(!1):void 0})),r.addOil=new Sk.builtin.func((function(t){return Sk.builtin.pyCheckArgs("addOil",arguments,1,1),new Sk.misceval.promiseToSuspension(new Promise((function(t){Sk.setTimeout((function(){e.append("image").attr("id","caroil").attr("x",k).attr("y",175).attr("width",k).attr("height",k).attr("xlink:href","../common/js/skulpt_mixcar/pic/full_oil.png"),u.oil=1,t(Sk.builtin.none.none$)}),800)})))})),r.getPoint=new Sk.builtin.func((function(t){Sk.builtin.pyCheckArgs("getPoint",arguments,1,1);var r=u.coin_point;return Sk.ffi.remapToPy(r)})),r.isLightGreen=new Sk.builtin.func((function(t){return Sk.builtin.pyCheckArgs("isLightGreen",arguments,1,1),u.traffic_light==y.SquareType.LIGHT_GREEN?Sk.ffi.remapToPy(!0):u.traffic_light==y.SquareType.LIGHT_RED?Sk.ffi.remapToPy(!1):void 0})),r.isCirculationRight=new Sk.builtin.func((function(t){return Sk.builtin.pyCheckArgs("isCirculationRight",arguments,1,1),new Sk.misceval.promiseToSuspension(new Promise((function(t){var r=!1;switch(y.mlevel){case 5:r=3==u.circulation_num;break;case 7:if(u.traffic_light==y.SquareType.LIGHT_GREEN)r=!1;else if(u.traffic_light==y.SquareType.LIGHT_RED)for(var e=0;e<y.map.length;e++)for(var i=0;i<y.map[0].length;i++)y.map[e][i]==y.SquareType.LIGHT_RED&&(u.x+1!=i&&u.y!=e||(r=!0))}if(0==r)throw y.result=s,layer.alert("挑战失败,请检查循环次数是否正确!",{shade:!1}),new Sk.builtin.TypeError("挑战失败,请检查循环次数是否正确!");y.result=o,t(Sk.builtin.none.none$)})))})),r.isSuccess=new Sk.builtin.func((function(t){return Sk.builtin.pyCheckArgs("isSuccess",arguments,1,1),new Sk.misceval.promiseToSuspension(new Promise((function(t){var r=_();if(1==r)setTimeout((function(){layer.alert("挑战成功!",{shade:!1})}),1e3),t(Sk.builtin.none.none$);else if(0==r)throw y.result=s,layer.alert("挑战失败,请检查是否到达终点!",{shade:!1}),new Sk.builtin.TypeError("挑战失败,请检查是否到达终点!")})))}))}),"Actor");return r.settedMap=new Sk.builtin.func((function(t){t=Sk.ffi.remapToJs(t),y=d[t],i=d[t].map,S()})),r};