Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ähnlichen Quelltext verkürzen (https://www.delphipraxis.net/49340-aehnlichen-quelltext-verkuerzen.html)

ferby 9. Jul 2005 15:25


Ähnlichen Quelltext verkürzen
 
Hallo,

ich habe wieder einen ganzen brocken an Quelltext der sich sehr ähnlich ist:

Delphi-Quellcode:
  randomize;
  stein_nr_aktiv:= random(7) + 1;

  case stein_nr_aktiv of
    1: begin
          feldaktive[6]:=1;
          feldaktive[16]:=1;
          feldaktive[25]:=1;
          feldaktive[26]:=1;
        end;
    2: begin
          feldaktive[5]:=1;
          feldaktive[15]:=1;
          feldaktive[25]:=1;
          feldaktive[26]:=1;
        end;
    3: begin
          feldaktive[5]:=1;
          feldaktive[6]:=1;
          feldaktive[15]:=1;
          feldaktive[16]:=1;
        end;
   4:  begin
          feldaktive[5]:=1;
          feldaktive[6]:=1;
          feldaktive[7]:=1;
          feldaktive[8]:=1;
        end;
   5:  begin
          feldaktive[5]:=1;
          feldaktive[14]:=1;
          feldaktive[15]:=1;
          feldaktive[16]:=1;
        end;
   6:  begin
          feldaktive[5]:=1;
          feldaktive[15]:=1;
          feldaktive[16]:=1;
          feldaktive[26]:=1;
        end;
   7:  begin
          feldaktive[6]:=1;
          feldaktive[15]:=1;
          feldaktive[16]:=1;
          feldaktive[25]:=1;
        end;
  end;

die Zahlen gehen nach keinen prinzip. Kann man das irgendwie vereinfachen oder ist das nicht möglich??


ferby

SirThornberry 9. Jul 2005 15:36

Re: Ähnlichen Quelltext verkürzen
 
klar kann man das verkürzen
Delphi-Quellcode:
procedure SetValsTo1(AIndex1, AIndex2, AIndex3, AIndex4: Integer);
begin
  feldaktive[AIndex1]:=1;
  feldaktive[AIndex2]:=1;
  feldaktive[AIndex3]:=1;
  feldaktive[AIndex4]:=1;
end;
[...]
randomize;
  stein_nr_aktiv:= random(7) + 1;
  case stein_nr_aktiv of
    1: SetValsTo1(6,16,25,26);
    2: SetValsTo1(5,15,25,26);
    3: SetValsTo1(5,6,15,16);
    4: SetValsTo1(5,6,7,8);
    5: SetValsTo1(5,14,15,16);
    6: SetValsTo1(5,15,16,26);
    7: SetValsTo1(6,15,16,25);
  end;

nailor 9. Jul 2005 15:37

Re: Ähnlichen Quelltext verkürzen
 
Sieht mir nach nem Spielfeld aus, auf dem was geändert wird. Aber wenn zwischen den Felder wie du sagst keine logische Verbindung besteht (irgendeine muss aber bestehen) siehts schlecht aus. Was du machen kannst, ist eine Funktion zu schreiben...

...mist, da war Thornberry schneller... aber so gehts.

ferby 9. Jul 2005 15:54

Re: Ähnlichen Quelltext verkürzen
 
Hallo,


danke hat mir super geholfen.

Falls es jemanden iteressiert die zahlen sind Tetrissteine.

Wenn ich ein Gitte macht das 10 blöcke breit ist und 4 blöcke hoch und dann die zahlen einzeichnet kommen die verschiedenen tetris steine heraus.



ferby


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz