UNIVERSIDAD TECNICA PARTICULAR DE LOJA  SEMÁFORO INTELIGENTE  INTEGRANTES FREDDY  FERNANDO OJEDA  POMA  VANESSA CINDHY CELI
INTRODUCCIÓN  <ul><li>Los agentes de software han mostrado una nueva forma de trabajar con computadores, permitiendo “dele...
OBJETIVOS  <ul><li>Conocer  a fondo  el comportamiento de un agente  relacional  </li></ul>
Comportamiento de los agentes inteligentes  <ul><li>Un agente inteligente es una  entidad   que   percibe  y actua  sobre ...
COMO SE CARACTERIZA UN AGENTE  <ul><li>LOS  AGENTES INTELIGENTES SE CARACTERIZA POR SER : </li></ul><ul><li>Comunicativo: ...
AGENTE INTLIGENTE SEMAFORO PROBLEMATICA  <ul><li>La congestión vehicular que encontramos en las calles de nuestra ciudad y...
AGENTE INTLIGENTE SEMAFORO SOLUCIÓN <ul><li>para dar lo solución a esta problemática hemos  planteado la propuesta de la c...
TEDENCIA DE LOS SEMAFOROS INTELIGENTES  <ul><li>· En  la ciudad de Barcelona  en el 2008  comenzó la instalación de estos ...
FUNCIONAMIENTO <ul><li>· Este proyecto desarrollara un sistema inteligente  que , a partir de cámaras IP instaladas  en lo...
DESCRIPCION DEL ENTORNO DE TRABAJO DEL AGENTE SEMAFORO <ul><li>·  </li></ul>agente Medidas de Rendimiento Entorno Actuador...
ARQUITECTURA GLOBAL DEL AGENTE INTELIGENTE SEMÁFORO <ul><li>·  </li></ul>
ENTORNO DE APRENDIZAJE  DE NUESTR AGENTE  <ul><li>T enemos lo sensores (cámaras ip) los cuales nos proporcionan datos del ...
ENTORNO DE APRENDIZAJE  DE NUESTR AGENTE  <ul><li>Para realizar el entorno  de aprendizaje  de nuestro agente hemos utiliz...
ARQUITECTURA GLOBAL DEL AGENTE INTELIGENTE SEMÁFORO  TRIPLETAS
Código  del  Programa   <ul><li>Clase principal semaforoIA </li></ul><ul><li>import java.awt.*; </li></ul><ul><li>  public...
Código  del  Programa   <ul><li>cargarsemaf(); </li></ul><ul><li>cargarImagenes(); </li></ul><ul><li>X2 = 10; Y2 = 310;  /...
Código  del  Programa   <ul><li>for (int i = 0; i < semaforo.length; i++) </li></ul><ul><li>{ </li></ul><ul><li>estadoLuce...
Código  del  Programa   <ul><li>public void Iniciar() </li></ul><ul><li>{ </li></ul><ul><li>int tVerde=0, tVerdeParpa=0, t...
Código  del  Programa   <ul><li>if (nCarrosX >= nCarrosY){ </li></ul><ul><li>Semaforo1 = new Iniciarnn(&quot;Calle Azuay&q...
Código  del  Programa   <ul><li>ny == 0) tVerde=nx*VelAuto; </li></ul><ul><li>if(nx >= ny ) </li></ul><ul><li>tVerde = (nx...
Código  del  Programa   <ul><li>public void paint(Graphics g){update(g);} </li></ul><ul><li>  </li></ul><ul><li>public voi...
Código  del  Programa   <ul><li>try{Thread.sleep(15);} catch(InterruptedException ie){} </li></ul><ul><li>} </li></ul><ul>...
Código  del  Programa   <ul><li>} </li></ul><ul><li>repaint(); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li> ...
Código  del  Programa   <ul><li>Función para crear las Ventanas  </li></ul><ul><li>  </li></ul><ul><li>import java.util.Ve...
Código  del  Programa   <ul><li>public CrearVentanas(String pTitulo, int pX, int pY, int pAncho, int pAlto,Color pcolor, b...
Código  del  Programa   <ul><li>public CrearVentanas(String pTitulo, int pX, int pY, int pAncho, int pAlto,Color pcolor, b...
Código  del  Programa   <ul><li>Función para mover los autos </li></ul><ul><li>  </li></ul><ul><li>public class MoverAutos...
Código  del  Programa   <ul><li>Función para mover los autos </li></ul><ul><li>  </li></ul><ul><li>public class MoverAutos...
Código  del  Programa   <ul><li>public void run() </li></ul><ul><li>{ </li></ul><ul><li>estado(); </li></ul><ul><li>} </li...
Upcoming SlideShare
Loading in...5
×

SEMAFORO INTELIGENTE

24,388

Published on

Aplicando los conocimientos adquiridos en la clase de inteligencia artificial, hemos hecho el estudio de las caracteristicas que debe tener un agente inteligente para que controle el tráfico vehicular en una intersección

1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
24,388
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
566
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

SEMAFORO INTELIGENTE

  1. 1. UNIVERSIDAD TECNICA PARTICULAR DE LOJA SEMÁFORO INTELIGENTE INTEGRANTES FREDDY FERNANDO OJEDA POMA VANESSA CINDHY CELI
  2. 2. INTRODUCCIÓN <ul><li>Los agentes de software han mostrado una nueva forma de trabajar con computadores, permitiendo “delegar” en un programa (el agente) ciertas tareas que, de otra forma, solamente podrían hacer los humanos. En algunos casos, puede tratarse simplemente de tareas repetitivas, pero en otros, puede ser una solución a problemas complejos. </li></ul><ul><li>En este trabajo analizamos la posibilidad de emplear un agente “semáforo” cuya función principal es facilitar el control del tránsito de vehículos y peatones, de manera de que pasen alternadamente a través de la intersección. </li></ul><ul><li>  </li></ul>
  3. 3. OBJETIVOS <ul><li>Conocer a fondo el comportamiento de un agente relacional </li></ul>
  4. 4. Comportamiento de los agentes inteligentes <ul><li>Un agente inteligente es una entidad que percibe y actua sobre un entorno </li></ul>
  5. 5. COMO SE CARACTERIZA UN AGENTE <ul><li>LOS AGENTES INTELIGENTES SE CARACTERIZA POR SER : </li></ul><ul><li>Comunicativo: Debe entender las necesidades u objetivos del usuario </li></ul><ul><li>Capaz: Debe tener la capacidad de saber como dar un servicio y proporcionar información </li></ul><ul><li>Autónomo: Debe poder interactuar con el entorno tomando decisiones y actuando por si solo </li></ul><ul><li>Adaptativo: debe ser capaz de aprender del entorno </li></ul>
  6. 6. AGENTE INTLIGENTE SEMAFORO PROBLEMATICA <ul><li>La congestión vehicular que encontramos en las calles de nuestra ciudad y de cualquier ciudad del país, es causante de mucho malestar a los conductores , aún cuando en las intersecciones de las calles se encuentran semáforos instalados, estos nos garantiza la óptima fluidez vehicular porque cuentan con método estáticos. </li></ul>
  7. 7. AGENTE INTLIGENTE SEMAFORO SOLUCIÓN <ul><li>para dar lo solución a esta problemática hemos planteado la propuesta de la creación de un semáforo inteligente el cual permitirá reducir el tiempo de espera en una intersección y · Analizará la cantidad de vehículos que se aproximan al cruce y asignará tiempos de paso y de espera para cada vía. </li></ul><ul><li>  </li></ul>
  8. 8. TEDENCIA DE LOS SEMAFOROS INTELIGENTES <ul><li>· En la ciudad de Barcelona en el 2008 comenzó la instalación de estos modelos. Tienen varias funcionalidades avanzadas para mejorar la seguridad y ayudar en la regulación del tráfico. </li></ul><ul><li>· Científicos norteamericanos y rumanos han desarrollado un modelo informático basado en información real que atribuye inteligencia a los semáforos para optimizar la gestión del tráfico. De esta forma han comprobado que se reduce un 28% el tiempo de espera en los cruces en hora punta y un 6,5% las emisiones de CO2. El modelo puede potenciarse si se incorpora a los automóviles un software específico que avise a los conductores tanto de las velocidades recomendables en función de las luces de los semáforos, como en función de la cantidad de coches que se pueden encontrar en los atascos. Esta aplicación también podría trasladar información al sistema para mejorar la regulación del tráfico mediante los semáforos. </li></ul><ul><li>  </li></ul>
  9. 9. FUNCIONAMIENTO <ul><li>· Este proyecto desarrollara un sistema inteligente que , a partir de cámaras IP instaladas en los semáforo, ejecute en tiempo real decisiones sobre los  tiempos de cada luz de un semáforo para la optimización del trafico en una intersección </li></ul>
  10. 10. DESCRIPCION DEL ENTORNO DE TRABAJO DEL AGENTE SEMAFORO <ul><li>·  </li></ul>agente Medidas de Rendimiento Entorno Actuadores Sensores Agilizar el Trafico Calles Luz Amarilla Detector de Vehículos Minimizar los embotellamientos Peatones Luz verde Cámara Tráficos Luz Roja
  11. 11. ARQUITECTURA GLOBAL DEL AGENTE INTELIGENTE SEMÁFORO <ul><li>·  </li></ul>
  12. 12. ENTORNO DE APRENDIZAJE DE NUESTR AGENTE <ul><li>T enemos lo sensores (cámaras ip) los cuales nos proporcionan datos del numero de vehículos que se aproximan la intersección para luego enviarlos a un control de entrada que este a su vez ·  se comunicará con la organización de los datos los cuales interactúan con el control mientras que el control de salida se comunica con la base de datos </li></ul><ul><li>  </li></ul>
  13. 13. ENTORNO DE APRENDIZAJE DE NUESTR AGENTE <ul><li>Para realizar el entorno de aprendizaje de nuestro agente hemos utilizado Ontologías la cuales fueron creadas con la herramienta CmapTools </li></ul>
  14. 14. ARQUITECTURA GLOBAL DEL AGENTE INTELIGENTE SEMÁFORO TRIPLETAS
  15. 15. Código del Programa <ul><li>Clase principal semaforoIA </li></ul><ul><li>import java.awt.*; </li></ul><ul><li>  public class SemaforoIA extends CreaVentanas { </li></ul><ul><li>  </li></ul><ul><li>private Iniciarnn Semaforo1, Semaforo4; </li></ul><ul><li>private Image[] estadoLuces=new Image[4]; </li></ul><ul><li>private Image carro1, carro3; </li></ul><ul><li>private Image cruce, Imgsemaforo1; </li></ul><ul><li>private int X2, Y2, X1, Y1; </li></ul><ul><li>private AEstrellaParaSemaforo busqueda; </li></ul><ul><li>private String semaforo[] = {&quot;verde1.gif&quot;,&quot;amarillo1.gif&quot;,&quot;rojo1.gif&quot;,&quot;apagado.gif&quot;}; </li></ul><ul><li>private Graphics G; </li></ul><ul><li>private Image I; </li></ul><ul><li>private Dimension D; </li></ul><ul><li>private MediaTracker Mt; </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>public SemaforoIA() </li></ul><ul><li>{ </li></ul><ul><li>super(&quot;A G E N T E S E M A F O R O Cindhy Celi, Freddy Ojeda Inteligencia Artificial&quot;, 0, 0, 0, 0, Color.gray, true); </li></ul><ul><li>Mt = new MediaTracker(this); </li></ul>
  16. 16. Código del Programa <ul><li>cargarsemaf(); </li></ul><ul><li>cargarImagenes(); </li></ul><ul><li>X2 = 10; Y2 = 310; //posicion inicial auto de la 18 de nov </li></ul><ul><li>X1 = 600; Y1 = 30; //posicion inicial auto Azuay </li></ul><ul><li>Iniciar(); </li></ul><ul><li>  </li></ul><ul><li>this.setResizable(false); </li></ul><ul><li>this.setVisible(true); </li></ul><ul><li>} </li></ul><ul><li>  </li></ul><ul><li>private void cargarImagenes() </li></ul><ul><li>{ </li></ul><ul><li>  </li></ul><ul><li>cruce = Toolkit.getDefaultToolkit().getImage(&quot;edificiosruce2.png&quot;); //FONDO </li></ul><ul><li>carro1 = Toolkit.getDefaultToolkit().getImage(&quot;carrosrrabj4.gif&quot;); //auto de arriba </li></ul><ul><li>carro3 = Toolkit.getDefaultToolkit().getImage(&quot;carroszqder.gif&quot;); //auto izquierda </li></ul><ul><li>Imgsemaforo1 = estadoLuces[3]; //Semaforo </li></ul><ul><li>} </li></ul><ul><li>  </li></ul><ul><li>public void cargarsemaf() </li></ul><ul><li>{ </li></ul><ul><li>  </li></ul>
  17. 17. Código del Programa <ul><li>for (int i = 0; i < semaforo.length; i++) </li></ul><ul><li>{ </li></ul><ul><li>estadoLuces[i] = Toolkit.getDefaultToolkit().getImage(&quot;edificiosamp;quot;+ </li></ul><ul><li>semaforo[i]); </li></ul><ul><li>  </li></ul><ul><li>Mt.addImage(estadoLuces[i],i); </li></ul><ul><li>} </li></ul><ul><li>try{Mt.waitForAll();} catch (InterruptedException e){}; </li></ul><ul><li>} </li></ul>
  18. 18. Código del Programa <ul><li>public void Iniciar() </li></ul><ul><li>{ </li></ul><ul><li>int tVerde=0, tVerdeParpa=0, tRojo=0; </li></ul><ul><li>int nCarrosX=0, nCarrosY=0;// contador=0; </li></ul><ul><li>  </li></ul><ul><li>nCarrosX =(int)(Math.random()*10); </li></ul><ul><li>nCarrosY =(int)(Math.random()*10); </li></ul><ul><li>busqueda(); </li></ul><ul><li>tVerde=tiempoV(nCarrosX, nCarrosY); </li></ul><ul><li>tRojo=tiempoR(nCarrosX, nCarrosY); </li></ul><ul><li>System.out.println(&quot; NUMERO DE VEHICULOS APROXIMÁNDOSE A LA INTERSECCIÓN: por la 18 de Noviembre = &quot;+nCarrosX+&quot; por la Azuay = &quot;+nCarrosY); </li></ul><ul><li>if(nCarrosX>=nCarrosY) System.out.println(&quot; Avancen los de la 18 = &quot;+tVerde+&quot; ms&quot;+ &quot; Avancen los de la Azuay = &quot;+tRojo+&quot;ms&quot;); </li></ul><ul><li>else System.out.println(&quot; Avancen los de la Azuay = &quot;+tVerde+&quot; ms&quot;+ &quot; Avancen los de la 18 = &quot;+tRojo+&quot; ms&quot;); </li></ul>
  19. 19. Código del Programa <ul><li>if (nCarrosX >= nCarrosY){ </li></ul><ul><li>Semaforo1 = new Iniciarnn(&quot;Calle Azuay&quot;,6000,2000,1000); </li></ul><ul><li>Semaforo4 = new Iniciarnn(&quot;Calle 18 de Nov&quot;, tVerde,tVerdeParpa,tRojo); </li></ul><ul><li>//tiempo del semaforo verde, parpadeaverde, rojo </li></ul><ul><li>Semaforo1.start(); Semaforo4.start(); </li></ul><ul><li>} </li></ul><ul><li>else{ </li></ul><ul><li>Semaforo1 = new Iniciarnn(&quot;Calle Azuay&quot;,6000,2000,1000); </li></ul><ul><li>Semaforo4 = new Iniciarnn(&quot;Calle 18 de Nov&quot;, tRojo,tVerdeParpa,tVerde); / </li></ul><ul><li>/tiempo del semaforo verde, parpadeaverde, rojo </li></ul><ul><li>Semaforo1.start(); Semaforo4.start(); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>public int tiempoV(int nx, int ny) </li></ul><ul><li>{ </li></ul><ul><li>int tVerde=0; </li></ul><ul><li>int VelAuto=2000; //tiempo que un auto demora en cruzar el cruce </li></ul>
  20. 20. Código del Programa <ul><li>ny == 0) tVerde=nx*VelAuto; </li></ul><ul><li>if(nx >= ny ) </li></ul><ul><li>tVerde = (nx+ny)*VelAuto/ny; </li></ul><ul><li>else </li></ul><ul><li>tVerde = (nx+ny)*VelAuto/nx; </li></ul><ul><li>// System.out.println(&quot; return V = &quot;+ tVerde); </li></ul><ul><li>return tVerde; </li></ul><ul><li>} </li></ul><ul><li>  </li></ul><ul><li>public int tiempoR(int nx, int ny) </li></ul><ul><li>{ </li></ul><ul><li>int tRojo=0; </li></ul><ul><li>int VelAuto=2000; //tiempo que un auto demora en cruzar el cruce </li></ul><ul><li>if(nx==0) tRojo=ny*VelAuto; </li></ul><ul><li>  </li></ul><ul><li>if(ny >= nx ) </li></ul><ul><li>tRojo = (nx+ny)*VelAuto/ny; </li></ul><ul><li>//else{ tRojo = ny * VelAuto; </li></ul><ul><li>else{ tRojo = (nx+ny)*VelAuto/nx; </li></ul><ul><li>} </li></ul><ul><li>// System.out.println(&quot; return Rojo = &quot;+ tRojo); </li></ul><ul><li>return tRojo; </li></ul><ul><li>} </li></ul>
  21. 21. Código del Programa <ul><li>public void paint(Graphics g){update(g);} </li></ul><ul><li>  </li></ul><ul><li>public void update(Graphics g) </li></ul><ul><li>{ </li></ul><ul><li>Dimension d = getSize(); </li></ul><ul><li>  </li></ul><ul><li> if(G == null || d.width != D.width || d.height != D.height) </li></ul><ul><li> { D = d; </li></ul><ul><li> I = createImage(D.width, D.height); </li></ul><ul><li> G = I.getGraphics(); </li></ul><ul><li> } </li></ul><ul><li>Graphics2D g2 = (Graphics2D) G; </li></ul><ul><li>//de arriba a abajo </li></ul><ul><li>g2.drawImage(carro1,X1, Y1+Iniciarnn.Y2, this); </li></ul><ul><li>//de izquierda a derecha </li></ul><ul><li>g2.drawImage(carro3,X2+Iniciarnn.X, Y2, this); </li></ul><ul><li>g.drawImage(I, 0, 0, this); </li></ul><ul><li>g2.drawImage(cruce,0,0,this.getWidth(),this.getHeight(),this); </li></ul><ul><li>g2.drawImage(Imgsemaforo1,550, 250,this);//semaforo </li></ul><ul><li>EstadosLuces(); </li></ul><ul><li>repaint(); </li></ul>
  22. 22. Código del Programa <ul><li>try{Thread.sleep(15);} catch(InterruptedException ie){} </li></ul><ul><li>} </li></ul><ul><li>  </li></ul><ul><li>public void EstadosLuces() </li></ul><ul><li>{ if(Semaforo1.isAlive()) </li></ul><ul><li>{ // pista = 1; </li></ul><ul><li>if(Iniciarnn.getestado() == 0){ </li></ul><ul><li> Imgsemaforo1=estadoLuces[0]; </li></ul><ul><li>Iniciarnn.AvanzaX(); </li></ul><ul><li>} </li></ul><ul><li>else </li></ul><ul><li>{ if(Iniciarnn.getestado() == 1) </li></ul><ul><li>{ if(Imgsemaforo1 == estadoLuces[0]) </li></ul><ul><li>{ Imgsemaforo1 = estadoLuces[3]; </li></ul><ul><li>Iniciarnn.AvanzaX(); </li></ul><ul><li>} </li></ul><ul><li>else </li></ul><ul><li>{Imgsemaforo1 = estadoLuces[0]; </li></ul><ul><li>Iniciarnn.AvanzaX(); </li></ul><ul><li>} </li></ul><ul><li>repaint(); </li></ul><ul><li>} </li></ul><ul><li>else </li></ul><ul><li>if(Iniciarnn.getestado() == 2){ </li></ul><ul><li>Imgsemaforo1=estadoLuces[1]; </li></ul><ul><li>Imgsemaforo1=estadoLuces[2]; </li></ul><ul><li>Iniciarnn.AvanzaY2(); </li></ul>
  23. 23. Código del Programa <ul><li>} </li></ul><ul><li>repaint(); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>  </li></ul><ul><li>if(!Semaforo1.isAlive()) </li></ul><ul><li>{Imgsemaforo1=estadoLuces[2]; </li></ul><ul><li>Iniciarnn.AvanzaY2(); </li></ul><ul><li>Iniciar(); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>public void retardo(int pTiempo) </li></ul><ul><li>{ try { Thread.sleep(pTiempo); } catch (Exception e) {} </li></ul><ul><li>} </li></ul><ul><li>  </li></ul><ul><li>public static void main(String[] args){new SemaforoIA(); </li></ul><ul><li>} </li></ul>
  24. 24. Código del Programa <ul><li>Función para crear las Ventanas </li></ul><ul><li>  </li></ul><ul><li>import java.util.Vectoimport java.awt.*; </li></ul><ul><li>import javax.swing.*; </li></ul><ul><li>  </li></ul><ul><li>public class CrearVentanas extends JFrame </li></ul><ul><li>{ </li></ul><ul><li>Dimension pantalla=Toolkit.getDefaultToolkit().getScreenSize(); </li></ul><ul><li>public CrearVentanas() </li></ul><ul><li>{ </li></ul><ul><li>this(null,0,0,0,0,Color.gray,false); </li></ul><ul><li>} </li></ul><ul><li>public CrearVentanas (String pTitulo) </li></ul><ul><li>{ </li></ul><ul><li>this(pTitulo,0,0,200,100,Color.gray,false); </li></ul><ul><li>} </li></ul><ul><li>public CrearVentanas(String pTitulo, int pX, int pY) </li></ul><ul><li>{ </li></ul><ul><li>this(pTitulo,pX,pY,200,100,Color.gray,false); </li></ul><ul><li>} </li></ul><ul><li>  </li></ul><ul><li>public CrearVentanas(String pTitulo, int pX, int pY, int pAncho, int pLargo) </li></ul><ul><li>{ </li></ul><ul><li>this(pTitulo,pX,pY,pAncho,pLargo,Color.gray,false); </li></ul><ul><li>} </li></ul><ul><li>  </li></ul>
  25. 25. Código del Programa <ul><li>public CrearVentanas(String pTitulo, int pX, int pY, int pAncho, int pAlto,Color pcolor, boolean pPrincipal) </li></ul><ul><li>{ </li></ul><ul><li>  </li></ul><ul><li>this.setTitle(pTitulo); </li></ul><ul><li>this.setSize(getMaximumSize().width, getMaximumSize().height); </li></ul><ul><li>this.setBackground(pcolor); </li></ul><ul><li>this.setLocation(pX,pY); </li></ul><ul><li>this.setDefaultCloseOperation(EXIT_ON_CLOSE); </li></ul><ul><li>if (pPrincipal) </li></ul><ul><li>this.setDefaultCloseOperation(EXIT_ON_CLOSE); </li></ul><ul><li>else </li></ul><ul><li>this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); </li></ul><ul><li>  </li></ul><ul><li>} </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>}; </li></ul>
  26. 26. Código del Programa <ul><li>public CrearVentanas(String pTitulo, int pX, int pY, int pAncho, int pAlto,Color pcolor, boolean pPrincipal) </li></ul><ul><li>{ </li></ul><ul><li>  </li></ul><ul><li>this.setTitle(pTitulo); </li></ul><ul><li>this.setSize(getMaximumSize().width, getMaximumSize().height); </li></ul><ul><li>this.setBackground(pcolor); </li></ul><ul><li>this.setLocation(pX,pY); </li></ul><ul><li>this.setDefaultCloseOperation(EXIT_ON_CLOSE); </li></ul><ul><li>if (pPrincipal) </li></ul><ul><li>this.setDefaultCloseOperation(EXIT_ON_CLOSE); </li></ul><ul><li>else </li></ul><ul><li>this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); </li></ul><ul><li>  </li></ul><ul><li>} </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>}; </li></ul>
  27. 27. Código del Programa <ul><li>Función para mover los autos </li></ul><ul><li>  </li></ul><ul><li>public class MoverAutos extends Thread </li></ul><ul><li>{ </li></ul><ul><li>public static int Y2; </li></ul><ul><li>public static int X; </li></ul><ul><li>private int verde, amarillo, parpaverde; </li></ul><ul><li>private boolean activo; </li></ul><ul><li>private static int estado=-1; </li></ul><ul><li>private static int aTiempo[]; </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>public MoverAutos(String pNombre,int pVerde,int pParpaverde,int pAmarillo) </li></ul><ul><li>{ </li></ul><ul><li>super(pNombre); </li></ul><ul><li>verde = pVerde; </li></ul><ul><li>parpaverde = pParpaverde; </li></ul><ul><li>amarillo = pAmarillo; </li></ul><ul><li>aTiempo = new int[] { verde, parpaverde, amarillo, 0 }; </li></ul><ul><li>activo = true; </li></ul><ul><li>} </li></ul>
  28. 28. Código del Programa <ul><li>Función para mover los autos </li></ul><ul><li>  </li></ul><ul><li>public class MoverAutos extends Thread </li></ul><ul><li>{ </li></ul><ul><li>public static int Y2; </li></ul><ul><li>public static int X; </li></ul><ul><li>private int verde, amarillo, parpaverde; </li></ul><ul><li>private boolean activo; </li></ul><ul><li>private static int estado=-1; </li></ul><ul><li>private static int aTiempo[]; </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>public MoverAutos(String pNombre,int pVerde,int pParpaverde,int pAmarillo) </li></ul><ul><li>{ </li></ul><ul><li>super(pNombre); </li></ul><ul><li>verde = pVerde; </li></ul><ul><li>parpaverde = pParpaverde; </li></ul><ul><li>amarillo = pAmarillo; </li></ul><ul><li>aTiempo = new int[] { verde, parpaverde, amarillo, 0 }; </li></ul><ul><li>activo = true; </li></ul><ul><li>} </li></ul>
  29. 29. Código del Programa <ul><li>public void run() </li></ul><ul><li>{ </li></ul><ul><li>estado(); </li></ul><ul><li>} </li></ul><ul><li>public void estado() </li></ul><ul><li>{ </li></ul><ul><li>synchronized(System.out) </li></ul><ul><li> { </li></ul><ul><li> if(activo) </li></ul><ul><li> { </li></ul><ul><li> //System.out.println(&quot;estado antes = &quot;+estado); </li></ul><ul><li>estado = ++estado % 4; </li></ul><ul><li>//System.out.println(&quot;estado despues = &quot;+estado); </li></ul><ul><li> activo = (estado != 3); </li></ul><ul><li>//System.out.print(&quot; Carril &quot;+getName()+&quot;el semaforo esta en: &quot;+Nombre[estado]+&quot; &quot;+aTiempo[estado]); </li></ul><ul><li>retardo(aTiempo[estado]); </li></ul><ul><li>estado(); </li></ul><ul><li> } </li></ul><ul><li>  </li></ul><ul><li> } </li></ul><ul><li>} </li></ul><ul><li>public static int getestado() </li></ul><ul><li>{ </li></ul><ul><li>return estado; </li></ul><ul><li>} </li></ul><ul><li>  </li></ul>
  1. ¿Le ha llamado la atención una diapositiva en particular?

    Recortar diapositivas es una manera útil de recopilar información importante para consultarla más tarde.

×