Semáforo

Este programa sirve para simular un semáforo de dos carriles.

#include <stdio.h>
#include <time.h>
//funcion
int cambiarColor( int );

  main(  )
{
            int tiempoSimulacion, tiempo;
           
            int semaforo1 = 0, semaforo2 = 1;
            bool entraPrimerVez = true;
            time_t comienzo, actual;
//Se introduce el tiempo durante el cual se va a ejecutar la simulacion
//Y tambien el tiempo en el que queremos que cambie el color del semaforo
            printf( "Introduzca el tiempo en segundos en el que se va a realizar la simulacionn" );
            scanf( "%d", &tiempoSimulacion );
            printf( "Introduzca el tiempo en segundos del cambio del color de los semaforosn" );
            scanf( "%d", &tiempo );


            comienzo = time( NULL );

            do
            {
                        actual = time( NULL );
                       
//Entra al cuerpo del if cada que haya transcurrido el tiempo de cambio ingresadopor el usuario
                        if( int( difftime(actual, comienzo) ) % tiempo == 0 && entraPrimerVez )
                        {
                                   entraPrimerVez = false;
                                   semaforo1 = cambiarColor( semaforo1 );
                                   semaforo2 = cambiarColor( semaforo2 );
                                  
                                   if( semaforo1 == 1 )
                                   {
                                               printf( "El semaforo 1 esta en Verde y el semaforo 2 en Rojonn" );
                                   }
                                   else
                                   {
                                               printf( "El semaforo 1 esta en Rojo y el semaforo 2 en Verdenn" );
                                   }
                        }
                        if( int( difftime(actual, comienzo) ) % tiempo > 0 )
                        {
                                   entraPrimerVez = true;
                        }
            }
            while( int( difftime(actual, comienzo) ) < tiempoSimulacion );

            return 0;
}

int cambiarColor( int semaforo )
{
            //Si el valor del semaforo_1 es 1 es porque este semaforo este en verde, lo que indica que este pasa a rojo
            //y el semaforo_2 pasaria a verde, de lo contrario se invertiria el color segun lo explicado anteriormente
            if( semaforo == 1 )
            {
                        semaforo = 0;
            }
            else
            {
                        semaforo = 1;
            }
            return semaforo;

}