Bonjour
Voila pour la fac on doit creer un jeu d'echec en ada
Seulement il y a des contrainte

On doit utilisé une fonction qui prend en parametre plusieur files (dans pieces) et qui renvoie un morceau de ces files (en gros la file de base represente tout les mouvement d'une piece et la file a renvoyer les deplacement possible selon sa position)

Le probleme est que pour recuperer une partie de la file il faut la defiler or je ne peut pas vue que c'est un parametre de la fonction

Voila le code pouvez vous m'aider?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
FUNCTION GetListeDeplacementsPossibles (Plateau : TPlateau; Piece : TPiece) RETURN TFileCasePossibles IS
      DeplacementPossiblePiece : TFileCasePossibles;
      Temporaire : FileDeDeplacement; 
   BEGIN
      DeplacementPossiblePiece.PieceConcerne:=Piece;
      EffaceFile(Temporaire);
      WHILE (FileVide(Piece.Deplacement.ListeHaut)=False) LOOP
         Enfiler(DeplacementPossiblePiece.DeplacementPossible.ListeHaut, LireSommet(Piece.Deplacement.ListeHaut));
         Enfiler(Temporaire, LireSommet(Piece.Deplacement.ListeHaut));
         Defiler(Piece.Deplacement.ListeHaut);
      END LOOP;
      WHILE (FileVide(Temporaire)=False) LOOP
         Enfiler(Piece.Deplacement.ListeHaut, LireSommet(Temporaire));
         Defiler(Temporaire);   
      END LOOP;
et voila les structures

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 PACKAGE PackFileDeplacement IS NEW PackFile (TCoordonnees, 7, AfficheCoordonnees);
   USE PackFileDeplacement;
 
   TYPE FileDeDeplacement IS NEW PackFileDeplacement.TFile;   
 
 
   TYPE TListeDeplacement IS RECORD
      ListeHaut: FileDeDeplacement;
      ListeBas: FileDeDeplacement; 
      ListeDroite: FileDeDeplacement;
      ListeGauche: FileDeDeplacement;
      ListeHautDroite: FileDeDeplacement;
      ListeBasDroite: FileDeDeplacement;
      ListeHautGauche: FileDeDeplacement;
      ListeBasGauche: FileDeDeplacement;
   END RECORD;
 
   TYPE TPiece IS RECORD
      Valeur : TValeur;
      Couleur : TCouleur;
      Position : TCoordonnees;
      Deplacement: TListeDeplacement;
   END RECORD;
Le plateau n'est pas encore utilise vue que je n'arrive pas a trouver de solution