アットウィキロゴ

package atom;
 
 
public class pro {
 
    int number;
    int[] x=new int[11];
    int[] y=new int[11];
    int[] dx=new int[11];
    int[] dy=new int[11];
    int s,sx;
    double[] p=new double[4];
 
 
    public static void main(String[] args) {
        pro test=new pro();
    }
 
   pro(){ 
 
 
       p[1]=0.8;
       p[2]=0.2;
       p[3]=0.8;
 
       for(s=1;s<11;s++){
       x[s]=50;
       y[s]=50;
       dx[s]=0;
       dy[s]=0;
       }
 
       int t;
 
       for(t=1;t<1000;t++){
 
       for(s=1;s<11;s++){
       x[s]=x[s]+dx[s];
       y[s]=y[s]+dy[s];
      }
 
 
       double minm,m1;
       int ch;
 
       for(s=1;s<11;s++){
       minm=9999;
       for(sx=1;sx<11;sx++){
       m1=met(s,sx);
       if(s==sx)m1=9999;
       if(m1<minm)minm=m1;
       }
       ch=2;
       if(minm>9)ch=3;
       if(minm<2)ch=1;
       check(s,ch);
       }
 
       for(s=1;s<11;s++){
      bar(s);
       }
 
       }
 
   }
   void bar(int s){
 
       if(x[s]>100)change(s);
   if(x[s]>100)x[s]=100;
 
   if(y[s]>100)change(s);
   if(y[s]>100)y[s]=100;
 
     if(x[s]<1)change(s);
   if(x[s]<1)x[s]=1;
 
   if(y[s]<1)change(s);
   if(y[s]<1)y[s]=1;  
 
   }
 
 
   void check(int s,int ch){
 
       double p1;
 
       p1=Math.random();
 
       if(p1<p[ch])change(s);
 
 
 
   }
 
   void change(int s){
 
       double p1;
 
       p1=Math.random();
 
       dx[s]=-1;  
   if(p1<0.5)dx[s]=1;
 
    p1=Math.random();
 
       dy[s]=-1;  
   if(p1<0.5)dy[s]=1;
 
 
 
   }
 
 
 
int met(int s1,int s2){
 
    int x1,y1,z1;
    double z;
 
    x1=x[s1]-x[s2];
    y1=y[s1]-y[s2];
 
    z=x1*x1+y1*y1;
    z=Math.sqrt(z);
    z1=(int)z;
    return z1;
}
}
最終更新:2014年04月11日 06:20