All pastes #451840 Raw Edit

Mine

public text v1 · immutable
·published 2007-04-21 21:24 UTC
rendered paste body
package Minesweeper
is
   --  EXCEPTION Falsche_Eingabe
   --
   --  Wird aufgerufen falls eine Eingabe ausserhalb des erlaubten Bereichs
   --  liegt
   Falsche_Eingabe : exception;

   --  TYPE Spielbrett
   --
   --  Spielbrett das aktuelle Informationen ueber das Spiel enthaelt
   --  Folgende Zustaende sind moeglich:
   --  -1 - Nicht aufgedecktes freies Feld
   --  -2 - Nicht aufgedeckte Mine
   --  -3 - Mit Flage gekennzeichnete Mine
   --  -4 - Mit Flage gekennzeichnetes freies Feld
   --   0 - Aufgedeckt und keine Minen in der Naehe
   --   n > 0 - Aufgedeckt und n Minen in der Naehe, 0 < n <= 8
   type Spielbrett is array (Positive range <>,
                             Positive  range <>)
     of Integer;


   --  PROCEDURE InitialisiereSpiel
   --
   --  Die Procedure initialisiert das Spielbrett. So werden eine gewisse
   --  Anzahl von Minen auf das Spielfeld gelegt, abhaengig von der
   --  a
   procedure InitialisiereSpiel (Brett         : in out Spielbrett;
                                 Schwierigkeit : in     Integer);

   --  PROCEDURE DeckeNullenAuf
   --
   --  Alle Felder die an (Vertikal, Horizontal) anliegen werden aufgedeckt.
   --  Falls das aufgedeckte Feld ebenfalls eine 0 ist, so wird die Procedure
   --  rekursiv aufgerufen um weitere Felder aufzudecken
   procedure DeckeNullenAuf (Brett      : in out Spielbrett;
                             Vertikal   : in     Integer;
                             Horizontal : in     Integer);

   --  FUNCTION BerechneGefahr
   --
   --  Die Funktion berechnet wieviele Minen um das Feld (Vertikal,Horizontal)
   --  liegen und gibt diese Zahl zurueck
   function BerechneGefahr (Brett      : in Spielbrett;
                            Vertikal   : in Integer;
                            Horizontal : in Integer)
                           return Integer;

   --  FUNCTION CheckeAus
   --
   --  Die Funktion checkt ob das Spiel gewonnen ist
   --  gewonnen ist das Spiel falls alle freien Felder aufgedeckt sind
   function CheckeAus (Brett : in Spielbrett)
                      return Boolean;

   --  PROCEDURE Ausgabe
   --
   --  Die Prozedur gibt das aktuelle Spielbrett aus
   procedure Ausgabe (Brett : in Spielbrett);

   --  PROCEDURE AusgabeVerloren
   --
   --  Die Prozedur gibt das Spielbrett aus und zeigt wo die Minen liegen
   procedure AusgabeVerloren (Brett : in Spielbrett);
end Minesweeper;