Mon programme ne fonctionne pas !

G0belins Messages postés 7 Date d'inscription mardi 3 octobre 2023 Statut Membre Dernière intervention 29 octobre 2023 - 29 oct. 2023 à 23:16

Bonjour,

J'ai un petit soucis, mon programme permet de faire un jeu ou un robot se déplace jusqu'à ce qu'il tombe. Pour l'optimiser, j'ai mis des listes. Cependant, depuis que j'ais remplacé cela, mon programme ne veut plus se lancer.

Comprenez vous pourquoi ? 

VARIABLES
  i EST_DU_TYPE NOMBRE
  direction EST_DU_TYPE NOMBRE
  déplacement EST_DU_TYPE NOMBRE
  premier_tour EST_DU_TYPE NOMBRE
  i2 EST_DU_TYPE NOMBRE
  fin_du_jeu EST_DU_TYPE NOMBRE
  i3 EST_DU_TYPE NOMBRE
  score EST_DU_TYPE LISTE
  coordonnées EST_DU_TYPE LISTE
  anciennes_coordonnées EST_DU_TYPE LISTE
DEBUT_ALGORITHME
  FIN_POUR
  POUR i ALLANT_DE 1 A 2
    DEBUT_POUR
    AFFICHER "Joueur "
    AFFICHER i
    AFFICHER " choisissez la direction du robot (1 pour Nord, 2 pour Sud, 3 pour Est, 4 pour Ouest) :"
    LIRE direction
    AFFICHER* " "
    SI (direction<1) ALORS
      DEBUT_SI
      AFFICHER* "Direction invalide. Choisissez une direction entre 1 et 4"
      i PREND_LA_VALEUR 3
      FIN_SI
      SINON
        DEBUT_SINON
        SI (direction>4) ALORS
          DEBUT_SI
          AFFICHER* "Direction invalide. Choisissez une direction entre 1 et 4"
          i PREND_LA_VALEUR 3
          FIN_SI
          SINON
            DEBUT_SINON
            AFFICHER "Choisissez le nombre de déplacements (entre 1 et 10)"
            LIRE déplacement
            AFFICHER* " "
            SI (déplacement<1) ALORS
              DEBUT_SI
              AFFICHER* "Déplacement trop petit. Choississez entre 1 et 10"
              i PREND_LA_VALEUR 3
              FIN_SI
              SINON
                DEBUT_SINON
                SI (déplacement>10) ALORS
                  DEBUT_SI
                  AFFICHER* "Déplacement trop grand. Choississez entre 1 et 10"
                  i PREND_LA_VALEUR 3
                  FIN_SI
                  SINON
                    DEBUT_SINON
                    TRACER_SEGMENT_Vert (10,10)->(90,10)
                    TRACER_SEGMENT_Vert (90,10)->(90,70)
                    TRACER_SEGMENT_Vert (90,70)->(10,70)
                    TRACER_SEGMENT_Vert (10,70)->(10,10)
                    coordonnées[1] PREND_LA_VALEUR 40
                    coordonnées[2] PREND_LA_VALEUR 50
                    TRACER_POINT_Rouge (robotx,roboty)
                    SI (direction==1) ALORS
                      DEBUT_SI
                      coordonnées[1] PREND_LA_VALEUR coordonnées[1] + déplacement
                      FIN_SI
                    SI (direction==2) ALORS
                      DEBUT_SI
                      coordonnées[1] PREND_LA_VALEUR coordonnées[1] - déplacement
                      FIN_SI
                    SI (direction==3) ALORS
                      DEBUT_SI
                      coordonnées[2] PREND_LA_VALEUR coordonnées[2] + déplacement
                      FIN_SI
                    SI (direction==4) ALORS
                      DEBUT_SI
                      coordonnées[2] PREND_LA_VALEUR coordonnées[2] - déplacement
                      FIN_SI
                    anciennes_coordonnées[2] PREND_LA_VALEUR coordonnées[2]
                    anciennes_coordonnées[1] PREND_LA_VALEUR coordonnées[1]
                    TRACER_SEGMENT_Vert (50,40)->(ancienx,ancieny)
                    score[i2] PREND_LA_VALEUR déplacement
                    FIN_SI
                FIN_POUR
            TANT_QUE (fin_du_jeu<1) FAIRE
              DEBUT_TANT_QUE
              déplacement PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,10)
              direction PREND_LA_VALEUR ALGOBOX_ALEA_ENT(1,4)
              POUR i3 ALLANT_DE 1 A déplacement
                DEBUT_POUR
                SI (direction==1) ALORS
                  DEBUT_SI
                  coordonnées[1] PREND_LA_VALEUR coordonnées[1] + 1
                  SI (coordonnées[1]>70) ALORS
                    DEBUT_SI
                    i PREND_LA_VALEUR 11
                    fin_du_jeu PREND_LA_VALEUR 1
                    FIN_SI
                  FIN_SI
                SI (direction==2) ALORS
                  DEBUT_SI
                  coordonnées[1] PREND_LA_VALEUR coordonnées[1] - 1
                  SI (coordonnées[1] <10) ALORS
                    DEBUT_SI
                    i PREND_LA_VALEUR 11
                    fin_du_jeu PREND_LA_VALEUR 1
                    FIN_SI
                  FIN_SI
                SI (direction==3) ALORS
                  DEBUT_SI
                  coordonnées[2] PREND_LA_VALEUR coordonnées[1 ]+ 1
                  SI (coordonnées[2]>90) ALORS
                    DEBUT_SI
                    i PREND_LA_VALEUR 11
                    fin_du_jeu PREND_LA_VALEUR 1
                    FIN_SI
                  FIN_SI
                SI (direction==4) ALORS
                  DEBUT_SI
                  coordonnées[2] PREND_LA_VALEUR coordonnées[1] - 1
                  SI (coordonnées[2]<10) ALORS
                    DEBUT_SI
                    i PREND_LA_VALEUR 11
                    fin_du_jeu PREND_LA_VALEUR 1
                    FIN_SI
                  FIN_SI
                FIN_POUR
              TRACER_SEGMENT_Rouge (anciennes_coordonnées[2],anciennes_coordonnées[1])->(coordonnées[2],coordonnées[1])
              anciennes_coordonnées[1] PREND_LA_VALEUR coordonnées[1]
              anciennes_coordonnées[2] PREND_LA_VALEUR coordonnées[2]
              FIN_SINON
            FIN_TANT_QUE
        FIN_SINON
    FIN_SINON
  FIN_SINON
FIN_ALGORITHME