caracteres.ads

--
-- Package Caracteres
--
-- Ce package fournit la représentation graphique des caractères
-- sous la forme d'une trame de points (une matrice).
--
package Caracteres is

   -- Ignorez cette ligne.
   pragma Elaborate_Body ;


   -- Dans la trame de chaque caractère, une case contient un pixel (un point)
   -- qui peut être éteint ou allumé.
   type T_Pixel is (Eteint, Allume) ;

   -- Tous les caractères ont la même taille (en pixels).
   Hauteur_Car : constant Integer := 13 ;
   Largeur_Car : constant Integer := 6 ;

   -- Une trame est une matrice de pixels (le dessin du caractère).
   -- Voir un exemple à la fin du fichier
   type T_Trame is array(Integer range <>, Integer range <>) of T_Pixel ;

   -- La table contient des paires (caractère, trame) :
   --   un caractère et sa trame
   type T_Paire is record
      Car   : Character ;
      Trame : T_Trame (1..Hauteur_Car, 1..Largeur_Car) ;
   end record ;

   --
   -- Définition de la table contenant les paires (caractère, trame)
   --
   Nombre_De_Caracteres : constant Integer := 91 ;

   type T_Table is array (Integer range <>) of T_Paire ;

   -- Attention, le premier caractère est un espace.
   Table : T_Table (1..Nombre_De_Caracteres) ;



   -- Initialise toutes les cases de la variable Table.
   procedure Init ;

end Caracteres ;

   --
   -- Exemple de trame : la trame du caractère $
   --   (cette trame est plus petite que celles utilisées dans l'acteur)
   --
   -- Colonne   123456
   --
   -- Ligne 1     #
   -- Ligne 2    ####
   -- Ligne 3   # #
   -- Ligne 4   # #
   -- Ligne 5    ###
   -- Ligne 6     # #
   -- Ligne 7     # #
   -- Ligne 8   ####
   -- Ligne 9     #
   --
   --
   -- # Représente un pixel allumé
   -- Un blanc représente un pixel éteint.
   --