Débutant en programmation orientée objet(jeu d'échecs)

Débutant en programmation orientée objet(jeu d'échecs) - Ada - Programmation

Marsh Posté le 22-02-2013 à 23:00:11    

Bonsoir, je voudrais déclarer une classe abstraite Piece pour dériver chaque piece en spécifiant pour chaque sous classe de piece une procédure successeurs de manière à ce que lorsque je vais parcourir mon tableau de piece je vais appeller automatiquement la bonne procédure successeurs.
 
J'ai fait une truc, mais c'est pas bon.
 

Code :
  1. package ChessObject is
  2.  
  3.  
  4.   type Line_Type is new Positive range 1..8;
  5.   type colum_Type is new character range 'A'..'H';
  6.  
  7.   type Joueur_type is (Black, White);
  8.  
  9.   type Piece_Type is abstract tagged
  10.      record
  11.         Joueur : Joueur_Type;
  12.      end record;
  13.  
  14.  
  15.   type Pion_Type is new Piece_Type with null record;
  16.  
  17.   type Empty_Type is new Piece_Type with null record;
  18.  
  19.   type Piece_Access is access all Piece_Type'Class;
  20.  
  21.   type Positions_type is array (Line_Type, Colum_Type) of Piece_Access;
  22.  
  23.   type Plateau_Type is tagged
  24.      record
  25.         Positions : Positions_Type;
  26.      end record;
  27.  
  28. end ChessObject;


 
 

Code :
  1. package ChessObject.Operations is
  2.  
  3.   type Plan_Type is array(Positive range <> ) of Plateau_Type;
  4.  
  5.   type Successors_Type is
  6.      record
  7.         Plan       : Plan_Type(1..10_000);
  8.         Successor  : Natural := 0;
  9.      end record;
  10.  
  11.   -- ici j'avais déclaré une procédure abstract.                                                                        
  12.  
  13.  
  14.   function Successors(Piece   : in Piece_Type'class;
  15.                       Plateau : in Plateau_Type;
  16.                       Line : in Line_Type;
  17.                       Colum : in Colum_type) return Successors_Type;
  18.  
  19. end ChessObject.Operations;


 
 
Voilà si quelqu'un sais m'aider ? Merci beaucoup.

Reply

Marsh Posté le 22-02-2013 à 23:00:11   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed