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

1

28.08.2009, 22:08

Mehrdemensionale arrays

Hey community ;)
Also ich bin bei Kap. 5 jetz bei den Mehrdemensionalen Arrays angelangt. Leider blicke ich da jetzt gar nicht durch... Könnt ihr mir das anhand des codes erklären?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// C++ für Spieleprogrammierer

// Listing 5.5

// Mehrdimensionale Arrays

//

#include <iostream>

using namespace std;

// Hauptprogramm

//

int main ()
{
    // Konstanten

    //

    const int Breite = 3; // Breite der Karte

    const int Hoehe = 3;  // Hoehe der Karte


    // Variablen

    //

    int Karte[Breite][Hoehe];  // Zweidimensionales Array für die Karte

    int x, y;                  // Schleifenzähler

    int Zaehler = 0;           // Zum Füllen der Karte


    // Karte mit Werten füllen

    for (y=0; y<Hoehe; y++)
    {
        for (x=0; x<Breite; x++)
        {
            Karte[x][y] = Zaehler;
            Zaehler++;
        }
    }

    // Karte ausgeben

    for (y=0; y<Hoehe; y++)
    {
        for (x=0; x<Breite; x++)
        {
            cout << Karte[x][y];
        }

        cout << endl;
    }

    return 0;
}

C--

Alter Hase

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

2

28.08.2009, 22:10

Zitat von »"Jay232"«

Leider blicke ich da jetzt gar nicht durch...


Kannst du das genauer formulieren?
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

3

28.08.2009, 22:13

Am besten wäre es wenn ihr mir dazu einfach alles zu den mehrd. Arrays erklärt. Also das, was hier im code steht.
;)

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

4

28.08.2009, 22:21

Zweidimensionale Array stellst du dir am besten, wie ein Schabrett vor.
Da hast du ja eine Breite und eine Höhe, jeweils 32 Felder lang.

In einem zweidimensionalen Array würde das so aussehen:

C-/C++-Quelltext

1
int Karte[32][32]; // müssen Konstanen sein


Und ich denke, dass das Array 32*32 gross ist und da kannst du jetzt, wie im Code gezeigt drüber iterieren. (mit 2 for Schleifen)

Wenn noch etwas unklar ist, dann solltest du mal ein Weilchen drüber nachdenken, WAS genau nicht klar ist. Denn im Buch wird das ganze gut erklärt und da hilft es nix, wenn wir weiter das gleiche sagen..;)

5

28.08.2009, 22:24

Ok danke :)
ich werd mir das in ruhe noch mal durchlesen.
MfG
Jay232

C--

Alter Hase

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

6

28.08.2009, 22:27

Quellcode

1
int Karte[Breite][Hoehe];


Damit wird ein zweidimensionales Array deklariert, das kann man sich fast wie ein Schachbrett vorstellen mit Reihen und Spalten:
Mit Höhe = 3 und Breite = 3 z.B.:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
---------------------------
|          |          |         |
|          |          |         |
|          |          |         |
---------------------------
|          |          |         |
|          |          |         |
|          |          |         |
---------------------------
|          |          |         |
|          |          |         |
|          |          |         |
---------------------------


Im falle eines 2-dimensionalen-int-Arrays kann in jedem "Feld" eine Zahl stehen. Mit den zwei for schleifen wird dann jeder Eintrag durchgegeangen: y steht für die Zeile, x für die Spalte, das erste Feld "oben links" ist dann [0][0].

Falls du jetzt noch nicht verstehst, dann sag bitte genauer was. ;)

EDIT: Mist, wie immer zu spät.
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

7

28.08.2009, 22:30

Danke, jetzt hab ich es verstanden^^ Dank 2 ausführlichen erklärungen :D

8

09.01.2010, 18:52

Ich fand es etwas verwirrend als die Variable "Karte" oben noch mit "Breite" und "Hoehe" angegeben war und unten mit "x" und "y".
Aber wenn ich richtig liege, sagen "x" und "y" nur aus welchen Index der Zähler füllen soll, z.B. x=1 und y=0 mit 0, usw.

9

10.01.2010, 11:49

breite und höhe sind die maximale höhe und brewite deines arrays
x und y sind das feld, auf dem du grade bist
Gewinnen ist, wenn man einmal mehr aufsteht, als man zu Boden geht.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

10

10.01.2010, 15:06

noch nie schach gespielt?
ein zweidimensionales array kann man sich als schachbrett vorstellen. auf a1 steht zum beispiel am anfang an turm, dieser wert(der turm) wird an der stelle gespeichert und kann direkt ausgelesen werden.
wird der turm bewegt steht auf diesem feld nichts und der wert wird geändert.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Werbeanzeige