import java.lang.*; import java.io.*; import java.util.*; //Machine Learning using a Table for tank(moving target) bombardment public class Tank2 { public static void main(String[] args){ //max_range = 1000; max_angle = Math.PI/2; max_speed = 100; double[] angleTable = new double[100]; //remember paris for every 10m double[] speedTable = new double[100]; for(int i=0; i<100; i++){ //initialize table angleTable[i]=-1.0; speedTable[i]=-1.0; } Random rand = new Random(0); //set random seed System.out.println("Turns to hit"); for(int loop=0; loop<100; loop++){ //loop 100 times int counter = 0; //Initialize counter System.err.println("Angle, Speed, Distance, Target"); while(true){ //Loop until hit counter++; double angle; double speed; double distance; int target = (int)((rand.nextDouble()*1000.0)+1.0); //move target tank int tableIndex = (target-1)/10; //remember pairs for every 10m if(angleTable[tableIndex]==-1){ //new distance angle = rand.nextDouble()*(Math.PI/2.0); speed = rand.nextDouble()*(100); distance = (speed * speed * Math.sin( angle * 2.0 ))/9.8 ; int newIndex = (((int)distance)-1)/10; //check new results if(newIndex (target-10) && distance < (target+10)) break; //if hit then exit while }//end while(true) System.err.println("---HIT!!!---"); System.out.println(counter); }//end for(loop) System.err.println("angleTable, speedTable"); for(int i=0; i<100; i++){ //show table System.err.println(angleTable[i]+", "+speedTable[i]); } }//end main() }//end class Tank2