Marshmello

Premium
Inscription
5 Novembre 2012
Messages
1 094
Réactions
378
Points
12 261
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 !
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
 
Haut