procedure DeckeNullenAuf (Brett : in out Spielbrett; Vertikal : in Integer; Horizontal : in Integer) is function GueltigeWerte (Brett : in Spielbrett; Vertikal : Integer; Horizontal : Integer) return Boolean is begin return (Vertikal >= 1 and Vertikal <= Brett'Length (1) and Horizontal >= 1 and Horizontal <= Brett'Length (2)); end GueltigeWerte; N : Integer := Brett'Length (1); M : Integer := Brett'Length (2); Ergebnis : Integer; begin if GueltigeWerte (Brett, Vertikal, Horizontal) then Ergebnis := BerechneGefahr (Brett, Vertikal, Horizontal); if Brett (Vertikal, Horizontal) < 0 then Brett (Vertikal, Horizontal) := Ergebnis; elsif Ergebnis = 0 then Brett (Vertikal, Horizontal) := Ergebnis; DeckeNullenAuf (Brett, Vertikal - 1, Horizontal - 1); DeckeNullenAuf (Brett, Vertikal - 1, Horizontal + 1); DeckeNullenAuf (Brett, Vertikal - 1, Horizontal); DeckeNullenAuf (Brett, Vertikal, Horizontal - 1); DeckeNullenAuf (Brett, Vertikal, Horizontal + 1); DeckeNullenAuf (Brett, Vertikal + 1, Horizontal); DeckeNullenAuf (Brett, Vertikal + 1, Horizontal - 1); DeckeNullenAuf (Brett, Vertikal + 1, Horizontal + 1); end if; end if; end DeckeNullenAuf;