アットウィキロゴ

せんそうい++

class war{
 
ax:number[]=new Array();
ay:number[]=new Array();
bx:number[]=new Array();
by:number[]=new Array();
b:number[]=new Array();
a:number[]=new Array();
dx:number;
dy:number;
alpha:number[]=new Array();
beta:number[]=new Array();
number_link:number;
 
 
faststep():void{
 
var s:number;
 
for(s=1;s<11;s++){
this.a[s]=100;
this.b[s]=100;
this.ay[s]=1;
this.ax[s]=s;
this.by[s]=10;
this.bx[s]=s;
} 
 
 
 
}
 
 move_a():void{
 
var s,x1,y1,ch:number;
 
for(s=1;s<11;s++){
this.dir();
x1=this.ax[s]+this.dx;
y1=this.ay[s]+this.dy;
ch=this.check(x1,y1);
if(ch<50)this.ay[s]=y1;    
if(ch<50)this.ax[s]=x1;   
}
 
}
 
 
search_link():void{
 
var s,sx,n:number;
 
sx=0;
for(s=1;s<11;s++){
if(this.a[s]>50)sx=sx+1;
}
 
n=sx;
 
sx=0;
for(s=1;s<11;s++){
if(this.b[s]>50)sx=sx+1;
}
 
if(sx<n)n=sx;
 
 
var r,h,sxs:number;
var ch:number[]=new Array();
var maxa,maxb:number; 
 
for(r=1;r<11;r++){
ch[r]=0;
if(this.a[r]<50)ch[r]=100;
}
 
for(r=1;r<n+1;r++){
maxa=0;
sxs=0;
for(s=1;s<11;s++){
h=0;
if(this.ay[s]>maxa)h=h+1;
if(ch[s]<50)h=h+1;
if(h==2)maxa=this.ay[s];
if(h==2)sxs=s;
}
ch[sxs]=100;
this.alpha[r]=sxs;
}
 
 
 
for(r=1;r<11;r++){
ch[r]=0;
if(this.b[s]<50)ch[r]=100;
}
 
var e1,s1,x1,y1:number; 
 
for(r=1;r<n+1;r++){
maxb=10000;
sxs=0;
s1=this.alpha[r];
x1=this.ax[s1];
y1=this.ay[s1];
for(s=1;s<11;s++){
h=0;
e1=(x1-this.bx[s])*(x1-this.bx[s])+(y1-this.by[s])*(y1-this.by[s])
if(e1<maxb)h=h+1;
if(ch[s]<50)h=h+1;
if(h==2)maxb=e1;
if(h==2)sxs=s;
}
ch[sxs]=100;
this.beta[r]=sxs;
}
 
 
this.number_link=n;
 
 
}
 
 
move_b():void{
 
this.search_link();
 
var e1,t,s,sx,xs,ys,x1,y1,x2,y2,x3,x4,y3,y4,maxd:number;
 
 
for(t=1;t<this.number_link+1;t++){
maxd=500;
s=this.alpha[t];
sx=this.beta[t];
x1=this.bx[sx]+1;
y1=this.by[sx];
e1=(x1-this.ax[s])*(x1-this.ax[s])+(y1-this.ay[s])*(y1-this.ay[s]);
e1=Math.sqrt(e1);
if(e1<maxd)xs=x1;
if(e1<maxd)ys=y1;
if(e1<maxd)maxd=e1;
x1=this.bx[sx]-1;
y1=this.by[sx];
e1=(x1-this.ax[s])*(x1-this.ax[s])+(y1-this.ay[s])*(y1-this.ay[s]);
e1=Math.sqrt(e1);
if(e1<maxd)xs=x1;
if(e1<maxd)ys=y1;
if(e1<maxd)maxd=e1;
x1=this.bx[sx];
y1=this.by[sx]+1;
e1=(x1-this.ax[s])*(x1-this.ax[s])+(y1-this.ay[s])*(y1-this.ay[s]);
e1=Math.sqrt(e1);
if(e1<maxd)xs=x1;
if(e1<maxd)ys=y1;
if(e1<maxd)maxd=e1;
x1=this.bx[sx];
y1=this.by[sx]-1;
e1=(x1-this.ax[s])*(x1-this.ax[s])+(y1-this.ay[s])*(y1-this.ay[s])
e1=Math.sqrt(e1);
if(e1<maxd)xs=x1;
if(e1<maxd)ys=y1;
if(e1<maxd)maxd=e1;
if(this.check(xs,ys)<50)this.bx[sx]=xs;
if(this.check(xs,ys)<50)this.by[sx]=ys;
}
 
 
 
}
 
dir():void{
 
var n1,n2:number;
 
n1=4*Math.random();
n2=Math.floor(n1)+1;
 
this.dx=0;
this.dy=0;
if(n2==1)this.dx=1;
if(n2==1)this.dy=0;
if(n2==2)this.dx=-1;
if(n2==2)this.dy=0;
if(n2==3)this.dx=0;
if(n2==3)this.dy=1;
if(n2==4)this.dx=0;
if(n2==4)this.dy=-1;
}
 
 check(px:number,py:number):number{
 
 var sx,y1,ch,h:number;
 
ch=0;
for(sx=1;sx<11;sx++){
h=0;
if(this.bx[sx]==px)h=h+1;
if(this.by[sx]==py)h=h+1;   
if(this.b[sx]>50)h=h+1;  
if(h==3)ch=100;
}
 
for(sx=1;sx<11;sx++){
h=0;
if(this.ax[sx]==px)h=h+1;
if(this.ay[sx]==py)h=h+1;   
if(this.a[sx]>50)h=h+1;  
if(h==3)ch=100;
}
 
if(px<1)ch=100;
if(py<1)ch=100;
if(px>10)ch=100;
if(py>10)ch=100;
 
return ch;
} 
 
}
最終更新:2016年11月19日 08:20