var point=new Array();
var delta=new Array();
var pathx=new Array();
var number_path=new Array();
var ball=new Array();
var x=new Array();
var y=new Array();
function sample(){
for(s=1;s<101;s++){
ball[s]=0;
}
tx=0;
for(s=1;s<101;s++){
for(sx=1;sx<101;sx++){
tx=tx+1;
x[tx]=s;
y[tx]=sx;
point[tx]=0;
delta[tx]=0;
}
}
number=tx;
for(s=1;s<number+1;s++){
pathx[s]=new Array();
}
for(s=30;s<70;s++){
for(sx=30;sx<70;sx++){
n=search(s,sx);
delta[n]=100;
}
}
sx=search(50,1)
point[sx]=100;
for(n=2;n<101;n++){
for(s=1;s<101;s++){
c1=search(s,n);
z=0;
for(sx=-1;sx<2;sx++){
x1=s+sx;
y1=n-1;
sxs=search(x1,y1);
if(point[sxs]>50)z=100;
}
if(delta[c1]>50)z=0;
if(z>50)point[c1]=100;
}
}
for(s=1;s<number+1;s++){
x1=x[s];
y1=y[s];
k=0;
for(sx=-1;sx<2;sx++){
x2=x1+sx;
y2=y1-1;
cc=search(x2,y2);
if(point[cc]>50)k=k+1;
if(point[cc]>50)pathx[s][k]=cc;
}
number_path[s]=k;
}
var timer;
var delay = 100;
var loop = function () {
if(Math.random()>0.9)strike();
for(m=1;m<101;m++){
ss=ball[m];
if(ss>0){m1=number_path[ss]*Math.random();
m2=Math.floor(m1)+1;
ball[m]=pathx[ss][m2];
}
}
for(s=1;s<101;s++){
ss=ball[s];
if(y[ss]<2)ball[s]=search(50,100);
}
paint();
clearTimeout(timer);
timer = setTimeout(loop, delay);
}
loop();
paint();
}
function strike(){
var s,sx;
sx=0;
for(s=1;s<101;s++){
if(ball[s]==0)sx=s;
}
if(sx>0)ball[sx]=search(50,100);
}
function paint(){
var sub=new svgpaint();
str="<svg width=\"500\" height=\"500\">";
str=str+sub.rect(150,150,200,200,"blue");
for(s=1;s<101;s++){
sx=ball[s];
if(sx>0)str=str+sub.rect(5*x[sx],500-5*y[sx],5,5,"red");
}
str=str+"</svg>";
$("#memo").html(str);
}
function search(x1,y1){
var s,sx,h;
sx=0;
for(s=1;s<number+1;s++){
h=0;
if(x[s]==x1)h=h+1;
if(y[s]==y1)h=h+1;
if(h==2)sx=s;
}
return sx;
}
最終更新:2016年04月28日 04:37