Marshmello
Premium
J'aimerais avoir quelques conseils pour commencer mon code en Python.
J'ai crée un algorithme mais je me demande comment commencer le tout.
Merci de votre aide !
J'ai crée un algorithme mais je me demande comment commencer le tout.
Merci de votre aide !
Code:
SEQUENCE CallElevators using FLOOR and CURRENTELEVATOR and DIRECTION
IF CURRENTELEVATOR is NULL
CALL ActivateButton with FLOOR and DIRECTION
CALL FindEelevator with FLOOR and DIRECTION - RETURNING CallElevators
SET CURRENTELEVATOR = Elevator
END IF
CALL RequestElevator with FLOOR and CURRENTELEVATOR
CALL OperateElevator with CURRENTELEVATOR
END SEQUENCE
SEQUENCE ActivateButton using FLOOR and DIRECTION
CALL FindButton with DIRECTIONFLOOR - RETURNING Button
SET Button Active
END SEQUENCE
SEQUENCE DesactivateButton using FLOOR and DIRECTION
CALL FindButton with FLOOR and DIRECTION - RETURNING Button
SET Button Inactive
END SEQUENCE
SEQUENCE FindButton using FLOOR and DIRECTION
FOR EACH Button IN Buttons
IF FLOOR = ButtonFLOOR AND DIRECTION = ButtonDIRECTION
THEN RETURN Button
END FOR
END SEQUENCE
SEQUENCE ActivateInsideButton using CURRENTFLOOR and ELEVATOR
CALL FindActiveInsideButton with CURRENTFLOOR and ELEVATOR
SET Button Active
END SEQUENCE
SEQUENCE DesactivateInsideButton using CURRENTFLOOR and ELEVATOR
CALL FindActiveInsideButton with FLOOR and ELEVATOR - RETURNING Button
SET Button Inactive
END SEQUENCE
SEQUENCE FindActiveInsideButton using CURRENTFLOOR and ELEVATOR
FOR EACH ActivateInsideButton IN ActivateInsideButtons
IF CURRENTFLOOR = ActivateInsideButtonFLOOR
THEN RETURN ActivateInsideButton
END FOR
END SEQUENCE
SEQUENCE FindEelevator using FLOOR and DIRECTION
WHILE ELEVATOR NOT FOUND
FOR EACH ELEVATOR IN CallElevators
IF FLOOR = ELEVATOR.CURRENTFLOOR AND ELEVATOR.Status = Stopped OR ELEVATOR.DIRECTION = DIRECTION THEN
RETURN ELEVATOR
ELSE IF ELEVATOR.Status = Idle THEN
RETURN ELEVATOR
ELSE IF Elevator.Status = Idle AND FLOOR = Elevator.CURRENTFLOOR THEN
RETURN ELEVATOR
ELSE IF FLOOR > Elevator.CURRENTELEVATOR AND Elevator.Direction AND Elevator.Direction = GoingUp AND Elevator.Direction = GoingUp THEN
RETURN ELEVATOR
ELSE IF FLOOR < Elevator.CURRENTFLOOR AND Elevator.Direction = GoingUp AND Elevator.Direction - GoingUp THEN
RETURN ELEVATOR
END IF
END FOR
END WHILE
END SEQUENCE
SEQUENCE OperateElevator using ELEVATOR
READ RequestedFLOOR FROM Elevator.FloorList
IF SortFloorList IS NOT EMPTY THEN
IF Elevator.CURRENTFLOOR IS RequestedFLOOR THEN
CALL OpenDoor with ELEVATOR
REMOVE RequestedFLOOR FROM Elevator.FloorList
CALL DesactivateInsideButton with CURRENTELEVATOR and ELEVATOR - RETURNING ActivateInsideButton
REPEAT
CALL CloseDoor with ELEVATOR - RETURN doorIsCLOSED
UNTIL doorIsCLOSED
IF CURRENTFLOOR > RequestedFLOOR THEN
CALL MoveDown with RequestedFLOOR and ELEVATOR
IF CURRENTFLOOR < RequestedFLOOR THEN
CALL MoveUp with RequestedFLOOR and ELEVATOR
ELSE
CALL MoveDown with 1 and ELEVATOR
END IF
END SEQUENCE
SEQUENCE RequestElevator using RequestedFLOOR and ELEVATOR
ADD RequestedFLOOR TO Elevator.FloorList
CALL SortFloorList with FloorList - RETURNING SortedFloorList
SET Elevator.FloorList TO SortedFloorList
END SEQUENCE
SEQUENCE SortFloorList using DIRECTION and FloorList
sort Elevator.FloorList BY Elevator.Direction THE RETURN FloorList
END SEQUENCE
SEQUENCE OBSTRUCTED using ELEVATOR
READ Captor FROM doorIsCLOSED
IF OBSTRUCTED
RETURN TRUE
ELSE RETURN FALSE
END SEQUENCE
SEQUENCE OverWeight using ELEVATOR
READ Weight FROM Balance
IF Weight > Elevator.MAXWeight THEN
RETURN TRUE
ELSE RETURN FALSE
END IF
END SEQUENCE
SEQUENCE OpenDoor using ELEVATOR
CALL DesactivateButton with CURRENTFLOOR and ElevatorDIRECTION - RETURNING Button
COMPUTE slideDoor
INIT Timer TO 6 SECONDS
END SEQUENCE
SEQUENCE CloseDoor using ELEVATOR
IF Door = Closing AND NOT OBSTRUCTED OR NOT OverWeight THEN
RETURN TRUE
ELSE
RETURN FALSE
END IF
END SEQUENCE
SEQUENCE MoveDown using RequestedFLOOR and ELEVATOR
REPEAT
COMPUTE CURRENTFLOOR = |FLOOR - 1|
SET Elevator.DISPLAY = CURRENTFLOOR
UNTIL CURRENTFLOOR IS FLOOR
CALL RequestElevator with FLOOR and ELEVATOR
END SEQUENCE
SEQUENCE MoveUp using RequestedFLOOR and ELEVATOR
REPEAT
COMPUTE CURRENTFLOOR = |FLOOR + 1|
SET Elevator.DISPLAY = CURRENTFLOOR
UNTIL CURRENTFLOOR IS FLOOR
CALL RequestElevator with FLOOR and ELEVATOR
END SEQUENCE