He estado pensando largo rato este problema y la verdad que me costó muchísimo llegar a algo, que es lo que pego a continuación. Se que no está bien, y tengo dudas respecto a algunas cosas que están escritas mismo en el código. Si alguien tiene una sugerencia, opinión, objeción o lo que sea será más que bien recibido. Por las dudas, adjunto el txt porque la identación acá es complicada.
¡Ah! Y todos los semáforos son binarios excepto auto_entrada
auto_entrada n auto_salida 0
barco_entrada 1 barco_salida 0 esperandoPorBarco 0
PUENTE:
P(esperandoPorBarco)
P(cantAutos) ¿Cómo controlo la cantidad de autos que estaban arriba del puente?
FOR i = 0 TO cantAutos DO
P(auto_salida)
V(cantAutos)
SubirPuente
WHILE cantBarcos != 0 THEN
V(barco_entrada)
P(barco_salida)
BajarPuente
P(cantAutos) ¿Cómo controlo la cantidad de autos que llegaron mientras cruzaba el barco?
FOR i = 0 TO cantAutos DO
V(auto_entrada)
V(cantAutos)
AUTO:
P(cantAutos)
cantAutos++
V(cantAutos)
P(auto_entrada)
delay(x)
V(auto_salida)
P(cantAutos)
cantAutos--
V(cantAutos)
BARCO:
P(cantBarcos)
cantBarcos++
V(esperandoPorBarco)
V(cantBarcos)
P(barco_entrada)
delay(y)
V(barco_salida)
P(cantBarcos)
cantBarcos--
V(cantBarcos)