Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Calendar;
- import java.util.Random;
- public class calle {
- public int A,B,C,D,n,trAB,trCD,hora,trafico=0; //Variables a utilizar
- boolean AB=true,CD=false,cic=true; //Variables AB: Encienden los semaforos de la calle A y B , CD: Encienden los senaforos de la calle C y D
- Thread tiempo; //Hilo
- generatrafico gen = new generatrafico(); //Se manda llamar a la clase generatrafico
- Calendar cal =Calendar.getInstance();
- calle(){
- //Obtienen los valores aleatorios del trafico en las calles
- A = gen.getA();
- B = gen.getB();
- C = gen.getC();
- D = gen.getD();
- //Obtenemos la hora del dia
- hora = cal.get(Calendar.HOUR_OF_DAY);
- System.out.print("Trafico en la calle A = "+A+"\n");
- System.out.print("Trafico en la calle B = "+B+"\n");
- System.out.print("Trafico en la calle C = "+C+"\n");
- System.out.print("Trafico en la calle D = "+D+ "\n");
- do{ //do para entrar en un bucle infinito
- if(hora == 15 || hora == 16 || hora == 17) { //Dependiendo del valor de la variable hora, habra mucho o poco trafico en las calles
- //Semaforos A y B
- if(AB == true){
- System.out.print("\n== Se encienden los semaforos A y B == \n");
- System.out.print("== Se apagan los semaforos C y D == \n");
- trAB = A+B; //Suma los traficos de las calles A y B
- trCD = C+D; //Suma los traficos de las calles C y D
- Random tr2 = new Random(); //Nuevo random
- if(trAB > trCD){ //Si el trafico de las calles A y B mayores que C y D, se da un tiempo de 8 segundos para que pasen los autos
- try{
- for(n=1;n<9;n++){
- A= A-1; //Se elimina un auto cada segundo
- B= B-1;
- if (A <= 0){ //Si el numero de autos en la calle A es menor o igual a 0, se genera un nuevo numero de trafico de manera aleatoria
- A = 1 + (tr2.nextInt(3));
- }
- if(B <= 0){
- B = 1 + (tr2.nextInt(3));
- }
- C= C+1;//Se suma un nuevo carro a la calle C
- D= D+1;
- Thread.sleep(1000);
- System.out.print(", "+n); //Imprime los segundos
- }
- }//Fin del try
- catch (InterruptedException e) {
- System.out.println(e.getMessage());
- }
- System.out.print("\nTrafico en la calle A = "+A+"\n");
- System.out.print("Trafico en la calle B = "+B+"\n");
- System.out.print("Trafico en la calle C = "+C+"\n");
- System.out.print("Trafico en la calle D = "+D+"\n");
- }
- if(trAB < trCD){//Si el trafico de las calles A y B menores que C y D, se da un tiempo de 5 segundos para que pasen los autos
- try{
- for(n=1;n<6;n++){
- A= A-1;
- B= B-1;
- if (A <= 0){
- A = 1 + (tr2.nextInt(3));
- }//Fin del if
- if(B <= 0){
- B = 1 + (tr2.nextInt(3));
- }//Fin del if
- C= C+1;
- D= D+1;
- Thread.sleep(1000);
- System.out.print(", "+n);
- }//Fin del for
- }//Fin del try
- catch (InterruptedException e) {
- System.out.println(e.getMessage());
- }//Fin del catch
- System.out.print("\nTrafico en la calle A = "+A+"\n");
- System.out.print("Trafico en la calle B = "+B+"\n");
- System.out.print("Trafico en la calle C = "+C+"\n");
- System.out.print("Trafico en la calle D = "+D+"\n");
- }//Fin del if
- AB=false; //Se apagan los semaforos A y B
- CD=true;//Se encienden los semaforos C y D
- hora = cal.get(Calendar.HOUR_OF_DAY); //Se obtiene de nuevo la hora, para asegurar si hay una transicion de horas, por ejemplo de 5 p.m. a 6 p.m.
- }//fin del super If
- //Semaforos C y D
- if(CD == true){
- System.out.print("\n== Se encienden los semaforos C y D ==\n");
- System.out.print("== Se apagan los semaforos A y B == \n");
- trAB = A+B;
- trCD = C+D;
- Random tr2 = new Random();
- if(trCD > trAB){ //Si el trafico de las calles C y D mayores que A y B, se da un tiempo de 8 segundos para que pasen los autos
- try{
- for(n=1;n<9;n++){
- A= A+1;
- B= B+1;
- C= C-1;
- D= D-1;
- if (C <= 0){
- C = 1 + (tr2.nextInt(3));
- }
- if(D <= 0){
- D = 1 + (tr2.nextInt(3));
- }
- Thread.sleep(1000);
- System.out.print(", "+n);
- }
- }//Fin del try
- catch (InterruptedException e) {
- System.out.println(e.getMessage());
- }
- System.out.print("\nTrafico en la calle A = "+A+"\n");
- System.out.print("Trafico en la calle B = "+B+"\n");
- System.out.print("Trafico en la calle C = "+C+"\n");
- System.out.print("Trafico en la calle D = "+D+"\n");
- }
- if(trCD < trAB){//Si el trafico de las calles C y D menores que A y B, se da un tiempo de 5 segundos para que pasen los autos
- try{
- for(n=1;n<6;n++){
- A= A+1;
- B= B+1;
- C= C-1;
- D= D-1;
- if (C <= 0){
- C = 1 + (tr2.nextInt(3));
- }//Fin del if
- if(D <= 0){
- D = 1 + (tr2.nextInt(3));
- }//Fin del if
- Thread.sleep(1000);
- System.out.print(", "+n);
- }//Fin del for
- }//Fin del try
- catch (InterruptedException e) {
- System.out.println(e.getMessage());
- }//Fin del catch
- System.out.print("\nTrafico en la calle A = "+A+"\n");
- System.out.print("Trafico en la calle B = "+B+"\n");
- System.out.print("Trafico en la calle C = "+C+"\n");
- System.out.print("Trafico en la calle D = "+D+"\n");
- }//Fin del if
- AB=true; //Se encienden los semaforos A y B
- CD=false;//Se apagan los semaforos C y D
- hora = cal.get(Calendar.HOUR_OF_DAY);
- }//fin del super If
- }// Fin del if de horas
- //De las 6,7,8,9 de la tarde/noche
- if(hora==18 || hora==19 || hora == 20 || hora == 21){
- //Semaforos A y B
- if(AB == true){
- System.out.print("\n== Se encienden los semaforos A y B == \n");
- System.out.print("== Se apagan los semaforos C y D == \n");
- trAB = A+B;
- trCD = C+D;
- Random tr2 = new Random();
- if(trAB > trCD){
- try{
- for(n=1;n<15;n++){
- A= A-2;
- B= B-2;
- if (A <= 0){
- A = 1 + (tr2.nextInt(6));
- }
- if(B <= 0){
- B = 1 + (tr2.nextInt(6));
- }
- C= C+1;
- D= D+1;
- Thread.sleep(1000);
- System.out.print(", "+n);
- }
- }//Fin del try
- catch (InterruptedException e) {
- System.out.println(e.getMessage());
- }
- System.out.print("\nTrafico en la calle A = "+A+"\n");
- System.out.print("Trafico en la calle B = "+B+"\n");
- System.out.print("Trafico en la calle C = "+C+"\n");
- System.out.print("Trafico en la calle D = "+D+"\n");
- }
- if(trAB < trCD){
- try{
- for(n=1;n<9;n++){
- A= A-2;
- B= B-2;
- if (A <= 0){
- A = 1 + (tr2.nextInt(6));
- }//Fin del if
- if(B <= 0){
- B = 1 + (tr2.nextInt(6));
- }//Fin del if
- C= C+1;
- D= D+1;
- Thread.sleep(1000);
- System.out.print(", "+n);
- }//Fin del for
- }//Fin del try
- catch (InterruptedException e) {
- System.out.println(e.getMessage());
- }//Fin del catch
- System.out.print("\nTrafico en la calle A = "+A+"\n");
- System.out.print("Trafico en la calle B = "+B+"\n");
- System.out.print("Trafico en la calle C = "+C+"\n");
- System.out.print("Trafico en la calle D = "+D+"\n");
- }//Fin del if
- AB=false;
- CD=true;
- hora = cal.get(Calendar.HOUR_OF_DAY);
- }//fin del super If
- //Semaforos C y D
- if(CD == true){
- System.out.print("\n== Se encienden los semaforos C y D ==\n");
- System.out.print("== Se apagan los semaforos A y B == \n");
- trAB = A+B;
- trCD = C+D;
- Random tr2 = new Random();
- if(trCD > trAB){
- try{
- for(n=1;n<15;n++){
- A= A+1;
- B= B+1;
- C= C-2;
- D= D-2;
- if (C <= 0){
- C = 1 + (tr2.nextInt(6));
- }
- if(D <= 0){
- D = 1 + (tr2.nextInt(6));
- }
- Thread.sleep(1000);
- System.out.print(", "+n);
- }
- }//Fin del try
- catch (InterruptedException e) {
- System.out.println(e.getMessage());
- }
- System.out.print("\nTrafico en la calle A = "+A+"\n");
- System.out.print("Trafico en la calle B = "+B+"\n");
- System.out.print("Trafico en la calle C = "+C+"\n");
- System.out.print("Trafico en la calle D = "+D+"\n");
- }
- if(trCD < trAB){
- try{
- for(n=1;n<9;n++){
- A= A+1;
- B= B+1;
- C= C-2;
- D= D-2;
- if (C <= 0){
- C = 1 + (tr2.nextInt(6));
- }//Fin del if
- if(D <= 0){
- D = 1 + (tr2.nextInt(6));
- }//Fin del if
- Thread.sleep(1000);
- System.out.print(", "+n);
- }//Fin del for
- }//Fin del try
- catch (InterruptedException e) {
- System.out.println(e.getMessage());
- }//Fin del catch
- System.out.print("\nTrafico en la calle A = "+A+"\n");
- System.out.print("Trafico en la calle B = "+B+"\n");
- System.out.print("Trafico en la calle C = "+C+"\n");
- System.out.print("Trafico en la calle D = "+D+"\n");
- }//Fin del if
- AB=true;
- CD=false;
- hora = cal.get(Calendar.HOUR_OF_DAY);
- }//fin del super If
- }//fin del if de hora
- }while(cic=true);
- }//Fin del proceso
- }//Fin de la clase
Advertisement
Add Comment
Please, Sign In to add comment