var W=7,H=8; function emptyboard(){ return new Array(H).fill(0).map(function(){ return new Array(W).fill(0).map(function(){ return {n:0,c:0}; }); }); } function bdcopy(bd){ return bd.map(function(r){ return r.map(function(c){ return {n:c.n,c:c.c}; }); }); } 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};