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];

: Verschoben durch User
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.

: Bearbeitet durch User
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 :-)

: Bearbeitet durch User
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.