Skip to content

Instantly share code, notes, and snippets.

@everblut
Created February 24, 2012 21:08
Show Gist options
  • Save everblut/1903752 to your computer and use it in GitHub Desktop.
Save everblut/1903752 to your computer and use it in GitHub Desktop.
Secuenciador
import javax.swing.*;
import java.awt.*;
public class Secuenciador{
semaforoThread[] semaforos;
Luces[] semaGrap;
int tiempoX,tiempoY;
int carrosX,carrosY;
JLabel[] Carros;
public Secuenciador(semaforoThread[] semaforos, Luces[] luces, JLabel[] Carros){
this.semaforos = semaforos;
this.semaGrap = luces;
tiempoX = 0;
tiempoY = 0;
this.Carros = Carros;
}
public void iniciar(){
semaforos[0].start();
semaforos[1].start();
semaforos[2].start();
semaforos[3].start();
inicia();
try {Thread.sleep(1000); }catch(InterruptedException e){}
while(true){
//Tiempos
juezTiempos();
secuenciaA();
try { Thread.sleep(tiempoX); }catch(InterruptedException e){}
secuenciaAmarillos(0);
try { Thread.sleep(500); }catch(InterruptedException e){}
secuenciaBD();
try { Thread.sleep(tiempoY-300); }catch(InterruptedException e){}
secuenciaAmarillos(3);
try { Thread.sleep(500); }catch(InterruptedException e){}
secuenciaBC();
try { Thread.sleep(tiempoY); }catch(InterruptedException e){}
secuenciaAmarillosDobles(1,2);
try { Thread.sleep(500); }catch(InterruptedException e){}
}
}
private void inicia(){
semaforos[0].setOff();
semaGrap[0].setOffAll();
semaforos[1].setOff();
semaforos[2].setOff();
semaforos[3].setOff();
}
private void secuenciaA(){
semaforos[0].setVerde();
semaGrap[0].setLuzVerde();
semaforos[1].setRojo();
semaGrap[1].setLuzRoja();
semaforos[2].setRojo();
semaGrap[2].setLuzRoja();
semaforos[3].setRojo();
semaGrap[3].setLuzRoja();
}
private void secuenciaBC(){
semaforos[0].setRojo();
semaGrap[0].setLuzRoja();
semaforos[1].setVerde();
semaforos[2].setVerde();
semaGrap[1].setLuzVerde();
semaGrap[2].setLuzVerde();
semaforos[3].setRojo();
semaGrap[3].setLuzRoja();
}
private void secuenciaD(){
semaforos[0].setRojo();
semaGrap[0].setLuzRoja();
semaforos[1].setRojo();
semaGrap[1].setLuzRoja();
semaforos[2].setRojo();
semaGrap[2].setLuzRoja();
semaforos[3].setVerde();
semaGrap[3].setLuzVerde();
}
private void secuenciaBD(){
semaforos[0].setRojo();
semaGrap[0].setLuzRoja();
semaforos[1].setVerde();
semaGrap[1].setLuzVerde();
semaforos[2].setRojo();
semaGrap[2].setLuzRoja();
semaforos[3].setVerde();
semaGrap[3].setLuzVerde();
}
private void juezTiempos(){
carrosX = Randoms.NumerosAleatorios(1,10); // HARD
carrosY = Randoms.NumerosAleatorios(1,10); // HARD
Carros[0].setText(""+carrosX);
Carros[1].setText(""+carrosY);
//HERE
switch (carrosX){
case 1: tiempoX = 1800;
break;
case 2: tiempoX = 2000;
break;
case 3: tiempoX = 2400;
break;
case 4: tiempoX = 3000;
break;
case 5: tiempoX = 3800;
break;
case 6: tiempoX = 4400;
break;
case 7: tiempoX = 5000;
break;
case 8: tiempoX = 6000;
break;
case 9: tiempoX = 7300;
break;
case 10: tiempoX = 8500;
break;
default: tiempoX = 1000;
}
switch (carrosY){
case 1: tiempoY = 1800;
break;
case 2: tiempoY = 2000;
break;
case 3: tiempoY = 2400;
break;
case 4: tiempoY = 3000;
break;
case 5: tiempoY = 3800;
break;
case 6: tiempoY = 4400;
break;
case 7: tiempoY = 5000;
break;
case 8: tiempoY = 6000;
break;
case 9: tiempoY = 7300;
break;
case 10: tiempoY = 8500;
break;
default: tiempoY = 1000;
}
}
private void secuenciaAmarillos(int i){
try{
semaforos[i].setOff();
semaGrap[i].setOffAll();
Thread.sleep(800);
semaforos[i].setVerde();
semaGrap[i].setLuzVerde();
Thread.sleep(800);
semaforos[i].setOff();
semaGrap[i].setOffAll();
Thread.sleep(800);
semaforos[i].setVerde();
semaGrap[i].setLuzVerde();
Thread.sleep(800);
semaforos[i].setAmarillo();
semaGrap[i].setLuzAmarilla();
}catch(InterruptedException e){}
}
private void secuenciaAmarillosDobles(int i,int j){
try{
semaforos[i].setOff();
semaGrap[i].setOffAll();
semaforos[j].setOff();
semaGrap[j].setOffAll();
Thread.sleep(800);
semaforos[i].setVerde();
semaGrap[i].setLuzVerde();
semaforos[j].setVerde();
semaGrap[j].setLuzVerde();
Thread.sleep(800);
semaforos[i].setOff();
semaGrap[i].setOffAll();
semaforos[j].setOff();
semaGrap[j].setOffAll();
Thread.sleep(800);
semaforos[i].setVerde();
semaGrap[i].setLuzVerde();
semaforos[j].setVerde();
semaGrap[j].setLuzVerde();
Thread.sleep(800);
semaforos[i].setAmarillo();
semaGrap[i].setLuzAmarilla();
semaforos[j].setAmarillo();
semaGrap[j].setLuzAmarilla();
}catch(InterruptedException e){}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment