Code viewer for Mind: Final Mind Submission (clo...

// Cloned by Joe Ninety on 5 Nov 2021 from Mind "Final Mind Submission" by Mohamed Hafez 
// Please leave this clone trail here.
 
AB.mind.getAction=function(o){var r,a,t,n,A=o[0],i=o[1],B=o[2],e=o[3],d=o[4],f=o[5],u=o[6],c=o[7],I=o[8],h=o[9],p=[],v=[],m=o[10],l=[];function s(o,r){return Math.sqrt(Math.pow(o.i-r.i,2)+Math.pow(o.j-r.j,2))}function k(o,r){for(var a=o.length-1;a>=0;a--)o[a]==r&&o.splice(a,1)}if(1==d)return e<i?AB.randomPick(ACTION_UP,AB.randomPick(ACTION_RIGHT,ACTION_LEFT)):e>i?AB.randomPick(ACTION_DOWN,AB.randomPick(ACTION_RIGHT,ACTION_LEFT)):B<A?AB.randomPick(ACTION_RIGHT,AB.randomPick(ACTION_UP,ACTION_DOWN)):B>A?AB.randomPick(ACTION_LEFT,AB.randomPick(ACTION_UP,ACTION_DOWN)):AB.randomIntAtoB(0,3);if(3==d){var T=[];T[0]=Math.sqrt(Math.pow(A-B,2)+Math.pow(i+1-e,2)),T[1]=Math.sqrt(Math.pow(A+1-B,2)+Math.pow(i-e,2)),T[2]=Math.sqrt(Math.pow(A-B,2)+Math.pow(i-1-e,2)),T[3]=Math.sqrt(Math.pow(A-1-B,2)+Math.pow(i-e,2)),f>0&&(T[2]=0),u>0&&(T[1]=0),c>0&&(T[3]=0),I>0&&(T[0]=0);for(var g=Math.max.apply(null,T),M=0;M<T.length;M++)T[M]==g&&l.push(M);return AB.randomElementOfArray(l)}if(2==d){function O(o,r){return o>=0&&o<=h/3&&r>=0&&r<=h/3?1:o>=h/3&&o<=2*h/3&&r>=0&&r<h/3?2:o>=2*h/3&&o<=h&&r>=0&&r<=h/3?3:o>=0&&o<h/3&&r>=h/3&&r<=2*h/3?4:o>=h/3&&o<=2*h/3&&r>=h/3&&r<=2*h/3?5:o>2*h/3&&o<=h&&r>=h/3&&r<=2*h/3?6:o>=0&&o<=h/3&&r>=2*h/3&&r<=h?7:o>=h/3&&o<=2*h/3&&r>2*h/3&&r<=h?8:o>=2*h/3&&o<=h&&r>=2*h/3&&r<=h?9:void 0}p=[],v=[],r=m[A][i];for(var N=[0,h/3,0,h/3],C=[h/3,2*h/3,0,h/3],_=[2*h/3,h,0,h/3],b=[0,h/3,h/3,2*h/3],P=[h/3,2*h/3,h/3,2*h/3],w=[2*h/3,h,h/3,2*h/3],q=[0,h/3,2*h/3,h],E=[h/3,2*h/3,2*h/3,h],j=[2*h/3,h,2*h/3,h];;){var D=AB.randomIntAtoB(N[0],N[1]),F=AB.randomIntAtoB(N[2],N[3]);if(!occupied(D,F))break}for(;;){var G=AB.randomIntAtoB(C[0],C[1]),H=AB.randomIntAtoB(C[2],C[3]);if(!occupied(G,H))break}for(;;){var L=AB.randomIntAtoB(_[0],_[1]),R=AB.randomIntAtoB(_[2],_[3]);if(!occupied(L,R))break}for(;;){var U=AB.randomIntAtoB(b[0],b[1]),W=AB.randomIntAtoB(b[2],b[3]);if(!occupied(U,W))break}for(;;){var y=AB.randomIntAtoB(P[0],P[1]),x=AB.randomIntAtoB(P[2],P[3]);if(!occupied(y,x))break}for(;;){var z=AB.randomIntAtoB(w[0],w[1]),J=AB.randomIntAtoB(w[2],w[3]);if(!occupied(z,J))break}for(;;){var K=AB.randomIntAtoB(q[0],q[1]),Q=AB.randomIntAtoB(q[2],q[3]);if(!occupied(K,Q))break}for(;;){var S=AB.randomIntAtoB(E[0],E[1]),V=AB.randomIntAtoB(E[2],E[3]);if(!occupied(S,V))break}for(;;){var X=AB.randomIntAtoB(j[0],j[1]),Y=AB.randomIntAtoB(j[2],j[3]);if(!occupied(X,Y))break}1==O(B,e)&&(a=m[X][Y]),3==O(B,e)&&(a=m[K][Q]),7==O(B,e)&&(a=m[L][R]),9==O(B,e)&&(a=m[D][F]),2==O(B,e)&&(1!=O(A,i)&&4!=O(A,i)&&7!=O(A,i)||(a=m[K][Q]),3!=O(A,i)&&6!=O(A,i)&&9!=O(A,i)||(a=m[X][Y]),2!=O(A,i)&&5!=O(A,i)&&8!=O(A,i)||(a=m[K][Q])),4==O(B,e)&&(1!=O(A,i)&&2!=O(A,i)&&3!=O(A,i)||(a=m[L][R]),7!=O(A,i)&&8!=O(A,i)&&9!=O(A,i)||(a=m[X][Y]),4!=O(A,i)&&5!=O(A,i)&&6!=O(A,i)||(a=m[L][R])),6==O(B,e)&&(1!=O(A,i)&&2!=O(A,i)&&3!=O(A,i)||(a=m[D][F]),7!=O(A,i)&&8!=O(A,i)&&9!=O(A,i)||(a=m[K][Q]),4!=O(A,i)&&5!=O(A,i)&&6!=O(A,i)||(a=m[D][F])),8==O(B,e)&&(1!=O(A,i)&&4!=O(A,i)&&7!=O(A,i)||(a=m[D][F]),3!=O(A,i)&&6!=O(A,i)&&9!=O(A,i)||(a=m[L][R]),2!=O(A,i)&&5!=O(A,i)&&8!=O(A,i)||(a=m[D][F])),5==O(B,e)&&(1==O(A,i)&&(a=m[G][H]),2==O(A,i)&&(a=m[L][R]),3==O(A,i)&&(a=m[z][J]),4==O(A,i)&&(a=m[K][Q]),6==O(A,i)&&(a=m[X][Y]),7==O(A,i)&&(a=m[S][V]),8==O(A,i)&&(a=m[X][Y]),9==O(A,i)&&(a=m[z][J]),5==O(A,i)&&(A<B&&i<e&&(a=m[D][F]),A<B&&i>e&&(a=m[K][Q]),A>B&&i>e&&(a=m[X][Y]),A>B&&i<e&&(a=m[L][R]),A<B&&(a=m[U][W]),A>B&&(a=m[z][J]),i<e&&(a=m[G][H]),i>e&&(a=m[S][V]))),p.push(r);for(var Z=0;Z<h;Z++)for(var $=0;$<h;$++)m[Z][$].g=0,m[Z][$].f=0,m[Z][$].h=0,m[Z][$].previou=void 0;for(m[B][e].value=3;p.length>0;){var oo=0;for(Z=0;Z<p.length;Z++)p[Z].f<p[oo].f&&(oo=Z);var ro=p[oo];if(ro===a){console.log("success - found path2");break}k(p,ro),v.push(ro);var ao=ro.neighbors;for(Z=0;Z<ao.length;Z++){var to=ao[Z];if(!v.includes(to)&&2!==to.value&&1!==to.value&&3!==to.value){var no=ro.g+s(to,ro),Ao=!1;p.includes(to)?no<to.g&&(to.g=no,Ao=!0):(to.g=no,Ao=!0,p.push(to)),1==Ao&&(to.h=s(to,a),to.f=to.g+to.h,to.previou=ro)}}}var io=[],Bo=ro;for(io.push(Bo);Bo.previou;)io.push(Bo.previou),Bo=Bo.previou;return t=io[io.length-2].i,n=io[io.length-2].j,t<A?0:t>A?1:n<i?3:n>i?2:AB.randomIntAtoB(0,3)}};