Marshmello
Premium
- Inscription
- 5 Novembre 2012
- Messages
- 1 094
- Réactions
- 378
- Points
- 12 261
Je cherche le moyen de déclarer mon elevator a la ligne 152...
Merci a ceux qui pourront analyser le tout
Code:
//SCENARIO #1
class Button {
constructor(direction, requestFloor) {
this.direction = direction;
this.requestFloor = requestFloor;
this.activateButton = false;
}
}
class insideButton {
constructor (FLOOR) {
this.FLOOR = FLOOR;
this.Status = "Desactivated";
}
}
class Elevator {
constructor(numberElevator, numberFloor) {
this.numberElevator = numberElevator;
this.direction = "NONE";
this.status = "idle";
this.floorList = [];
this.button_list = [];
for (var i = 0; i < numberFloor; i++) {
this.button_list.push(new insideButton(i));
}
this.currentFloor = 1;
}
move_next(){
let floorList = this.floorList
let numberFloor = floorList.shift();
if (this.currentFloor > numberFloor){
this.moveDown(numberFloor);
}
else if (this.currentFloor < numberFloor){
this.moveUp(numberFloor);
}
else {
this.openDoor();
}
}
moveDown(numberFloor) {
console.log ("Elevator GOING DOWN");
this.direction == 'down';
this.status == 'moving';
let interval = setInterval(() => {
this.currentFloor = this.currentFloor - 1
console.log(this.currentFloor)
if (this.currentFloor = numberFloor) {
clearInterval(interval)
console.log("ARRIVED AT THE FLOOR" + this.currentFloor)
this.openDoor()
}
}, 1000)
}
moveUp(numberFloor) {
console.log ("Elevator is going up");
this.direction == 'UP';
this.status == 'MOVING';
let interval = setInterval(() => {
this.currentFloor = this.currentFloor + 1
console.log(this.currentFloor)
if (this.currentFloor == numberFloor) {
clearInterval(interval)
console.log("Arrived at floor " + this.currentFloor)
this.openDoor()
}
}, 1000)
}
addFLOORtoList(numberFloor){
this.floorList.push(numberFloor);
if (this.direction = "UP"){
this.floorList.sort();
console.log(this.floorList)
}
else of (this.direction = "DOWN"); {
this.floorList.sort().reverse();
console.log(this.floorList)
}
}
openDoor(){
console.log("OPEN DOOR AT THE FLOOR" + this.currentFloor)
this.status == 'openDoor';
setTimeout(() => {
this.closeDoor()
}, 5000);
}
closeDoor(){
console.log("DOOR CLOSED");
this.status = 'closeDoor';
if (this.floorList.length > 0) {
this.move_next()
}
}
activateinsideButton(numberElevator) {
console.log ("ACTIVATED BUTTON AT THE FLOOR" + numberFloor);
if (this.requestFloor = this.floorList) {
this.activateinsideButton = false;
}
if (this.requestFloor < this.floorList){
this.moveUp();
}
else if (this.requestFloor > this.floorList){
this.moveDown();
}
}
}
class Column {
constructor(numberFloor, numberElevator){ //
this.numberFloor = numberFloor;
this.numberElevator = numberElevator;
this.elevatorList =[];
for (let i = 0; i < this.numberElevator; i++) {
let elevator = new Elevator(i+1,numberFloor);
this.elevatorList.push(Elevator);
}
}
}
class ElevatorController {
constructor(numberFloor, nbElevatorPerColumn) {
this.numberFloor = numberFloor;
this.nbElevatorPerColumn = nbElevatorPerColumn;
this.Column = new Column(numberFloor, nbElevatorPerColumn);
this.button_list = [new Button()];
}
findElevator(numberFloor) {
var distanceFloor = 999;
var selectedElevator = null;
var findElevator = numberFloor;
for (var i = 0; i < this.Column.elevatorList.length; i++) {
var differenceFloor = Math.abs(numberFloor - this.Column.elevatorList [i].currentFloor);
if (differenceFloor < distanceFloor) {
distanceFloor = differenceFloor;
selectedElevator = this.Column.elevatorList[i];
}
return selectedElevator;
}
}
RequestElevator(numberFloor) {;
//var elevator = ; // What's it ! /
var findElevator = numberFloor; //
let elevator = findElevator;
this.elevator.activateinsideButton(numberFloor);
this.elevator.addFLOORtoList(numberFloor);
this.elevator.move_next();
}
}
const elevatorController = new ElevatorController(10, 2);
elevatorController.RequestElevator(7);
Merci a ceux qui pourront analyser le tout