Guest User

Untitled

a guest
Jan 17th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. import random
  2. class Passenger():
  3. def __init__(self, target_floor = 0, waiting_time = 0):
  4. self.target_floor = random.randint(1,11)
  5. self.waiting_time = waiting_time
  6.  
  7. class Building():
  8. def __init__(self, num_elevator = 2, num_floor = 10, non_empty_floors = []):
  9. self.num_elevator = num_elevator
  10. self.num_floor = num_floor
  11. self.passengers_on_each_floor = [[]]*self.num_floor
  12. self.non_empty_floors = non_empty_floors
  13.  
  14. def new_passenger(self):
  15. floor = random.randint(1,11)
  16. number_of_passengers = 1
  17.  
  18. for i in range(number_of_passengers):
  19. new_passenger = Passenger()
  20. self.passengers_on_each_floor[floor-1].append(new_passenger)
  21.  
  22. def update_non_empty_floors(self):
  23. self.non_empty_floors = []
  24.  
  25. for i in range(0, len(self.passengers_on_each_floor)):
  26. floors = self.passengers_on_each_floor[i]
  27. if floors != []:
  28. self.non_empty_floors.append (i+1)
  29. class Elevator():
  30. def __init__(self, current_floor = 0, direction = 1, maxpassenger = 10 ,next_floor = 0):
  31. self.current_floor = current_floor
  32. self.next_floor = next_floor
  33. self.direction = direction
  34. self.maxpassenger = maxpassenger
  35. self.passengers = []
  36. self.target_floor = our_building.non_empty_floors
  37.  
  38.  
  39. # Checking for target floors
  40. def Target(self):
  41. if self.direction == 1:
  42. potential_targets = []
  43. for i in self.target_floor:
  44. if i > self.current_floor:
  45. potential_targets.append(i)
  46. self.next_floor = min(potential_targets)
  47.  
  48.  
  49. if self.direction == -1:
  50. potential_targets = []
  51. for i in self.target_floor:
  52. if i < self.current_floor:
  53. potential_targets.append(i)
  54. self.next_floor = max(potential_targets)
  55.  
  56.  
  57. # Moving the elevator to the target floors
  58. def Move(self):
  59. self.current_floor = self.next_floor
  60.  
  61.  
  62. # Unloading the passengers from the elevator to their target floors
  63. def Unload(self):
  64. for passenger in self.passengers:
  65.  
  66. if passenger.target_floor == self.current_floor:
  67. self.passengers.pop(passenger)
  68.  
  69.  
  70. # Loading the elevator from target floors to elevator
  71. def Load(self):
  72. passengers_on_current_floor = our_building.passengers_on_each_floor[self.current_floor -1]
  73.  
  74. for passenger in passengers_on_current_floor:
  75. if len(self.passengers) < self.maxpassenger:
  76. our_building.passengers_on_each_floor[self.current_floor-1].remove(passenger)
  77. self.passengers.append(passenger)
Add Comment
Please, Sign In to add comment