generic
type Usr_Type is new Game_Type with private;
-- Le jeu, ça représentation.
with function Heuristic (Usr : in Usr_Type) return Float;
-- Une fonction qui retourne la valeur du jeu pour le solver.
with function Uniform (Usr : in Usr_Type) return Float;
-- Une fonction qui retourne la valeur du jeu pour le(s) joueur(s) opposant(s).
with function Initialize return Usr_Type;
-- Une fonction qui retourne la représentation initiale du jeu.
with function Exhausted(Usr : in Usr_Type) return Boolean;
-- Une fonction qui retourne Vrai si le jeu est terminé.
package Warborg.Individu.User.Player.Game.Solver is
type Self_Type is limited private;
procedure Initialize(self : in out Self_Type; Usr : in Usr_Type'class);
procedure Self_Play(Self : in out Self_Type);
function Usr (Self : in Self_Type) return Usr_Type;
type Option_Type is access function (Usr : in Usr_Type) return Usr_Type;
type Options_Type is array (Positive range <> ) of Option_Type;
type Options_Access is access Options_Type;
function Options(Self : in Self_Type) return Options_Type;
procedure Set_Options(Self : in out Self_Type;
Options : in Options_Type);
private
type Self_Type is new Usr_Type with
record
Usr : Usr_Type;
Full_Options : Options_Access;
end record;
end Warborg.Individu.User.Player.Game.Solver;