honki_tonks_zivilisationen_0.5.5305_cfbe2104/src/Logik/Zufallsgeneratoren/ZufallsgeneratorenStartkoordinatenLogik.ads

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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;