Diseño y Programación Orientados a Objetos
1er. Sem 2012
Tarea 3: Applet para Simulador Gráfico de Bolas Móviles y Paredes como Objetos de Software

Recomendación: Lea detenidamente la tarea. Si algo no lo entiende, consulte en clases. Si es preciso, se incorporarán aclaraciones al final.
Esta tarea tiene por objetivos:
* Ejercitar la creacón de archivos .jar
* Ejercitar la reproducción de sonidos en Java.
* Ejercitar el paso de parámetros desde un archivo html a un applet.
* Aplicar elementos de Ingeniería de software.

Descripción General
  Básicamente ahora usted podrá correr las simulaciones a través de Internet usando un Applet. Además de lo solicitado en la tares 2 (sin considear extra-créditos), usted deberá permitir que el usuraio pueda especificar en su archivo html el escenario predefinido de su simulación y generar sonidos como conseguencia de los choques.
  La especificación del escenario debe seguir una sintáxis del estilo:
<applet ..... lo que corresponda .....>
<param name="title" value="Physics Lab: 3 balls in a box"/>
<param name="sideNum" value="4"/>
<param name="wall.1" value="poner aquí sus atributos separados por ;"/>
<param name="wall.2" value="poner aquí sus atributos separados por ;"/>
<param name="wall.3" value="poner aquí sus atributos separados por ;"/>
<param name="wall.4" value="poner aquí sus atributos separados por ;"/>
<param name="ballNum" value="3"/>
<param name="ball.1" value="poner aquí sus atributos separados por ;"/>
<param name="ball.2" value="poner aquí sus atributos separados por ;"/>
<param name="ball.3" value="poner aquí sus atributos separados por ;"/>
<param name="gravity" value="-9.8"/>
<param name="viscosity" value="0.0"/>
<param name="deltaTime" value="0.001"/>
<param name="refreshTime" value="0.03"/>
<param name="plotWindowTime" value="30"/>
</applet>
   Tara los sonidos use dos sonidos cortos uno para el choque entre dos bolas y otro para el caso bola y pared.

Trabajo a desarrollar
Desde un punto de vista de la simulación, esta tarea tiene la misma descripción que la tarea 2.
Los atributos de myWorld (gravedad, viscosidad, timepo de refresco y la magnitud del paso discreto del tiempo) son tomados del html.
El Applet debe dividir el área de despliegue en con un JSplitPane para separar la zona de simulación del gráfico. A la izquierda debe verse la simulación.  El gráfico debe mostrar sólo el últimos N segundos de la simulación, donde N es un parámetro especificados en el HTML (default = 30 segundos). El nombre de este parámetro en el html es "PlotWindowTime". Este requerimiento completa en parte lo pedido para el gráfico de la tarea 2.
Cada vez que se selecciona gráfino ON, el gráfico parte nuevamente borrando toda historia pasada.
Prepare sus archivos para incluir una clase PhysicsLab que permita ejecutar su solución como aplicación y la clase PhysicsLabApplet que lo haga como applet. Para el caso de PhysicsLab use los parámetros por omisión (no serán especificados por ningún html).

Puntaje extra: Su grupo puede optar a 10 puntos de extras si al ejecutar el programa en modo aplicación, en lugar de usar aquellos por omisión, usted estudia la clase Properties, y define los mismos nombre de parámetros indicados antes en un archivo PhysicsLab.ini.

Resultados Esperados de su Grupo
Entregue todo lo indicado en Normas de Entrega de Tareas.
Debe preparar un archivo PhysicsLab.jar que incluya todo lo requerido para la ejecución de su applet.
Incluya un archivo PhysicsLab.html que permita correr su applet.
Además de correr como applet, su trabajo debe permitir su ejecución como aplicación usando:
$make run
o bien usando:
$ java -jar PhysicsLab.jar

En su archivo de documentación (pdf o html) incorpore un casos de uso de la aplicación, su correspondiente diagrama UML y ponga dos tarjetas CRC.

Ayudas
Será provista según surjan consultas de parte de ustedes.