private with Ada.Numerics.Discrete_Random;
with KartenDatentypen;
with SpeziesDatentypen;
with KartenRecords;
with LeseWeltkarteneinstellungen;
with LeseSpeziesbelegung;
package ZufallsgeneratorenStartkoordinatenLogik is
pragma Elaborate_Body;
use type SpeziesDatentypen.Spieler_Enum;
use type KartenDatentypen.Kartenfeld;
function Startkoordinaten
(SpeziesExtern : in SpeziesDatentypen.Spezies_Vorhanden_Enum)
return KartenRecords.AchsenKartenfeldNaturalRecord
with
Pre => (
LeseSpeziesbelegung.Belegung (SpeziesExtern => SpeziesExtern) /= SpeziesDatentypen.Leer_Spieler_Enum
),
Post => (
Startkoordinaten'Result.EAchse in KartenDatentypen.EbeneUnterflächeOberfläche'Range
and
Startkoordinaten'Result.YAchse <= LeseWeltkarteneinstellungen.YAchse
and
Startkoordinaten'Result.XAchse <= LeseWeltkarteneinstellungen.XAchse
);
private
Startkoordinate : KartenRecords.AchsenKartenfeldNaturalRecord;
package KartenpunktWählen is new Ada.Numerics.Discrete_Random (Result_Subtype => KartenDatentypen.KartenfeldPositiv);
KartenpunktGewählt : KartenpunktWählen.Generator;
end ZufallsgeneratorenStartkoordinatenLogik;