Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

GMoney597

Frischling

  • »GMoney597« ist der Autor dieses Themas

Beiträge: 48

Wohnort: Roth

Beruf: Verwaltungsfachangesteller (Stadtverwaltung), Fitness-Trainer und Muay-Thai-Trainer

  • Private Nachricht senden

11

31.08.2014, 13:43

Mit Liste und Vector habe ich mich schon auseinander gesetzt und grundsätzlich würde ich diese auch bevorzugen, bin mir aber in der Handhabung noch ein wenig unsicher.

Deswegen ein Array, zudem plane ich ja einen 2-Dimensionalen Array zu verwenden, der mir eine Grundfläche liefert, die immer wieder belegt werden kann oder eben sonst leer "_" bleibt. (Brettspiel)

List eignet sich doch bestimmt nicht für mehr als eine Dimension, oder?

Danke jedenfalls für Deinen Vorschlag @Qube
@Nimelrian - an die Variante zur Speicherung in einer Bool dachte ich einfach nicht, doof - die Geschichte mit dem Wald und den Bäumen :hmm:

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

12

31.08.2014, 18:24

Was du wie verschachtelst bleibt dir überlassen. Du kannst Liste genau so gut verschachteln wie Arrays. Anstatt mehrerer Dimensionen kannst du aber auch mit einer Dimension arbeiten. Man kann das einfach am Array zeigen. Bei einem Array liegen die Elemente ja nacheinander im Speicher. Hast du also ein Int Array mit den Werten 1, 2, 3, 4, 5 dann folgt die 2 im Speicher direkt auf die 1 und so weiter. Jetzt stell dir vor du hast ein zweidimensionales Array. Das Array besteht aus 2 Arrays, wobei das erste die Werte 1, 2, 3, 4 und das zweite die Werte 5, 6, 7, 8 hat. Im speicher steht dann im Prinzip 1, 2, 3, 4, 5, 6, 7, 8. Du könntest also genau so gut ein Array mit nur einer Dimension nehmen. Wie man zwischen einem Index und doppelter Indizierung umrechnet überlasse ich mal dir. Zur Not mal dir das ganze mal auf und versuche die Umrechnung so zu erschließen. Ein Problem welches bei Mehrdimensionalen Arrays auftreten kann ist dass du die Größe der unterschiedlichen Arrays unterschiedlich festlegen kannst:

Quellcode

1
2
3
4
5
6
{
{1, 2, 3, 4},
{5, 6, 7, 8, 9},
{10, 11, 12, 13},
{14, 15, 16, 17}
}

Hier mal als Beispiel ein zweidimensionales Array. Dabei haben die Arrays darin die Länge 4, wobei das 2te Array eine Länge von 5 hat. Sowas kann aus versehen passieren und für einige Probleme sorgen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

GMoney597

Frischling

  • »GMoney597« ist der Autor dieses Themas

Beiträge: 48

Wohnort: Roth

Beruf: Verwaltungsfachangesteller (Stadtverwaltung), Fitness-Trainer und Muay-Thai-Trainer

  • Private Nachricht senden

13

31.08.2014, 20:27

ok, das ist ein interessanter Ansatz

das werde ich mir mal durch den Kopf gehen lassen, im Prinzip stimmt es

die Speicherbereitstellung in der Adressierung habe ich schon verstanden, aber wie es oft so ist
da überlegt man sich eins nach dem anderen und versteift sich irgendwann so in einer Idee, dass man
glatt vergisst, wie die Bereitstellung eigentlich nochmal genau funktioniert, weil eine Vorstellung eines
Körpers doch noch immer einfacher ist, als irgendwelche Adressen mit 0x233fbc, 0x233fc1, 0x233fc5 usw.

Werbeanzeige