if(typeof module=="undefined")module=false; //hack to support client-side importing var W=8,H=9; if(module){ module.exports.W=W; module.exports.H=H; } if(module)module.exports["emptyboard"]=emptyboard; function emptyboard(){ return new Array(H).fill(0).map(function(){ return new Array(W).fill(0).map(function(){ return {n:0,c:0}; }); }); } if(module)module.exports["bdcopy"]=bdcopy; function bdcopy(bd){ return bd.map(function(r){ return r.map(function(c){ return {n:c.n,c:c.c}; }); }); } if(module)module.exports["checkwin"]=checkwin; function checkwin(bd){ var wincolour=-1,i; for(i=0;i0)+(x>0)+(y=nnei){ quo=~~(bd[y][x].n/nnei); newbd[y][x].n-=quo*nnei; if(y>0) {newbd[y-1][x].n+=quo;newbd[y-1][x].c=bd[y][x].c;} if(x>0) {newbd[y][x-1].n+=quo;newbd[y][x-1].c=bd[y][x].c;} if(y>>0,i=arguments[1],a=i>>0,e=0>a?Math.max(n+a,0):Math.min(a,n),o=arguments[2],h=void 0===o?n:o>>0,l=0>h?Math.max(n+h,0):Math.min(h,n);l>e;)r[e]=t,e++;return r};