import java.io.*;
import java.util.Scanner;
import java.util.Locale;
import javax.swing.*;


public class PhysicsLab {
    public static void main(String[] args) {
        double deltaTime;
        double endTime;
        double samplingTime;
        
        if (args.length != 3)  {
            /************************** Método visual, se descarta debido a que no es simple de usar a través de aragorn.
            String Sdelta     = JOptionPane.showInputDialog("Introduzca delta: ");
            String Send       = JOptionPane.showInputDialog("Introduzca duracion: ");
            String Ssampling  = JOptionPane.showInputDialog("Introduzca tiempo_muestreo: ");
            deltaTime         = Double.parseDouble(Sdelta);
            endTime           = Double.parseDouble(Send);
            samplingTime      = Double.parseDouble(Ssampling);
            */
            Scanner teclado   = new Scanner(System.in);
            teclado.useLocale( new Locale("EN"));
            System.err.println("Introduzca delta (use punto para separar decimales):"); // Se usa la salida de error para que no sea redirigido y se pueda ver por terminal
            deltaTime         = teclado.nextDouble();
            System.err.println("Introduzca duracion:");
            endTime           = teclado.nextDouble();  
            System.err.println("Introduzca tiempo_muestreo:");
            samplingTime      = teclado.nextDouble();
            System.err.println("Le guardaremos su informacion en Resultado_experimento.csv");
        }
        else{
            deltaTime      = Double.parseDouble(args[0]);      // [s]
            endTime        = Double.parseDouble(args[1]);      // [s]
            samplingTime   = Double.parseDouble(args[2]);      // [s]
        }

        MyWorld world         = new MyWorld(System.out);
        double mass           = 1.0;                              // 1 [kg]
        double radius         = 0.1;                              // 10 [cm]
        double position       = 1.0;                              // 1 [m]
        double speed          = 0.5;                              // 0.5 [m/s]
        Ball b0               = new Ball(mass, radius, position, speed);
        Ball b1               = new Ball(mass, radius, 2.56, 0);
        world.addElement(b0);
        world.addElement(b1);
        world.simulate(deltaTime, endTime, samplingTime);         // delta time[s], total simulation time [s].
    }
}