rendered paste body 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;