/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

class Binfo{
	double v, dv, rad, drad, r;
	Binfo(double v, double dv, double rad, double drad,double r){
		this.v=v;
		this.dv=dv;
		this.rad=rad;
		this.drad=drad;
		this.r=r;
	}
}

class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
		ArrayList<Group> GroupList = new ArrayList<Group>();
		Binfo Bi = new Binfo((double)2,(double)1,0,(double)0.001,(double)0);
		GroupList.add(new GroupTest(Bi,10,10,8));
	}
}

class Group{
	ArrayList<Bullet> BulletList= new ArrayList<Bullet>();
	Binfo Bi;
	
}
class GroupTest extends Group{
	
	GroupTest(Binfo Bi,double bx,double by,int n){
		
		super.Bi = Bi;
		Binfo Bitemp;
		int i;
	
		for(i=0;i<n;i++){
			Bullet btemp;
			Bi.rad=((6.283184)/n)*i;
			
			Bitemp = new Binfo(Bi.v,Bi.dv,Bi.rad,Bi.drad,Bi.r);
			btemp = new Bullet(Btemp,bx,by);
			this.BulletList.add(btemp);
			System.out.println("recently "+i+" "+this.BulletList.get(i).bBi.rad);
		}
		
		//여기까지 들어가는건 잘 들어가거든요
		
		System.out.println("---------------------");
		//근데 여길 지나친다음에
		
		for(i=0;i<n;i++){
			System.out.println("loaded "+i+" "+this.BulletList.get(i).bBi.rad);
		}
		
		//출력하면 값이 통일되버림. 왜이러는거죠..
		
		
	}
}

class Bullet{
	Binfo bBi;
	Binfo bBi_pure;
	double x,y;
	int count;
	
	Bullet(Binfo GBi,double bx,double by){
		System.out.println("called "+GBi.rad);
		this.bBi=GBi;
		this.bBi_pure=GBi;
		this.x=bx;
		this.y=by;
		System.out.println("in "+this.bBi.rad);
	}
	
	/*public void Action(){
		this.x = this.x + this.Bi.v*Math.cos((double)this.Bi.rad);
		this.y = this.y + this.Bi.v*Math.sin((double)this.Bi.rad);
		this.Bi.rad += this.Bi.drad;
		if(this.Bi.rad>6.283184) this.Bi.rad-=6.283184;
	}
	
	public boolean OutRange(){
		if( this.x<0 || this.x>500 || this.y<0 || this.y>800) return true;
		else return false;
	}
	
	public boolean Crash(double px,double py){
		//do something;
		return true;
	}*/

}