Forum: Compiler & IDEs Hilfe bei arrays


von Rebi (Gast)


Lesenswert?

Ich hab diesen Code:
1
e.Graphics.DrawPolygon(schreiber,Feld0);
2
e.Graphics.DrawPolygon(schreiber, Feld1);
3
e.Graphics.DrawPolygon(schreiber, Feld2);
4
e.Graphics.DrawPolygon(schreiber, Feld3);
5
e.Graphics.DrawPolygon(schreiber, Feld4);
6
e.Graphics.DrawPolygon(schreiber, Feld5);
7
e.Graphics.DrawPolygon(schreiber, Feld6);
8
e.Graphics.DrawPolygon(schreiber, Feld7);
9
e.Graphics.DrawPolygon(schreiber, Feld8);
10
e.Graphics.DrawPolygon(schreiber, Feld9);

ich möchte ihn einfacher darstellen z.B. so
1
for (int x = 0; x < 10; x++)
2
{
3
    e.Graphics.DrawPolygon(schreiber, Feld + x);
4
}

geht aber nicht, hat jemand ne Idee?

Normalerweise würde ich Array verwenden, aber die hab ich schon:
1
Point[] Feld0 = new Point[8];
2
Point[] Feld1 = new Point[8];
3
Point[] Feld2 = new Point[8];
4
Point[] Feld3 = new Point[8];
5
Point[] Feld4 = new Point[8];
6
Point[] Feld5 = new Point[8];
7
Point[] Feld6 = new Point[8];
8
Point[] Feld7 = new Point[8];
9
Point[] Feld8 = new Point[8];
10
Point[] Feld9 = new Point[8];

von Karl H. (kbuchegg)


Lesenswert?

Rebi schrieb:

> Normalerweise würde ich Array verwenden, aber die hab ich schon:
>
>
1
Point[] Feld0 = new Point[8];
2
> Point[] Feld1 = new Point[8];
3
> Point[] Feld2 = new Point[8];
4
> Point[] Feld3 = new Point[8];
5
> Point[] Feld4 = new Point[8];
6
> Point[] Feld5 = new Point[8];
7
> Point[] Feld6 = new Point[8];
8
> Point[] Feld7 = new Point[8];
9
> Point[] Feld8 = new Point[8];
10
> Point[] Feld9 = new Point[8];

Du brauchst dann eben ein 2-dimensionales Array.

Oder aber du organisierst dich besser und gibst einem Array von 8 
Punkten einen eigenen Namen. Zb. ein Polygon
1
typedef Point[8] Polygon;

Dann hast du eben nicht mehr 10 Felder bestehend aus 8 Punkten, sondern 
ein Array aus 10 Polygonen
1
Outline[] = new Polygon[10];

und das kannst du dann sauber abarbeiten
1
for (int x = 0; x < 10; x++)
2
{
3
    e.Graphics.DrawPolygon(schreiber, Outline[x]);
4
}


1
    .... Feld + x ....
du kannst nicht Variablennamen zur Laufzeit zusammenbauen. Nach dem 
Compilieren existieren die für das Programm nicht mehr.

von Dr. Sommer (Gast)


Lesenswert?

Ich glaube der OP verwendet Java. Da gibt's kein typedef...

von Daniel A. (daniel-a)


Lesenswert?

In java gibt es mehrdimensionale arrays

Point[][] = new Point[10][8];
oder
Point[][] = {new Point[8],new Point[8],new Point[8],new Point[8],new 
Point[8],new Point[8],new Point[8],new Point[8],new Point[8],new 
Point[8]};
oder
Point[][] = {{new Point,new Point,new Point,new Point,new Point,new 
Point,new Point,new Point},{new Point,new Point,new Point,new Point,new 
Point,new Point,new Point,new Point},{new Point,new Point,new Point,new 
Point,new Point,new Point,new Point,new Point},{new Point,new Point,new 
Point,new Point,new Point,new Point,new Point,new Point},{new Point,new 
Point,new Point,new Point,new Point,new Point,new Point,new Point},{new 
Point,new Point,new Point,new Point,new Point,new Point,new Point,new 
Point},{new Point,new Point,new Point,new Point,new Point,new Point,new 
Point,new Point},{new Point,new Point,new Point,new Point,new Point,new 
Point,new Point,new Point},{new Point,new Point,new Point,new Point,new 
Point,new Point,new Point,new Point},{new Point,new Point,new Point,new 
Point,new Point,new Point,new Point,new Point}};

Und die schleife wäre

for (int x = 0; x < 10; x++)
{
    e.Graphics.DrawPolygon(schreiber, Feld[x]);
}

von Karl H. (kbuchegg)


Lesenswert?

Dr. Sommer schrieb:
> Ich glaube der OP verwendet Java.

Könnte sein.
Das hier
1
  e.Graphics.DrawPolygon ...
erinnert mich auch an meinen Ausflug nach C#

> Da gibt's kein typedef...
Ok, dann eben eine Polygon Klasse gemacht. Der typedef fungiert ja nur 
dazu die Syntax bei der Allokierung etwas handlicher zu machen. Das kann 
eine Klasse genausogut leisten.

@Daniel A.
Ja, genau das ist das, worum ich einen Bogen machen würde und was mit 
'besser organisieren' gemeint ist. Diese new-Orgie :-)

von Rebi (Gast)


Lesenswert?

Ja ist in c#, habs jetzt mit den 2 Dimensionalen gemacht, danke :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.