All pastes #457508 Raw Edit

schasi

public text v1 · immutable
#457508 ·published 2007-04-25 13:03 UTC
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;