From 03fd34017edd370e8e0212b3ee223fde45a36107 Mon Sep 17 00:00:00 2001 From: JISAUAY Date: Wed, 9 Oct 2024 17:53:35 -0500 Subject: [PATCH] better --- src/BridgeSimulator.java | 20 +++++--------------- src/TrafficController.java | 14 +++++++------- src/Vehicle.java | 10 ---------- 3 files changed, 12 insertions(+), 32 deletions(-) diff --git a/src/BridgeSimulator.java b/src/BridgeSimulator.java index a4da1ec..592f048 100644 --- a/src/BridgeSimulator.java +++ b/src/BridgeSimulator.java @@ -19,20 +19,16 @@ public class BridgeSimulator { emergencyTimes.add(rand.nextInt(simulationTime - 1)); int currentSimTime = 0; - long lastTime = System.currentTimeMillis(); - long currentTime; System.out.println("Simulation starts for " + simulationTime + " seconds with " + emergencies + " emergency vehicles prioritized."); while (currentSimTime <= simulationTime) { - currentTime = System.currentTimeMillis(); + int totalVehicles = trafficController.carCounter + trafficController.truckCounter; -// if (currentTime - lastTime > 1) -// { -// trafficController.addVehicle(); -// lastTime = currentTime; -// } + for (int i = 0; i < 3 && totalVehicles < 50; i++) { + trafficController.addVehicle(); + totalVehicles = trafficController.carCounter + trafficController.truckCounter; + } - trafficController.addVehicle(); Integer timeToRemove = null; for (Integer time : emergencyTimes) { @@ -49,10 +45,6 @@ public class BridgeSimulator { if (!trafficController.queue.isEmpty()) currentSimTime += trafficController.allowVehicle(); - -// System.out.println(currentSimTime); - -// trafficController.printQueue(); } int totalVehicles = trafficController.carCounter + trafficController.emergencyCounter + trafficController.truckCounter; @@ -60,7 +52,5 @@ public class BridgeSimulator { System.out.println("\nSimulation concludes after " + simulationTime + " seconds."); System.out.println("Total Vehicles: " + totalVehicles + ", Cars: " + trafficController.carCounter + ", Trucks: " + trafficController.truckCounter + ", Emergency Vehicles: " + trafficController.emergencyCounter + ", Vehicles Crossed: " + trafficController.crossings); System.out.println(trafficController.left + " turned away due to excessive wait times."); - } - } diff --git a/src/TrafficController.java b/src/TrafficController.java index 8dabd12..4809a69 100644 --- a/src/TrafficController.java +++ b/src/TrafficController.java @@ -1,5 +1,4 @@ import java.util.*; -import java.util.Random; import java.util.concurrent.Semaphore; public class TrafficController { @@ -10,6 +9,7 @@ public class TrafficController { public int crossings = 0; public int left = 0; + boolean carLast = false; boolean northLast = true; LinkedList queue = new LinkedList<>(); @@ -32,13 +32,13 @@ public class TrafficController { } Vehicle generateVehicle() { - Random rand = new Random(); - int r = rand.nextInt(2); - - if (r == 0) { - return new Truck(truckCounter++ + 1); - } else { + if (carLast) + { + carLast = false; return new Car(carCounter++ + 1); + } else { + carLast = true; + return new Truck(truckCounter++ + 1); } } diff --git a/src/Vehicle.java b/src/Vehicle.java index 97e7d27..6beefea 100644 --- a/src/Vehicle.java +++ b/src/Vehicle.java @@ -37,16 +37,6 @@ public abstract class Vehicle implements Runnable { System.out.println(this.getType() + " " + id + " saw too many cars and left."); trafficController.left++; } - - -// -// try { -// -// -// } catch (InterruptedException e) { -// e.printStackTrace(); -// System.out.println(this.getType() + " " + id + " saw too many cars and left."); -// } } public void leave(TrafficController trafficController) {