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...

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
 
Haut