--
-- Ce package permet de programmer un jeu de gestion de ferme.
--
package Farm is
-- Les différents type d'animaux
type T_Animal is (Canard, Vache, Poule, Mouton) ;
-- Un enclos de la ferme.
type T_Enclos is record
-- Superficie exploitable de l'enclos en m2
Superficie : Float ;
-- Type d'animal présent dans l'enclos
Animal: T_Animal ;
-- Nombre d'animaux dans cet enclos
-- Si l'enclos est inoccupé, ce nombre vaut zéro.
Bebetes: Integer ;
end record ;
-- Les enclos sont ombragés.
-- Les animaux ont de l'eau, de la paille, et accès à internet.
-- Type pour représenter une liste d'enclos
type T_Liste_Enclos is array(Integer range <>) of T_Enclos ;
-- Les enclos sont rectangulaires et bien alignés sous forme de quadrillage.
-- L'ensemble de la ferme ressemble donc à une matrice. C'est une heureuse coïncidence.
-- Un plan de la ferme sous forme de matrice.
type T_Plan is array(Integer range <>, Integer range <>) of T_Enclos ;
-- Ce record rassemble toutes les informations utiles au jeu.
type T_Jeu is record
Score : Integer ;
-- Argent du joueur, en Chbufs (monnaie locale).
Argent: Integer ;
-- Nombre d'enclos occupés
Nombre_Enclos: Integer ;
-- Plan de la ferme. Les enclos sont organisés en 6 rangées de 4 enclos.
Plan: T_Plan(1..6, 1..4) ;
end record ;
end Farm ;
-- Précision importante : sur une même rangée, les enclos inoccupés sont toujours à droite des enclos occupés.