Practica 1 Manejo de Clases en la practica
Métodos Utilizados
Métodos que generan todos los datos de carril y define la cantidad de veces que la simulación se ejecutará. Parámetros que ejecutan los valores que se le pasaran al metodo de simulación; determina el numero de veces que la simulación se ejecutará.public void Iniciar(String Corridas) { generadordeDatosCarril(); simulaciones(Corridas); } public void simulaciones(String Corridas) { int Contador = 0; while (Contador < Integer.parseInt(Corridas)) { Dibujar_Interseccion(); MovimientoCarroHztal(); MovimientoCarroVtcal(); if (Inicio_semaforo == 10) { luces_v = "Verde"; } else if (Inicio_semaforo == 14) { luces_v = "Amarillo"; } else if (Inicio_semaforo == 15) { luces_v = "Rojo"; //.............................................Estas clases y métodos implementados nos funcionan como un indicador o switch para la toma de decisiones sobre las demás clases y métodos implementados para indicar si se coloca o no un carro o si se mueve o no de un espacio a otro.
public void setVProb(Float verticalProb) { prob_VCarro = verticalProb; } public void setHProb(Float horizontalProb) { prob_HCarro = horizontalProb; }Ahora bien creamos una tercer clase que se encarga de darle ahora si, vida a nuestro sistema de semáforos, indicándole a los vehículos cuando podrán avanzar, cuando detenerse o en su caso, poder avanzar en sentidos contrarios al mismo tiempo en cruces hacia la izquierda de ambos sentidos, se utilizan mas pero solo mencionaremos estos dos.
//para los "verticales" public void MovimientoCarroVtcal() { for (int i = ArregloVertical.size() - 1; i > -1; i--) { for (int j = 0; j < ArregloVertical.get(0).size(); j++) { if (ArregloVertical.get(i).get(j).equals("c")) { //si el elemento es igual a "c" entonces... if (i == ArregloVertical.size() - 1) { ArregloVertical.get(i).set(j, " "); //si el actual carro en el arreglo es el ultimo colocar un espacio vacio" " } else if (i == 9 && luces_v.equals("Verde")) {//........ //para los horizontales public void MovimientoCarroHztal() { for (int i = ArregloHorizontal.size() - 1; i > -1; i--) { for (int j = ArregloHorizontal.get(0).size() - 1; j > -1; j--) { if (ArregloHorizontal.get(i).get(j).equals("C")) { //si el elemento es igual a C entonces if (j == ArregloHorizontal.get(0).size() - 1) { ArregloHorizontal.get(i).set(j, " "); } else if (luces_h.equals("Rojo") && j == 10) {//.........Implementamos cada uno de los "threads" que correremos para el control de los semáforos, o dicho de otra manera "el flujo del sistema", mediante la implementación de cada una de las clases trabajando en su conjunto.
public class ProcessA extends CircuitoVial implements Runnable { public void run() { while (true) { try { Thread.sleep(1 + (int) (random.nextDouble() * 500)); } catch (InterruptedException e1) { e1.printStackTrace(); } System.out.print("A"); contador.notifyToWakeup(); } } }quedaría pendiente la interfaz gráfica...
Observaciones: Modificaciones realizadas, para evitar problemas o aproximaciones de plagio, comentadas y externadas en este espacio. Aclaración para los gúrus del idioma Ingles y las barreras del idioma: Semáforo para San Google y para cualquier diccionario del idioma Inglés ( Semaphore, Traffic Light(semaforos) o Traffic Lights(plural) Así que aclarado el tema... Pendiente temporal: Interfaz Gráfica y Video, de momento lo importante era ver que no se tuvieran problemas por las observaciones arriba mencionadas.