Guest User

Untitled

a guest
Jan 23rd, 2015
653
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.22 KB | None | 0 0
  1. {
  2.  
  3.  
  4.  
  5.  
  6. init: function(elevators, floors) {
  7.  
  8.  
  9. var upAsked = [];
  10. var downAsked =[];
  11. var state = [];
  12. var passengers = [];
  13.  
  14.  
  15. var figureOutNextFloor = function(elevator, stops, state) {
  16. //passenger load is updated after the stop event, so I track stops and return empty also if this was the last one
  17. var empty = elevator.loadFactor() == 0 || stops.every(function(k){return !k;});
  18.  
  19. if (elevator.destinationQueue.length>0) return
  20. console.log('elevator stats: floor '+elevator.currentFloor() + ' up/down flags '+ elevator.goingUpIndicator()+'/'+ elevator.goingDownIndicator());
  21. console.log('passenger stats: called floors '+stops + ' down reservations '+ downAsked+' up reservations '+ upAsked);
  22. //your code goes here
  23.  
  24. if (empty && upAsked[0]) {
  25. elevator.goToFloor(0);
  26. }
  27. }
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34. for (var i = 0; i < elevators.length ; i++) {
  35. passengers[i] = [];
  36. state[i] = -1;
  37.  
  38. var fcb = function(k) { return function(j) {
  39. passengers[k][j]=true;
  40. figureOutNextFloor(elevators[k], passengers[k], state[k]);
  41. }};
  42.  
  43. var icb = function(k) { return function() {
  44. figureOutNextFloor(elevators[k], passengers[k], state[k]);
  45. }};
  46.  
  47. elevators[i].on("idle", icb(i));
  48. //elevators[i].on("passing_floor", icb(i));
  49.  
  50.  
  51. elevators[i].on("floor_button_pressed", fcb(i));
  52.  
  53. var scb = function(k) { return function(j) {
  54. if(elevators[j].goingUpIndicator()) {
  55. upAsked[j]=false;
  56. }
  57. if(elevators[j].goingDownIndicator()) {
  58. downAsked[j]=false;
  59. }
  60. passengers[k][j]=false;
  61. }};
  62. elevators[i].on("stopped_at_floor", scb(i));
  63.  
  64.  
  65. };
  66.  
  67.  
  68. for (var i = 0; i < floors.length ; i++) {
  69. downAsked[i]=false;
  70. upAsked[i]=false;
  71. for (var k = 0; k<elevators.length;k++)
  72. passengers[k][i] = false;
  73.  
  74. var ucb = function(k) { return function() {
  75. upAsked[k] = true;
  76. for(var z=0;z<elevators.length;z++) {
  77. figureOutNextFloor(elevators[z], passengers[z], state[z]);
  78. }
  79. }};
  80. floors[i].on("up_button_pressed", ucb(i));
  81.  
  82. var dcb = function(k) { return function() {
  83. downAsked[k] = true;
  84. for(var z=0;z<elevators.length;z++) {
  85. figureOutNextFloor(elevators[z], passengers[z], state[z]);
  86. }
  87.  
  88. }};
  89. floors[i].on("down_button_pressed", dcb(i));
  90.  
  91. };
  92.  
  93. },
  94. update: function(dt, elevators, floors) {
  95.  
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment