Code viewer for Mind: Complex Mind mine (clone b...

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