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;