Compare commits

..

5 Commits

Author SHA1 Message Date
HeshamTB
a73667f29b
Merge pull request #31 from EngOsamah/master
phase-1-GUI
2021-01-05 01:15:26 +03:00
452b9497a9 Revert "Phase 1 with GUI:"
This reverts commit acff65ea
2021-01-05 01:10:18 +03:00
EngOsamah
adb148fb43 phase-1-GUI 2021-01-05 00:12:33 +03:00
524085ae09
Merge branch 'master' into phase1-gui 2021-01-01 00:48:44 +03:00
acff65eab3
Phase 1 with GUI:
- Remove shuffle.
    - getShortestRout instead of best.
2021-01-01 00:33:26 +03:00
3 changed files with 6 additions and 47 deletions

View File

@ -1,14 +0,0 @@
#!/bin/bash
GIT=$(command -v git)
HEAD=$(command -v head)
CUT=$(command -v cut)
JAR_ARTIFACT="out/artifacts/Hajj_simulation_jar/Hajj-simulation.jar"
if [ -z $"GIT" ] || [ -z $"HEAD" ] || [ -z $"CUT" ]; then
echo "Tools missing"
exit 1
else
tar -cvf Hajj-Simulation-$(git log | head -n1 | cut -d' ' -f2).tar.gz $JAR_ARTIFACT run.sh
fi

9
run.sh
View File

@ -1,9 +0,0 @@
#!/bin/bash
jav=$(command -v java)
if [ -z "$jav" ]; then
>&2 echo "Can't find java installation"
else
java -jar out/artifacts/Hajj_simulation_jar/Hajj-simulation.jar
fi

View File

@ -32,7 +32,6 @@ public class MakkahCity {
private static final Thread t = new Thread(inputListener,"InputThread-Makkah"); private static final Thread t = new Thread(inputListener,"InputThread-Makkah");
private static boolean isAllRoutSet; private static boolean isAllRoutSet;
private static final DataManeger dataManeger = new DataManeger(); private static final DataManeger dataManeger = new DataManeger();
private static volatile boolean done_flag;
//GUI //GUI
private static boolean exit_flag; private static boolean exit_flag;
private static boolean pause_flag; private static boolean pause_flag;
@ -66,7 +65,6 @@ public class MakkahCity {
generateCamps(District.ALMANSOOR, (int)getRandom(1600, 1800)); generateCamps(District.ALMANSOOR, (int)getRandom(1600, 1800));
generateCamps(District.ALHIJRA, (int)getRandom(1400, 1600)); generateCamps(District.ALHIJRA, (int)getRandom(1400, 1600));
Collections.shuffle(listOfCampaigns);
fillBusesToList(); fillBusesToList();
@ -213,10 +211,7 @@ public class MakkahCity {
btnExit.setFont(new Font("Rockwell", Font.PLAIN, 16)); btnExit.setFont(new Font("Rockwell", Font.PLAIN, 16));
btnExit.setForeground(Color.white); btnExit.setForeground(Color.white);
btnExit.setBounds(888, 623, 166, 29); btnExit.setBounds(888, 623, 166, 29);
btnExit.addActionListener(actionEvent -> { btnExit.addActionListener(actionEvent -> exit_flag = true);
if (pause_flag || done_flag) System.exit(0);
else exit_flag = true;
});
btnPause = new JButton("Pause"); btnPause = new JButton("Pause");
btnPause.setBackground(new Color(9,9,9)); btnPause.setBackground(new Color(9,9,9));
@ -421,14 +416,11 @@ public class MakkahCity {
makkahFrame.setVisible(true); makkahFrame.setVisible(true);
//Set Routes for Campaigns //Set Routes for Campaigns
setRoutesForCampaigns(Mashier.ARAFAT);
while(!firstDayTimeMan.isEnded()) { while(!firstDayTimeMan.isEnded()) {
checkInput(); checkInput();
if (!isAllRoutSet) {
isAllRoutSet = true;
setRoutesForCampaigns(Mashier.ARAFAT);
}
//Start of Every hour
if (firstDayTimeMan.getCurrentCalendar().get(Calendar.MINUTE) == 0){ if (firstDayTimeMan.getCurrentCalendar().get(Calendar.MINUTE) == 0){
System.out.println("\n\n" + getStreetsReport()); System.out.println("\n\n" + getStreetsReport());
updateStreetFrame(); updateStreetFrame();
@ -444,7 +436,6 @@ public class MakkahCity {
Route route = vehicle.getRoute(); Route route = vehicle.getRoute();
double currentLocation = vehicle.getCurrentLocation(); double currentLocation = vehicle.getCurrentLocation();
if (vehicle.getCurrentStreet() == null && if (vehicle.getCurrentStreet() == null &&
firstDayTimeMan.getCurrentCalendar().get(Calendar.MINUTE) % 2 == 0 &&
route.getStreets()[0].capcityPoint(0,1000) < 1) { route.getStreets()[0].capcityPoint(0,1000) < 1) {
vehicle.setCurrentStreet(route.getStreets()[0]); vehicle.setCurrentStreet(route.getStreets()[0]);
} }
@ -468,12 +459,10 @@ public class MakkahCity {
if (isAllArrived() && allArrivedToArafatTime == null) allArrivedToArafatTime = (Date)currenttimeManager.getCurrentTime().clone(); if (isAllArrived() && allArrivedToArafatTime == null) allArrivedToArafatTime = (Date)currenttimeManager.getCurrentTime().clone();
firstDayTimeMan.step(Calendar.MINUTE, 1); firstDayTimeMan.step(Calendar.MINUTE, 1);
lblDate.setText(currenttimeManager.getCurrentTime().toString()); lblDate.setText(currenttimeManager.getCurrentTime().toString());
//lblArrivedToArafatTime.setText(getDistTimeForLbl());
} }
currenttimeManager = lastDayTimeMan; currenttimeManager = lastDayTimeMan;
System.out.println("\n***************FINSHIED ARAFAT DAY***************"); System.out.println("\n***************FINSHIED ARAFAT DAY***************");
//Collections.shuffle(listOfVehicles);
isAllRoutSet = false; isAllRoutSet = false;
for (Vehicle vehicle : listOfVehicles) { for (Vehicle vehicle : listOfVehicles) {
vehicle.setCurrentStreet(null); vehicle.setCurrentStreet(null);
@ -484,13 +473,10 @@ public class MakkahCity {
System.out.println("***************STARTING LAST DAY***************"); System.out.println("***************STARTING LAST DAY***************");
setRoutesForCampaigns(Mashier.MINA); setRoutesForCampaigns(Mashier.MINA);
setRoutesForCampaigns(Mashier.MINA);
while(!lastDayTimeMan.isEnded()) { while(!lastDayTimeMan.isEnded()) {
checkInput(); checkInput();
if (!isAllRoutSet) {
isAllRoutSet = true;
setRoutesForCampaigns(Mashier.MINA);
}
//Start of Every hour //Start of Every hour
if (lastDayTimeMan.getCurrentCalendar().get(Calendar.MINUTE) == 0){ if (lastDayTimeMan.getCurrentCalendar().get(Calendar.MINUTE) == 0){
@ -531,10 +517,8 @@ public class MakkahCity {
if (isAllArrived() && allArrivedToHotelsTime == null) allArrivedToHotelsTime = (Date)currenttimeManager.getCurrentTime().clone(); if (isAllArrived() && allArrivedToHotelsTime == null) allArrivedToHotelsTime = (Date)currenttimeManager.getCurrentTime().clone();
lastDayTimeMan.step(Calendar.MINUTE, 1); lastDayTimeMan.step(Calendar.MINUTE, 1);
lblDate.setText(currenttimeManager.getCurrentTime().toString()); lblDate.setText(currenttimeManager.getCurrentTime().toString());
//lblArrivedToHotelsTime.setText(getDistTimeForLbl());
} }
//When done show menu to analyze. Exit from menu too. //When done show menu to analyze. Exit from menu too.
done_flag = true;
inputListener.pause(); inputListener.pause();
startMenu(); startMenu();
} }
@ -740,7 +724,7 @@ public class MakkahCity {
for (Campaign camp : listOfCampaigns){ for (Campaign camp : listOfCampaigns){
if(camp.getVehicles().get(0).getCurrentStreet() == null) { if(camp.getVehicles().get(0).getCurrentStreet() == null) {
isAllRoutSet = false; isAllRoutSet = false;
camp.setRoute(getBestRoute(camp, mashier)); camp.setRoute(getShortestRoute(camp, mashier));
} }
} }
} }
@ -894,8 +878,7 @@ public class MakkahCity {
private static void addCivilVehicleNoise() { private static void addCivilVehicleNoise() {
for (Street street: stdStreet) { for (Street street: stdStreet) {
if (street.getPercentRemainingCapacity() >= 80)
continue;
int numOfSedan = (int)getRandom(10,15); int numOfSedan = (int)getRandom(10,15);
int numOfSUV = (int)getRandom(5,9); int numOfSUV = (int)getRandom(5,9);
@ -965,7 +948,6 @@ public class MakkahCity {
*/ */
private static Route getBestRoute(Campaign campaign , Mashier mashier) { private static Route getBestRoute(Campaign campaign , Mashier mashier) {
//ArrayList<Route> routes = (ArrayList<Route>) Arrays.asList(getRoutesToDistrict(campaign.getHotelDistrict()));
Route[] routes = getRoutesToDistrict(campaign.getHotelDistrict()); Route[] routes = getRoutesToDistrict(campaign.getHotelDistrict());
routes = sortRoutes(routes); routes = sortRoutes(routes);
for (Route r : routes) { for (Route r : routes) {